UPDATE: This blog has moved to http://marcelo.sampasite.com/brave-tech-world/default.htm . Please, update your subscription. Click to subscribe on Bloglines.
Guy Kawasaki, a Venture Capitalist with technology roots (Apple), writes the top ten lies of engineers. He is sooooo wrong!
His list doesn’t come even close with the worst lies of engineers. It looks like he never talked directly to an engineer, only to the engineer’s manager that passed the message to him.
Here is what I think are the worst ten lies:
- We are on track to ship on the scheduled date.
(Read: we will be 2-3x late) - This feature will only take a week to add to the product.
(read: the feature will take 3 weeks). - We should rewrite this component because it’s full of bugs.
(Read: I can’t understand what the previous engineer did, so I think it is easy to write from scratch. It will have the same amount of bugs, but at least I’ll understand) - I’ve tested the feature and it’s working flawlessly.
(Read: It’s working flawlessly for my way of doing things. Don’t try to use the drag-and-drop feature ‘cause that’s not how I use it) - This feature is easy to discovery
(Read: After you read the documentation on page 37, third paragraph and enabled the checkbox on the options dialog the button will appear on the screen.) - This feature is easy to use.
(Read: It’s easy to use as long as you understand relational databases, and/or object hierarchies, and/or state machines, ...) - Even my mother can use it.
(Read: My mother has a degree in Computer Science and she develops her own apps, and she will find the feature easy to use.) Not a lie, but a misleading statement. - This feature is Pri 1 (actually, Pri 0). Everybody is going to love it.
(Read: This feature is so cool to implement.) - The code is well documented.
(Read: It’s documented in C++. Why? Don’t you speak C++?) - We should use inheritance, componentization and some design patterns to simplify the development.
(Read: This is how we learnt in college and on many UML books. This is the only way to do it, no matter that this is mostly theoretical and very few people successfully accomplished “the perfect code”)
I could continue on and on with this list. I’ve worked on Microsoft for too many years with many different types of engineers to see all the lies. And don’t take me wrong, most engineers don’t even know they are lying, they truly believe when they say the things that they say.
Nice work, Marcelo. Yours is much closer to the mark, and encompasses quite a bit more real-life behavior.
Posted by: Mark Woodman | April 28, 2006 at 03:56 PM
Well, I have a comment on #10: MS engineers are particularly bad on following ANY design principles. This is the first thing I noticed when I joined it 3 years ago. Half of the "C++" developers there write "code in C++" by changing the source file extension from .c to .cpp without changing the content :)
Posted by: B | April 30, 2006 at 04:25 PM
Except when #3 actually *is* true. There is some really fetid production code out there written by people with no clue how the framework they're supposed to be using actually works.
At some point, you just have to let the abomination die.
Posted by: Keith J. Farmer | May 19, 2006 at 07:37 PM