86
CHAPTER 5
Software Integrated Product and Process
Development
5.1.3
Early and continuous life-cycle planning
The IPPD philosophy expands the definition of development to address the product
life cycle. This involves more than the development of the product—establishing
the infrastructure for post-development software sustainment. This involves con-
sidering how the product may be evolved over time through a number of iterative
development efforts, as well as how the advancement
of computing technology may
affect the product design and computing environment composition. The variable
element of the product life cycle must be identified early to ensure that the software
product architecture is established to facilitate the product’s evolution. Planning
the product development and life-cycle sustainment activities must begin early
in the product conceptual definition. The planning activities must be revised to
continually incorporate the most current knowledge and understanding of the effort
needed to complete the initial product development and
initiate the post-develop-
ment efforts.
This captures the premise behind iterative and incremental software devel-
opment approaches. They recognize that a software product will evolve through-
out its life cycle. Therefore, it is prudent to plan the software product’s evolution
around several iterations of software development to provide increments of prod-
uct functionality and performance.
Under the IPPD philosophy, the initial devel-
opment of the software product represents a large development effort due to the
need to establish the product architecture. During software sustainment, the prod-
uct is modified, enhanced, or extended by additional iterations of
the development
activities. Whenever the software product must undergo significant architectural
redefinition, a new software development project should be established. For each
major iteration of software development, the associated life-cycle processes may
need to be redeveloped to accommodate the changes in the product’s architecture.
Figure 5.2
shows the sequence and alignment of software development projects and
post-development software sustainment iterations.
Software Development
Iteration 1
Software Sustainment
Iteration 1.1
Software Sustainment
Iteration 1.2
Software Sustainment
Iteration 1.3
Software Sustainment
Iteration 2.1
Software Development
Iteration 1.3
Revision 1.1
Revision 1.2
Revision 1.3
Revision 2.1
Product Version 1.0
Product Version 2.0
FIGURE 5.2
Iterative and/or incremental software life-cycle planning.