Friday, November 12, 2010

So What?

The previous post reached the conclusion that there *is* such a thing as software engineering, and it raised the question: "So what?"

What is the value of this conclusion? Does it matter what we call the process that -- in the end -- produces some software product?

To be frank, no. The argument over what is software engineering, and whether software engineering is really a kind of engineering, is a distraction from the real issue at hand. Hopefully the previous post provides a reasonable resolution to this debate.

The real issue is how to make the process of creating software more reliable and predictable. This "software crisis" (ironically a product of advances in computer capability) encompasses a collection of shortcomings, including (i) a lack of effective techniques for managing software projects, (ii) disconnects between what users need and want and what programmers produce, and (iii) overall poor software quality and performance. The common factor in each of these problems is complexity, and poor management thereof.

The complexity is unavoidable. Therefore the only way out is to find effective ways to deal with it. The key is to decouple these problems to identify solutions for each.

No comments: