Log In to My ASQ



Log-In Help

Register with ASQ

Sign up for access to ASQ's free articles, case studies, and general information. For more access, join ASQ.






Magazines & Journals
Software Quality Professional

Printer Friendly
Issues
I Want To
Article Access Key
  • Public Article
  • Log-In to View

June 2003
Volume 5 • Number 3

Contents

SOFTWARE PROCESS DEVELOPMENT

The Living Software Development Process

By Michael Gnatz, Frank Marschall, Gerhard Popp, Andreas Rausch, and Wolfgang Schwerin

INTRODUCTION
Software engineering focuses on producing high-quality software products on time and within budget. Empirical studies and research results have shown that applying a well-defined, organizationwide, standardized software development process has profound influence on the magic triangle of time, costs, and quality. The CHAOS 10 software project success factor no. 8 is “formal project management methodology,” which results in steps and procedures the project team can reproduce and reuse (Standish 2001). Following a standardized, repeatable development process increases software quality and makes the software development more predictable and economic (Cugola and Ghezzi 1998).

However, industrial software producers work in a highly dynamic market: Organizational and structural aspects of projects and customers can be altered, customer requirements have a tendency to change, and new technologies must be adopted. To produce high-quality products one has to manage the change. This implies that one must be able to quickly adapt his or her development processes with respect to upcoming changes (Weinberg 1997).

For example, consider a perfect customer providing a well-elaborated requirements document for a project, such as developing an insurance policy management system. During the analysis and design phase it turns out that the insurance company’s management had a clear understanding of the system functionality, which was harmonized with the On-Site accounting clerks but not with the independent insurance policy brokers selling and maintaining the insurance policies of the company’s customers. To develop a high-quality and accepted system one has to involve these additional stakeholders into requirements analysis. In this case it might be advantageous to change the development process. All design and analysis activities are stopped. A new requirements elicitation phase involving all system’s stakeholders based on a rapid prototyping approach is started.

As one can see, a software development process must not constrain a project leader and his or her software engineers to follow a predefined sequence of activities—it should provide support and space for their creative tasks. Therefore, it must be highly flexible and adaptable with respect to the frequent changes of the system’s requirements and the environment in which it is applied.

Existing process models like the V-Model (Dröschel and Wiemers 1999) or the Rational Unified Process (Kruchten 2000) contain the concept of static tailoring to allow more flexibility. This concept comprises the selection of process building blocks at the beginning of a software development project. Dynamic tailoring, on the other hand, supports the reassembly during the project, not only at the beginning. Thus, it can manage the change more successfully.

Hence, an organizationwide standardized development process model is needed that provides approved and established process building blocks as a toolkit for enabling static as well as dynamic tailoring. Such a standard development process should include:

  • A well-defined process model outline comprising building blocks a project can start working with
  • Process (re-)configuration techniques allowing the project manager to react to unpredictable changes of the project’s environment

Furthermore, a development process requires permanent rectification. Process engineers have to add new process building blocks as well as improve or delete existing ones. A standard software development process must also be able to incorporate the assets and benefits of existing process models as well as the specific process knowledge of a certain company. It must offer a platform for a learning organization and for recording the evolution steps of a company’s software development processes.

Thus, different techniques of existing development processes, such as the Objectory Process (Jacobson 1992), the Rational Unified Process (Kruchten 2000), the Catalysis Approach (D’Souza and Wills 1998), the V-Model 97 (Dröschel and Wiemers 1999), or eXtreme Programming (Beck 1999), could be integrated into an organizationwide standardized development process.

This article presents a process meta-model that builds an infrastructure, providing the right balance between flexibility and control in process models. The authors introduce their vision of a living software development process, which allows them to perform evolutionary process improvement together with static and dynamic tailoring of process models.

The full text of this article may be found in the print journal. To subscribe go to /quality-press/display-item/index.html?item=SUBSCR_SQP .

Return to Top