Page 39 -
P. 39

2 - PROJECT LIFE CYCLE AND ORGANIZATION






                      Software project life cycles in the middle region of the life cycle continuum tend to align more closely with the
                   predictive side or the adaptive side of the continuum depending on the way requirements are specified, how risk
                   and cost are handled, and the nature of key stakeholder involvement.
                                                                                                                          2
                      Key stakeholders are those individuals and groups whose involvement is essential for a successful outcome. Key
                   stakeholders may include but are not limited to potential users, customers, system engineers, system integrators,
                   acquirers, operators, and maintainers. Different key stakeholders may need to be involved at different times during
                   software development.

                      Also, it should be emphasized that software project life cycles are complex and multidimensional. They include
                   processes for activities such as configuration management, process and product quality assurance, independent
                   testing, and other activities as appropriate and needed. In addition, software projects may be elements of programs,
                   and may include interfaces to other functional units of the software development organization or business enterprise,
                   to affiliated projects, and/or to subcontracted groups or projects.

                      There is a distinction between planning and conducting a software project and preparing for and delivering the
                   resulting product. The customer and other key stakeholders for a predictive software life cycle project could choose
                   (a) to accept a single product delivery at the end of the project; (b) to accept delivery of preplanned increments
                   of functionality at specified milestones during product development; (c) to accept delivery at the end of the
                   project but with periodic demonstrations of product increments during product development; or (d) to have no
                   involvement between initial requirements specification and delivery of the product. Similarly, a customer and other
                   key stakeholders for an adaptive life cycle software project could choose to witness demonstrations of evolving
                   capabilities at the ends of iteration cycles with a single delivery of the product at the end of the project, or to accept
                   delivery of product increments at planned or emerging intervals.

                      Other variations are possible: (a) a software project manager could initially prepare detailed plans and requirements
                   (in  a  predictive manner) with  frequent  iteration cycles  during  software  construction  (in  an adaptive  manner);
                   (b) a software project could be conducted iteratively during analysis and design with the product constructed as a single
                   product increment; (c) a software product could be developed incrementally with no iterations during development
                   of the increments;  or (d) a software product could be developed with no iterations and a single product increment.

                      Project execution and product delivery are distinct activities. The life cycle model for project execution and
                   product delivery should be designed as carefully as the software product, based on factors such as those in listed
                   in Figure 2-1.



                   2.4.1 Characteristics of Project Life Cycles


                      Creation of software deliverables typically requires a variety of project life cycle processes. According to ISO/
                   IEC/IEEE Standard 12207, development of software includes the following processes (see also Figure 1 of 12207):
                         •  Analyze: Software Requirements Analysis Process,

                         •  Architect: Software Architectural Design Process,
                         •  Design: Software Detailed Design Process,



                   ©2013 Project Management Institute. Software Extension to the PMBOK  Guide Fifth Edition               27
                                                                   ®
   34   35   36   37   38   39   40   41   42   43   44