Software Is Hard

Interesting interview over at Salon, entitled “Software Is Hard“, with author Scott Rosenberg, about his new book “Dreaming in Code” which is about the troubled story of Mitch Kapor’s Chandler software development project.  But really it’s about how hard software development is in general.

You’re doing the project because there is this new feature or
features that you need. The developers will often look at this and say,
well, we know we have to do that, but then there is all this other
stuff that needs to be done…The developer might say, I could take this thing off the
shelf that exists already and plug it in, but it’s going to take almost
as long for me to learn how to do that, or maybe even longer to learn
it, than to write it myself.

And programmers, as I quote Larry Constantine in my book,
programmers are programmers because they like to code — given a choice
between learning someone else’s code and just sitting down and writing
their own, they will always do the latter. And the programmer who says,
it will be faster for me to write it, rather than to learn it, is
usually correct. Except that what he will write, most likely, is
something that will work but will not have its rough edges worked out,
will not have the benefits of a piece of software that has actually
been used for a few years, where the bugs have been found and the users
have given feedback and have helped you figure out where the problems
are. So what they will often be handing you at the end of that
I-can-do-it-faster-myself thing is something that works, but that is
kind of a mess in certain ways. Whereas the thing that you were going
to pull off the shelf, maybe it will take the programmers a while to
learn it, but once they learn it enough to hook it up to this project
you are creating, what they are hooking up will probably have a lot
fewer problems.