The model detailed in this article is a composite model for Software Quality Assurance (QA) to bring visibility into the software development process of low- and medium-maturity organizations. The QA review and measurement processes are integrated to form this composite model. Even though these processes are distinct, they both aim at providing visibility into the software development process. If managed well, both these processes together will provide better visibility and control over the software development process. On this common ground the composite model has been established. In this article, the ten elements of the model are discussed along with the benefits of implementing this composite model.
Controlling the software development process is a challenging task for any project manager. Unlike the manufacturing industry, software project managers struggle to maintain a clear window through which to keep an eye on the development process. Poor access to the process leads project managers gradually to lose control over the process, resulting in schedule slippage, frustration, and sometimes loss of customers.
Software Quality Assurance (QA) can play a vital role in providing clear vision into the development process. A great deal of support is expected from QA by the project management team in this regard, even though the role of QA is to ensure process compliance. Above all this vision is required to prevent any undesirable event that might be triggered by the process being observed.
Whether injection of a new defect or a schedule slippage, it can be traced and acted upon based on the "eyesight" one maintains into the process. QA looks at the process as an independent agent and brings out this eyesight that provides confidence to the development and project management team that nothing can go wrong without their knowledge.
One of the common problems with software development organizations of low- and medium-process maturity is that the priority is always to maintain the economic stability of the organization. Such organizations cannot afford to invest more money in process improvement because their future is unpredictable. Here is the opportunity for QA to play a useful role. This composite model is a guideline for such a QA role, typically in organizations where the basic development practices are not yet formalized but working toward defining and implementing processes based on ISO 9001 or CMM guidelines. Applying this model enhances transparency in the process that helps the process-owners take necessary action when uncontrolled situations occur.
The composite model shown in Figure 1 integrates both the QA process and the measurement process. It is structured such that the objectives of both processes are obtained together. Of the ten elements of this model, two are "Common Elements," four are "Elements of the QA Process," and the remaining four are "Elements of the Measurement Process."
Figure 1: Composite model
1. Identifying key processes
A common question among managers, especially quality professionals, is how to identify the key processes. In organizations where CMM guidelines are implemented, the key processes are already identified. But in the case of low- and medium-maturity level organizations, it is a struggle to identify the key processes. Here is a simple solution that I would like to suggest. Go for a walk with your CEO on a sunny day and ask him a simple question: "What are the factors for success of our business?" After you have listened carefully, record the factors that most impact your processes. If you have no process to accommodate the CEO's priority factors, define a new process. The processes most directly and heavily impacted by those priority factors are the key processes.
For this article we'll focus on the most obvious and general process-the development lifecycle. A number of related activities include the development process, the project management process, the configuration management process, the review process, the testing process, the measurement, and analysis process, etc. An organization has to identify the key processes based on their criticality and relevance to business growth. The key processes should be well defined and controlled to a great degree, as even a small variation in these processes will have a great impact on business performance.
2. Identifying key activities
As these key processes are formed with a set of various activities, it is essential to identify these