Experience driven software process assessment and improvement
Doctoral thesis, 2010
To maintain and increase competitive advantages, software organizations must continually strive to refine and improve their development processes. Software process assessment and improvement is the means by which development organizations assure and improve their processes, practices and tools to support their specific needs. Development practices are ultimately based on the knowledge and experiences of the organization’s staff. However, relying only on experiences inherent to the organization might, in the long run, mean becoming increasingly good at using obsolete practices. Thus, organizations also need to take advantage of industry best practice, innovations and, knowledge and experience inherent to the organization for improvements.
This thesis presents research aimed at supporting organizations to assess and improve their processes and practices with a focus on requirements engineering. First, the validation of a framework for assessment and improvement planning enables identification of improvement issues. The framework is characterized by relative accuracy and resource efficiency in using multiple data sources and involving practitioners in identifying what needs to be improved first. When challenges have been uncovered, the decision for how to improve involves: looking for innovation by introducing new practices, or improve practices currently used in the organization.
To support process innovation, an investigation of the level and quality of evidence in requirements engineering research was made. Technology evaluations are classified according to the level of industrial relevance and rigor. To support learning from experiences inherent to the organization, a framework for diffusing and improving practices was developed and evaluated. Practices are used to transfer knowledge between different parts of the organization. Experiences from practice usage are then collected in postmortems offering iteratively improved decisions support. As the validity of experiences collected can be questioned, an example of how to strengthen the evidence is presented. The results can be stored in relation to the practice to improve the decision support related to it.
The main contribution of the thesis is the development and evaluation of methods for process assessment and improvement based on experience and knowledge inherent to an organization. Another contribution is the investigation into state-of-research in requirements engineering. It is important to leverage experiences both internal and external to an organization when making decisions on what practices to use. Future work should investigate how to balance process and practice innovation and refinement.
Software Process Assessment
Software Process Improvement