Saturday, December 06, 2008

Q: What is the second rule of software development?

A: Even the easy stuff is hard

A few years back I found myself sitting in a team meeting about a software project that was running way behind schedule. The company had an old Windows 3.0 product that it was trying to catapult to a Web 2.0 version in order to capture back lost market share.

The meeting was called by a Really Big VP. This last missed date was indeed, The Last Missed Date. There were no more excuses to be had.

So we were sitting in the meeting getting the expected reaming..... as if a blast of justified fury could undo a year of misguided coding. Finally the Really Big VP said, “look, we’re going to finish this product by the end of the month, even if it means that I have to learn how to program over the weekend.

At that point I knew that this product would never see the light of day. And it didn’t. But more importantly I found myself having to confront this very serious question: How the hell could a profession present itself in such a way as to give feasibility to the notion that competence could be garnered with nothing more than a weekend’s worth of cramming?

I mean, can you imagine a hospital administrator saying, “We are going to save this patient even if it means that I have to learn brain surgery over the weekend”?

Everybody knows that practicing medicine is hard. Yet, for some reason, there’s a bunch of people out there that think that coding is easy.

I don’t know, maybe it’s because of all those advertisements that promote “productivity right out of the box”.



Or maybe it’s because some dentist‘s kid with a knack for Dreamweaver took a few photos and made a web site that got an A on the science fair project. Thus, the syllogism becomes: "hey, if my kid can do it, how hard can it be?"

Whatever the reason, the premise is a dangerous myth.

Believe me, coding is hard. The learning curve takes five years minimum, and the devilish details are picayune and astronomical.

Still we seem to want to believe it’s easy, even yours truly.

For example, only three days ago I thought that I could do an installation of Subversion on a Linux box in four hours. (So what if my installation experience was Windows based?) The reality was that I forgot that I had forgotten all my Unix admin skills as well as my aversion to working at the command line.



So, what I thought would take a half a billing day of labor, took a day and a half and a ton of documentation review.

I guess that the only thing that’s easy when it comes to making software is falling prey to our own delusions.