What is Software Process Assessment ?

The Software Process Assessment and improvement is started in the 1990s from the process based approach to software development. The main problem of product-centered development was the ignoring of activities that had no visible results and regarding them as unimportant. Process-based approach in software development puts emphasis on organisation development and the reaching of business goals. A similar understanding of software processes creates a feeling of unity among the developers in a company and a continuity in the development, that in turn guarantee higher production capability and quality of the results.

As the first promoter of software process improvement Watts Humphrey said, the main problems in software development are not caused by insufficient skills, but by unawareness of how to use the best available methods and inability to efficiently solve detailed problems related to the process and product. The result of software process improvement will be the following of a detailed description of activities in every situation of development.

The existence of software process does not guarantee the timely delivery of the software and its ability to meet the user's expectations. The process needs to be assessed in order to ensure that it meets a set of basic process criteria, which is essential for implementing the principles of software engineering in an efficient manner. The process is assessed to evaluate methods, tools, and practices, which are used to develop and test the software. The aim of process assessment is to identify the areas for improvement and suggest a plan for making that improvement. The main focus areas of process assessment are listed below :

  • Obtaining guidance for improving software development and test processes
  • Obtaining an independent and unbiased review of the process
  • Obtaining a baseline (defined as a set of software components and documents that have been formerly reviewed and accepted; that serves as the basis for further development) for improving quality and productivity of processes.

Software process assessment examines whether the software processes are effective and efficient in accomplishing the goals. This is determined by the capability of selected software processes. The capability of a process determines whether a process with some variations is capable of meeting user's requirements. In addition, it measures the extent to which the software process meets the user's requirements. Process assessment is useful to the organization as it helps in improving the existing processes. In addition, it determines the strengths, weaknesses and the risks involved in the processes.

Software process improvement begins with an assessment of software processes. Different approaches are used for assessing software process. These approaches are the two most widely used models CMMI or Capability Maturity Model Integration and ISO/IEC 15504 (SPICE – Software Process Improvement and Capability Determination). 

The CMMI will be covered in the previous post here

The SPICE (Software Process Improvement and Capability Determination) is a standard used for both process improvement and process capability determination. SPICE provides a framework for assessing the software process and is used by the organizations involved in planning, monitoring, developing, managing, and improving acquisitions. It is carried out in accordance with the International Organization for Standardization (ISO) and International Electro-technical Committee (IEC), which are used together and known as ISO/IEC 15504. The functions of SPICE (ISO/IEC 15504) are listed below :

  • To develop process-rating profiles instead of pass or fail criteria
  • To consider the environment in which the assessed process operates
  • To facilitate self assessment
  • To ensure suitability for all applications and all sizes of organizations.

SPICE (ISO/IEC 15504) constitutes a set of documents that is used to guide goals and fundamental activities and grade the organization according to its level of capability. In addition, it determines the capability of a process in an organization, based on the results of the assessment of the processes and products. It also develops a maturity model for process improvement. This model is known as SPICE reference model. It is applicable for all processes and comprises following six levels.

1. Not performed : At this level, the processes are unable to accomplish the required outcomes. Thus, no identifiable products are created.

2. Performed informally : At this level, the implemented process accomplishes the defined outcomes. It is not planned and tracked; rather it depends on individual knowledge and identifiable products.

3. Planned and tracked : At this level, the defined process delivers products according to quality requirements within a specified time. The processes and products are verified according to the procedures, standards, and requirements.

4. Well-defined : At this level, the processes based on software engineering principles which are capable of achieving defined outcomes are used.

5. Quantitatively controlled : At this level, the performance measures, prediction capability and objective management are evaluated quantitatively. In addition, existing processes perform consistently within the defined limits to accomplish the desired outputs.

6. Continuously improved : At this level, the existing processes adapt to meet future business goals. For continuous improvement, various kinds of statistical methods are used.

Assessment starts with a meeting for developers that introduces software process improvement and assessment and in the course of which the project as well as the processes are chosen that are considered by developers to be the most important for assessment. Often these tend to be the processes that the developers consider to have been insufficient in several projects. The detailed assessment of the chosen project and processes will be done during an interview with the developers who took part in the project. Software process assessment also ends with a development team meeting, where the capabilities of the assessed processes are described according to process models, as well as the shortcomings of the processes and a process improvement plan is put together. Despite the fact that the processes are assessed in a specific project, the development processes will be improved in each of the following development projects. It is only constant improvement that leads to the software productivity growth in a company.

Next Topic :

No comments:

Post a Comment