In Software, What Must Happen Often Does Not
The next example illustrates what can happen when managers do not follow software principle number three: that quality software is developed by disciplined and motivated people. I met Larry, the vice president of engineering, when his group was developing a large integrated production control system. Software delivery was committed for the following September, and it was only April, so Larry was optimistic that they would make it. He wanted my opinion.
When I asked about status, Larry explained that the coding was almost finished and that integration and system testing were under way. However, when I asked about product data, he did not know what I meant. I told him that, to understand where they stood, I had to know the size of the planned product, how much code had been written to date, how much had been released to integration and system test, and when it was released. He did not have this information.
Before giving Larry my opinion, I talked to the key managers and several of the engineers on the project. I also talked to the testers. Then I told Larry my conclusions. The system was just now starting testing and, based on the quality practices I had observed, the job was only about half done. Since the company had been developing this system for over a year, there was at least a year to go. While the product might be shipped in September, it would be in September of the following year.
Larry refused to believe me. They had to ship this September. While it was true that the business desperately needed an earlier shipment, they didn't even ship a year later. The company eventually ran out of money and was sold to a competitor. This is a classic case of poor software management.
The Lesson of Principle Number Three
Software managers and professionals who are not trained in quality methods will not believe that quality is important and will not follow the disciplined practices required to build quality products. Then testing will take at least half of the development schedule. Until you overcome this poor quality attitude, your people will not follow disciplined quality practices, and you cannot get quality software. Every aspect of software must start with quality, even the engineers' attitudes.