The Top Ten Lies of Engineers
After a several month hiatus, I would like to return to my top-ten lies series. So far, I've covered entrepreneurs and VCs, Today's topic is the top ten lies of engineers.
1. “We're about to go into beta testing.” This is a meaningless statement because it doesn't matter when you go into beta testing--what matters is when you come out of beta testing. (The only hard and fast deadline for coming out of modern-day beta testing is “before you run out of money.”)
In the good old days, “alpha” used to mean “all features are implemented though not necessarily working properly.” “Beta” used to mean “there are no more repeatable bugs.” Nowadays beta means “we've gone as long as possible past the shipping date that we promised our investors.”
2. “I don't know anything thing about marketing...” This is a lie of false modesty. The engineer is thinking, in totality, “I don't know a thing about marketing, but how hard could it be compared to what I'm doing? I should run marketing and engineering. I just hope that the marketing the MBAs come up with is worthy of my code.” However, don't worry too much about this lie because it self-corrects as the engineer misses deadline after deadline and comes to realize that he has bigger issues.
3. “I'll comment the code, so that the next person can understand what I did.” This is a lie of good intentions. Really, the engineer did intend to comment the code but as the schedule slipped, priorities changed. The question put to management became: “Do you want me to comment the code or finish it sooner?” Guess what the answer was. Luckily, the lack of comments usually doesn't matter because the code is so crappy that a total rewrite is necessary in a year.
4. “Our architecture is scalable.” This is the lie that I enjoy hearing the most. Typically, an engineer who has never shipped a product says this after creating a prototype in Visual BASIC. The whole conversation goes like this: “Google's architecture isn't as scalable as mine. They can support 25 million simultaneous searches. We will be able to easily handle a billion.”
Luckily, in most cases, the adoption of the product is slower than the CEO's “conservative” forecast, so scalability never becomes an issue. Yeah, those clowns at Google, Yahoo, Oracle, Microsoft, Apple, and AOL don't know anything about scaling compared to the engineer...
5. “The code supports all the industry standards.” This is almost a truth but for a short omission: “This code supports all the industry standards that I agree with.” The engineer has made a personal decision to ignore standards she doesn't like--for example, those promulgated by Microsoft. It's no big deal--customers will never know...
6. “We can do a Macintosh version right after we finish the Windows version; in fact, much of the Windows code can be re-used because of how we architected it.” The truth is that version 1.0 of any software is an experiment. It can be a magnificent experiment, but it's an experiment nonetheless. Thus, Windows version 1.0 is held together by duct-tape. The Macintosh version is a copy of the duct-taped Windows version written by an engineer who just finished college and got his first Macintosh a month ago. How hard could it be to learn to program for a different platform? C++ is C++, right?
7. “We have an effective bug reporting database and system.” Of course, the assumption behind the design of the bug reporting database and system is that there are no bugs in the code, so there's not much to database and report. Generally speaking, if the largest number of documented bugs doesn't ever exceed 1,000, it means that the company isn't tracking bugs carefully.
8. “We can do this faster, cheaper, and better with an offshore programming team in India.” Rank and file engineers usually don't tell this lie; it's the CTO who does. Somehow we've got it in our heads that every programmer in India is good, fast, and cheap, and every programmer in the United States is lousy, slow, and expensive. My theory is that for version 1.0 of a product, the maximum allowable distance between the engineers and marketers is thirty feet.
9. “Our beta sites loved the software.” In twenty five years of working in technology, I've never heard a company report that its beta sites didn't like its software. There are three reasons for this: first, many beta sites are so honored to get pre-release software that they don't want say anything negative. Second, most beta sites haven't used the software very much. Third, most beta sites don't want to seem cruel by criticizing a company's new product. Doing so is as socially unacceptable as telling someone that his baby is ugly.
10. “This time we got it right.” The scary thing about this lie is that the engineer really believes it. Again. The problem is that “this time” occurs over and over again. I have great faith in engineers and believe that in the long run, they do get it right. It's just that in the long run, we're all dead.
Addendumbs (sic):
“This code is so bad it would be faster to write it all from scratch than debug and expand the current shipping code.” (Joel.)
"I like thinking about architecture, but I can code." (Glenn Kelman)
"It works on my machine." (Gaurav)
"Of course I can let go of the code and run the business instead." (Jason)
"Even my mom can navigate the screens." (Nitin)
Powered by Qumana



"11. Writing code makes me an engineer"
Didn't there used to be something called a "programmer"? I wonder what happened to those.
Posted by: Joseph Dunphy | Aug 19, 2007 10:14:10 AM
Dear founder of a site write to me please as you have directed such interesting audience on your site.Welcome friends!!!
Posted by: Angelos Mark | Oct 20, 2006 8:05:57 AM
Here's one that I employ most (shamefully)
"Try re-creating the bug again. If it doesn't happen again, I think you missed something."
Posted by: Galt | Jun 14, 2006 11:34:43 PM
I can't really argue with this. I have a similiar list of "Lies Software Engineers Tell". You can find it here. http://www.notesfromthecape.com/2006/06/the_ten_lies_so.html
Posted by: Craig | Jun 6, 2006 4:02:47 AM
Funny stuff but... these lies are far too optimistic to have been spoken by any real engineer. I can only hear that kind of bull coming from an MBA/CTO/VP or some pumped up new grad who wants to be one. Do you have any idea how much trouble you can create for yourself by saying stuff like "our architecture is scalable"? That kind of statement (even if it's true) will put a noose around your neck. Let's leave lying to the marketing department, shall we?
Posted by: Dan Lewis | May 10, 2006 11:41:39 PM
This entire list is why real (electrical) engineers regard software engineers with a great deal of suspicion.
And why mechanical (especially aeronautical) engineers regard electrical and software engineers with suspicion and envy.
And why civil engineers regard everyone as slipshod.
Posted by: Eric H | May 10, 2006 7:39:22 PM
I hate to say it, but I HAVE seen code that was faster to throw away and write again than debug. It was also about 1/4 the length.
Posted by: Tabor Kelly | May 4, 2006 9:33:32 PM
How about this one
"It's not our bug, it's the 3rd party software's problem"
Posted by: Y.W | May 4, 2006 3:55:24 PM
I think this one should be able to bump out one of your top ten Guy:
"I write software therefore I know a lot about usability".
Not lies but the response to bug reports that bug me the most and hear every day:
"It is no worse than before, but yeah, in general, it would be good to fix"
Or a variation:
"That bug has been there since it is implimented, it is not a new issue"
Posted by: Lloyd D Budd | May 4, 2006 2:48:54 PM
There was a time when I actually valued your opinion, but now I'm not quite sure why. You're obviously more a "marketeer" than an engineer. Pretty much every one of these items is either complete crap or forced upon engineers by unreasonable management requirements which make it not the engineer's fault anyway. You've obviously spent too much time on the SIDE-line instead of the FRONT-line. Unless you've actually been there personally you're just parroting the whining of management and marketing who start half the problems in the first place.
Wouldn't it be great if the "higher ups" didn't have to deal with us incompetent engineers and could just snap their fingers and instantly get whatever they asked for? Of course, best be careful what one asks for...
___________________________________
Tim: I suggest you read today's post about marketers. You'll be happy. I am not an engineer at all, incidentally. But I've had to listen to these lies for years.
Guy
Posted by: Tim | May 1, 2006 2:03:53 PM
How many people really roll on the floor laughing?
Posted by: ROFL | May 1, 2006 7:35:16 AM
My personal favorite:
'That isn't possible...'
The moment a developer says that you know he just doesn't want to do what you asked him to do and that he disagrees with you. If he likes the job he would mention the second most used lie by developers:
'I can build anything you want with this language/platform/set-up...'
Posted by: Boris | Apr 30, 2006 6:19:29 AM
John F:
I've seen hardware botched just as badly as any software. The difference is, it's much harder to ship botched hardware.
-jcr
Posted by: John C. Randolph | Apr 30, 2006 12:47:30 AM
I bet John F. is a hardware 'engineer'.
Aloha
Posted by: Smittie | Apr 30, 2006 12:02:33 AM
"The feature works but you can't touch it because it's in development and if you want to see it, I'll give you a demo on my devlopment machine"
I agree #4 is silly but I don't buy your statement that scalability is not an issue upfront, and the implication that it is something that can be put in later. I don't mean that a 0.9 release has to be tested with 100s of thousands of users, but if the underlying architecture - think algorithms and data structures - aren't built to scale, you have a complete rewrite on your hands. As I've argued on my blog, this "scale later" argument perpetrated in books like 37Signals' "Getting Real" is dangerous advice.
Posted by: Aditya | Apr 29, 2006 3:14:14 PM
How can you miss the "It works on my machine" lie. Well its not always a lie but I have heard it (and said it) so many times knowing well that getting it work on your own dev machine means zilch.
Posted by: Gaurav | Apr 28, 2006 10:55:49 PM
have you been speaking with out tech guys again? :-)
Posted by: james haft | Apr 28, 2006 9:12:51 PM
@Eric:
I may be wrong headed but check your stats. IE still owns 85% of the market. Are you seriously saying forget about it? If you are building an app to work with "the internet" as you call it... then it better work on IE. Period.
I am a Mac user myself so I feel ya- but those thoughts don't pay the bills.
Posted by: Mike Johnston | Apr 28, 2006 6:41:20 PM
Gene Kranz, director of NASA Mission Control through the Apollo program (making him arguably the geek di tutti geeks) had a great saying in this vein (from memory):
"Engineers will wildly overestimate what they can do in one year and wildly underestimate what can be accomplished in ten."
Posted by: Colin Kingsbury | Apr 28, 2006 4:57:07 PM
The biggest lie of all:
software engineering.
Hint:
Software is written by programmers. Hardware is designed by engineers.
Posted by: John F. | Apr 28, 2006 4:53:24 PM
Reminds me of when I did some coding in the good old days.
Mike Johnston's comment about it being frustrating that an employee's obsession with standads-compliant software, because it invariably didn't work with IE, is just flat-out wrong-headed.
Why not have a goal to create web pages that work for all users on the Internet? And not just IE users (IE 6+ mind you!)
You think Microsoft wouldn't make IE standards-compliant if we refused to let their proprietary junk muck up the system?
Remember the phrase: "Windows isn't done until Lotus won't run?"
Turnabout is fair play.
Posted by: Eric Welch | Apr 28, 2006 3:29:43 PM
(Sorry for "co-opting" your blog, Guy, but I wanted to reply to this guy's comment.)
To "Bob" - I've seen these lies played out by engineers in the past. It's too easy to blame all the problems on marketing (I've done it many times in the past - and it's fun, too!). Perhaps the engineering team should push back a little when marketing comes to them with yet another poor product? If they don't, they're just as guilty as the marketing folks.
I'm an engineer with too much experience to suffer with the "this and them" experience we have between marketing and engineering. If these two groups cannot work together then it's not a real company, it's bozo-land, and you should either go to another company where they do work together or start your own company and make it right.
(And, yes, I have read the 37Signals "Getting Real" book. I find it a real good variant of the "Agile" development methodologies. The 37Signals folks are very sharp, and their products are really good. They are in balance.)
Posted by: Tom Frauenhofer | Apr 28, 2006 2:39:38 PM
Here is what I think the Real top ten list is:
http://bravenewword.typepad.com/brave_new_word/2006/04/the_real_top_te.html
Posted by: Marcelo Calbucci | Apr 28, 2006 1:43:47 PM
Good analysis Guy.
This list shows the symptoms of a greater issue in the IT world of today… communication. Unfortunately, lack of proper communication points to the CEO and his management staff.
Guarding territory, protecting subordinates, and hidden agendas take away from what a company should be.
These issues have been the around for all of my 27 years in programming and management. They have just changed form every few years. Bring the marketer, engineer and stakeholders together for the common goal – money!
Management has to remove the mud slinging and get everyone focused on the goals. You are definitely right when the engineer says “I don't know anything thing about marketing” and he acts accordingly. Just imagine how powerful your employees would be if they fully understand why they are supposed to perform some task. Employee buy in to a task is just as important as being on fire about your product.
Managers you all now have new tasks… tear down the walls, get everyone on the same page, and go make some money.
Posted by: Michael Taylor | Apr 28, 2006 1:31:54 PM
Guy,
Good fun reading. I admit to telling these lies at some point in my career. However many of them where much earlier in the day. Having 15 years under my belt, I am not so delusional anymore.
PS, I can back up my Mac/Windows porting architecture: It uses a common code base and has stable implementations on both platforms!
Posted by: Jonathan | Apr 28, 2006 12:07:20 PM