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 companys
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 companys
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 systems 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 activitiesit 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 systems 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 projects
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 companys 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 (DSouza
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
|