12.31.09
Quality through Internal Competition

[Cartoon]
We all want quality. When we get into our car to go, we expect it to start. We expect it to go the speed we tell it to go. We expect it to turn when we turn the wheel and we expect it to stop when we hit the brakes. For us, quality means doing what we want when we want it done.
We do not like it when our favorite routes are disrupted by highway construction. We may even complain. But, when the changes are completed, we may find it great at first. But, in time, the changes blend into our expectations and are seldom thought of again.
Isn’t it nice that we can put gas in our car without needing to adjust our carburetor? Back in the early days of automobiles there were no gas stations on every corner. Gas came from multiple sources and each had a different octane and different additives. Automobile owners needed to be astute at adjusting their engine to take all of this into account.
For our convenience, quality in products and services has come about because of standards. Gasoline comes in standard grades and automobile engines are designed to work with specific grades. Light bulbs, power outlets, socket wrenches, shoes, clothes, and even hats, all have standard measures and sizes. Just look around and make a list of those things that have standards.
Now, also consider that those things that have standards also have high quality. This is not an accident. When a product or service is standardized there can be competition. With competition the best price and quality will win out.
So where is the competition for one-off software development? By the fact that the solution is a one-off, there is no competition. Since there is no competition, best practices will lead to comprehensive testing. But, comprehensive testing will drive up the cost and may jeopardize the delivery date. There must be a balance among the schedule, the cost, and the quality. There is nothing boring here.
The proven method of standardizing for all software development is componentization. Components should be developed to provide business and infrastructure services. These components would be used just like an Erector Set to construct more complex structures. This brings reliability and reduced costs. It also reduces risk and results in higher quality.
This concept of componentization has been around a long time, but now, with the help of Enterprise Architects, this concept can become a full-blown competitive environment. Integration Technology is an enabler. There are standards that can be used across platforms due to the standardization of TCP/IP communications. Another enabler is the business modeling done by the Enterprise Architect through facilitation with the business managers. Combining these enablers is a concept that is beginning to reach a level of maturity in the form of Service-Oriented Architecture.
The competition will come from the innovation of the lines-of-business. Whether they follow six sigma or other forms of quality improvement, they will be continually competing against themselves. They will enhance and improve services and define or adopt new standards when needed.
All that is needed to reach this level of quality is to take the view that Information Technology should be organized around the business, the entire enterprise. There also needs to be business components exposed by identifying business services. This view, which is taken by an Enterprise Architect, coupled with the innovation of the lines-of- business will lead to very high quality in software solutions through internal competition.
Closing the Business / IT gap.
