Put your software
house in order
A common lament among the software development community is "building software is much more difficult than building a house."
Developers and contractors often disagree, and for good reason. In fact, building a custom house is really not that much easier than building custom software.
Why then, do businesses and government agencies complain so often about their poor software? Why are there so many horror stories about failed software and so few about failed houses?
Many in the software industry like to point to some simple examples to support their point. In a house, the hot water is always on the left, the cold water always on the right, but on a computer, you sometimes have to press "start" when you really want to turn it off. Another one we like is, "Everyone knows how to turn a doorknob, but not everyone can drag and drop."
Sure, there is some merit to these arguments. Certain housing concepts have not changed in 40 years or more. But the fact of the matter is that people are usually much more willing to put effort toward the planning part of building a house than the planning part of building software.
In simplest terms, when building a custom house, you have -- or create -- an idea of what you need: three bedrooms, two-and-a-half bathrooms, a den, a family room for the kids to play in, a yard big enough to practice chipping (or no yard at all). You hire an architect to put together blueprints which describe, in detail, how the house will be laid out. The size of every room, where the electrical outlets will be, which way the doors open, where the water pipes will run, every last detail is described. Then, and only then, do you start actual construction.
In software development, however, this initial planning phase is often purposely overlooked. Many times, people like to start writing programs first and worry about details later. This is akin to building a house and then wanting to swap the location of the kitchen and the master bedroom. Imagine the cost of such an ordeal, knocking down walls, moving water pipes, electrical wiring, all the while making sure the roof doesn't collapse.
Good software development is based on good up-front planning. Just about every software project, large or small, must be based around this tenet. Certainly, there are ways that this planning process can be streamlined but it cannot be skipped. Take the time to define your needs, and have the equivalent of a blueprint in place. Otherwise, be prepared to move the kitchen.
John Agsalud is president of ISDI Technologies Inc., a Honolulu-based IT consultancy. Call him at 944-8742 or e-mail
jagsalud@isdi-hi.com