The difference between code and decks
Apr 23rd, 2007 by Nate
Imagine a scenario where you want someone to build a deck for you (no, not this deck)

I mean the other kind of deck. The one made of wood that you have to paint.
So you want to build a deck. So you hire a contractor, and tell him “I want you to make me a deck. I want it made out of wood, and I want it to be nice. You can decide what color to paint it.” And that’s all you tell the contractor, and he goes off to work. A week later, he finishes the job, and you look at it, and decide “you know, I really don’t like this deck. The color is wrong, and it needs more benches. And I expect my changes done in 2 days at no additional cost to me”. And the contractor says, “Ok, but you never told me what color you wanted in the first place. What color do you want?” and you respond “Oh, I don’t know. I need to see it completely painted before I can decide which color is right”.
Sounds insane, right? This is the insanity of software development. I’m in this cycle right now, currently in it’s 4th iteration. And this customer, who is actually a pretty good customer, can’t seem to nail down exactly what they want, and it’s costing us a lot of time and money. They just want changes, and once the changes are complete and put into production, they’ll decide if they like it or not. And they think this is fine, and natural, and normal. This, of course, is not the first time this has happened in my career, this is just the most frustrating.
I’m just glad I don’t have to build decks for these folks.





