Friday, January 14, 2005

Software without bugs: developers tell me it is impossible

Recently I was speaking to a developer who was astounded mentioned a site I had built, a 120 page website, all dynamic (database driven), and there were no bugs in it.

For most developers, that is one of the craziest things they have ever heard in their lives. After all, they are brilliant, and their project managers (if they have them) work 60-80 hours a week, so if they can't do it, nobody else can.

The application I worked on was not trivial, it supports significant functionality for a company that is the largest in the world in its market, and they had over 1000 employees at their height.

I have consulted for many companies over the years, and one thing that stands out to me most is that the success or failure of any project seems to hinge on the skillset of the project manager (and not the amount of hours they put into their jobs).

Agile methodologies and Extreme programming seem to go in the wrong direction in terms of solving the problem of creating software that arrives on time and without bugs. Adaptability is not the key to success in a programming project, but rather understanding of the problem at hand. Sometimes it requires attention to thousands (or tens of thousands) of details, but for people properly trained in simple techniques, even the most difficult projects can be successful, without bugs, and on time.

The truth about software development is that it shares a lot with building, but formal processes have been in place in the construction trade (like drawing proper blueprints) for a long time that are not in place for the software industry. In fact, the proliferation of tools and methodologies rapidly outpaces anyone's ability to even keep up with them.

For now, there will continue to be billions of dollars wasted in failed IT projects each year, but someday the dust willsettle and certain practices that work best will dominate.

No comments: