Introduction to Software Process Improvement
by Janette Toral
Companies are now becoming more and more dependent with the use of computers in business, for business, and even as a business. At the heart of it is software developed or purchased for organization use.
With its increasing significance, companies began putting up their own management information system (MIS) or electronic data processing (EDP) departments whose role is to develop productivity applications, tools and maintain these systems.
People were hired in these departments based on their aptitude, attitude, and technical know-how. Development and technology tools were purchased based on its features and benefits to its users.
However, in most organizations today, the working structure and development methodology are informal. The working parameters of the team were solely based on the software development life cycle phases and the major deliverables. Most of the time, these are not clearly defined.
As a result, excellent output becomes dependent on the quality of the people hired, their level of experience, and commitment to the organization.
Risk-wise, if these people leave the organization, more often than not, the whole project collapses as no one is capable of continuing the job due to lack of process, procedures, training, and documentation.
Quality software is not strictly dependent on people and technology. Process plays a great role as these are practices established in the organization, to be performed, and achieve a given purpose.
As the software development department gain good and bad experience, processes or methodology evolves as well, formally or not. This change is referred to as software process improvement (SPI).
SPI usually takes place with the intent of not only making things better but help in achieving basic business goals or objectives today. Rather than being people or technology focused, organizations are encouraged to be process-focused in its software development methodology.
Being people-focused is not the answer for high quality output. People can only be as good as they are trained to be. Working harder through longer hours or days does not speak much on the quality of output. It becomes a reflection instead of poor schedule estimation in the process.
Purchasing expensive software is not the key as well. I've met organizations who bought case tools and the like that were not fully utilized, for the working environment bends all rules just to deliver products on its committed delivery date.
Defined software processes are important to minimize problems in people, systems, software or applications development, and maintenance. With process improvement, good practices get to be institutionalized in the organization and continuously improve.
SPI can only work if the following will be taken into consideration:
1. Make time.
Successful SPI efforts require stakeholders to adjust their schedules to devote time for improvement activities.
2. Gain knowledge.
There are a lot of books and seminars that tells you how to improve and do it right. It is better to look into proven process models for these are compilations of best practices. A process model can be used to help set improvement objectives and priorities. With proper and knowledgeable adoption, it can lead to well-directed efforts. People who have been participating in DigitalFilipino.com SPI workshops learn most from the lessons learned and best practices from fellow participants. Some even benchmark their current practices and evaluate whether it is being done right.
3. SPI for sustainable quality output and culture.
Don't undertake SPI for marketing or certification purpose alone. It will not last. Consider it like a marriage. You choose a partner because you want to stay, improve, and grow. Having a different criteria otherwise, like money or sex, can only last for so long.
4. Long-term commitment.
Executives and managers must be educated about the cost, benefit, and risk of software development and the role of SPI to help achieve business goals.
Introduction to CMMI as a process model
Benefits of SPI
Organizations who have implemented SPI agree on the following benefits derived:
1. Predictability. With experience and measurements, organizations have improved their estimation of schedule and budget through time.
2. Quality. Program defects decrease as productivity increase.
3. Customer confidence. The establishment of processes gave customers security in terms of having its projects managed professionally and not being dependent on heroes as its applications scale. Note though that your first deployment of processes can result to resistance from customers as your flexibility in accommodating concerns will now have processes to be followed. With proper customer orientation, this can be managed accordingly.
4. Better employee morale. Employees gain higher morale in the process as they are much guided in their work through policies, training programs, and well-documented plans. Being part of an organization that practices SPI gives credibility and prestige to its people as well.
SPI takes time: the road ahead
Our effort to educate the community on SPI and CMMI on a bigger scale starts here. Definitely, this online workshop will not replace the value of face-to-face training. It can give you enough insight to get started and see whether SPI is worth pursuing in your organization.