Why do web sites and software take so long to build? And why is it so hard?

with 107 comments

Over drinks on Saturday night, a friend shared that he quit the software business after 18 years as a professional software developer.  MIT grad, Anderson consultant, multiple web and software startups, and now done.

I’m just sick of it, he said, of the constant struggles and hassles.  And, after this long, it’s not interesting any more…it’s the same problems over and over again.

Now, he has a job as an “Excel jockey” running spreadsheets as a financial analyst for a property development firm.

I couldn’t be happier, he said.

I asked him why he thought making software was so hard, and he gave me these reasons, I’m paraphrasing is repsonses:

First, name one other thing in the world, he said, that is used by so many people and which is created entirely by hand?  Stuff that is made by hand is hard to make, and even more hard to make well, and tends to be less sturdy than things made by machines.  [Honestly, I had never thought of it that way.  In the “Etsy Era”, when everybody wants authentic and local and handcrafted, what could be more hand-made than software?!]

Plus, in the history of the world, he said, is there one thing you can think of that has been hand-made, and on such a large scale as software, that was as complex?  [I cannot not.]

And, there is no standard way to do things.  Sure, there are conventions and patterns, but often good developers don’t agree on the right way to build something.  How often do you think two plumbers argue over the right way to plumb a bathroom?  Almost never!  [To boot, when constructing buildings, the methods are so well known that one person can design (the architect) and another person can build (the carpenter, plumber, electrician), and the local government can know enough about all the methods to regulate.  (Imagine if your city government regulated how your code was written!)]

Finally, can you think of any job where people are making really complex things by hand, and which requires a ton of experience and training to be good at, yet everyone and their uncle has an opinion on how long a project should take to get done?  Why is it that no matter how long a project takes, the customer always thinks it should be faster or cheaper?  [I do not know why, but he’s right: it’s ridiculous!]

Update: A co-worker just sent me an e-mail about this post: “Good post, but I think you should tell us if you think he’s right to think we’re nuts to keep doing what we’re doing.”

That’s a very good question, and I’m not sure that I know the answer.

Certainly, my friend gave me pause to think about the meaning of my life and work for a moment.

On the one hand, I have an addiction, of sorts.  Yes, it is the same old problems year after year, but I guess somewhere inside there is a little voice thinks, “maybe this will be the project that everything is perfect,” and that I’d be quitting if I didn’t keep trying.

On the other hand, maybe it’s a struggle that cannot be overcome.  Or, not overcome until we’ve been building software for as long as we’ve been building houses.  Maybe my friend was right, that this work is sort of a fools errand.

I’d be interested in hearing what you think in the comments.

Written by scottporad

May 6th, 2012 at 11:21 pm

Posted in Miscellaneous

Tagged with ,