Presentation is loading. Please wait.

Presentation is loading. Please wait.

® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 1: Iterative Development.

Similar presentations


Presentation on theme: "® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 1: Iterative Development."— Presentation transcript:

1 ® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 1: Iterative Development

2 1-2 Module 1 Objectives Understand iterative development and its benefits by:  Understanding terms related to iterative development.  Becoming familiar with the main principles of iterative development, and issues related to its implementation.  Understanding why the project focus needs to change during a project lifecycle.  Introducing the software economics formula.  Discussing and recording the main reasons some projects are successful.

3 1-3 Discussion: Project Success  Think of a successful project that you participated in:  Were all the initial specifications met?  Was the quality perfect?  Was it completed within cost and time commitments?  What made it a success?  How do you define project success?

4 1-4 Key Principles for Business-Driven Development Adapt The Process Balance Competing Stakeholder Priorities Collaborate Across Teams Demonstrate Value Iteratively Elevate Level Of Abstraction Focus Continuously On Quality F E D C B A

5 1-5 Definition of Iterative Development Iterative development: steering a project by using periodic objective assessments, and re-planning based on those assessments. Good iterative development means:  Addressing risks early  Using an architecture-driven approach  Measuring objectively

6 1-6 Contrasting Traditional and Iterative Processes Waterfall Process  Requirements-driven and mostly custom development  Late risk resolution  Diseconomy of scale Requirements Analysis Design Code and Unit Test Subsystem Integration System Test Iterative Process  Architecture-driven and component-based  Early risk resolution  Economy of scale

7 1-7 Stages At a high level, the iterative process is viewed in two stages: Engineering stage  Driven by less predictable, smaller teams doing mainly design and synthesis activities Production stage  Driven by more predictable, larger teams doing mainly construction, test, and deployment activities

8 1-8 Differences in Emphasis in Stages Lifecycle AspectEngineering StageProduction Stage Risk Reduction Schedule, technical feasibility Cost Products Architecture baseline Product release baseline Assessment Demonstration, inspection, analysis Testing Economics Resolving diseconomies of scale Exploiting economies of scale Management FlexiblePredictable

9 1-9 Iterative Lifecycle In the iterative lifecycle:  Each phase is named to depict the goal of the project at that point in time.  Each phase has a different emphasis, and includes activities in varying proportions. time TransitionConstructionElaborationInception Production StageEngineering Stage

10 1-10 Phase Objectives  Inception: To achieve concurrence among all stakeholders on the lifecycle objectives for the project  Elaboration: Start coding the product to demonstrate that the baselined architecture provides a stable basis for the development efforts in Construction  Construction: To complete the development of the product  Transition: To ensure the product is available for its end users TransitionConstructionElaborationInception Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release Milestone time

11 1-11 Iterations Within Phases TransitionConstructionElaborationInception Transition Iteration Development Iteration Architecture Iteration Preliminary Iteration Executable Releases  Iteration: A distinct sequence of tasks within a time box based on an established plan and evaluation criteria, resulting in an executable release (internal or external)  Release: a stable, complete, and executable version of a system

12 1-12 Activities Within an Iteration One Iteration

13 1-13 Iterative Development Produces Executables Planning Requirements Analysis & Design Implementation Deployment Test Evaluation Management Environment Each iteration results in an executable release

14 1-14 Application of the Iterative Lifecycle  Produce releases in each iteration  Internal and external releases  Identify the scenarios to be completed or reworked based on the highest remaining project risks  Assign clear tasks to the development team to carry out this release  Establish appropriate review points and milestones  Force closure of the iteration by integrating and releasing the executable release

15 1-15 Successive Refinement  Each consecutive release should be marked by:  Growth of capability, as measured by the implementation of additional functionality during each iteration  Greater depth, as measured by a more complete implementation of the product  Greater stability, as measured by a reduction in the number of changes to the product

16 1-16 An Iteration Involves:  The completion of work planned for that iteration  An assessment of the project baseline at the end of the iteration  Planning for Next Iteration

17 1-17 Iteration Length and Number of Iterations  Length varies according to the objective.  Iteration length may vary by phase.  Typically, Elaboration iterations are longer than Construction iterations.  Within a phase, iterations are generally the same length. Complexity Total # of iterations [I,E,C,T] Low3[0,1,1,1] Typical6[1,2,2,1] High9[1,2,4,2] Very High10[2,3,3,2]

18 1-18 Transition  Need for alphas and betas  Conversions of customer base  Incremental delivery to customers Construction  Lots of code to write and verify  New technology or development tools Elaboration  Working with new system environment (new architectural features)  Untested architectural elements  Need for system prototypes Inception  Working with new functionality  Unknown business environment  Highly volatile scope  Make-buy decisions Conditions that Increase the Number of Iterations

19 1-19 The First Time You Iterate Consider that  Teams new to an iterative approach are usually overly-optimistic  The first iteration is usually the hardest  It requires participation and consensus from the project leaders  It must resolve tool integration issues, team-building issues, staffing issues, and so on.  To ensure success, aim for a modest amount of functionality in the first iteration. Otherwise:  The completion of the first iteration will be delayed  There will be pressure to reduce the number of iterations, causing the loss of iterative approach benefits TransitionConstructionElaborationInception Transition Iteration Development Iteration Architecture Iteration Preliminary Iteration

20 1-20 Iteration Strategies Wide and Shallow  Analyze entire domain  All use cases fleshed out  Define broad architecture Narrow and Deep  One slice of the domain is analyzed thoroughly  Development of one slice is performed Hybrid  A mixture of the strategies PROBLEM Elaboration Construction Transition

21 1-21 Benefits of Iterative Development  Manages risk  Iterative Development attacks highest project risks first  Commits resources on a proven plan  Improves software economics  Provides a framework in which adjustments can be made as the project progresses  Progress is measured objectively The following slides provide details on these benefits.

22 1-22 Definition of Risk Risk: An uncertain event or condition that, if it occurs, has a positive or negative effect on a project’s objectives.

23 1-23 Risk Profiles Project Risk Exposure Project Lifecycle Low High Conventional (Waterfall) Project Risk Profile InceptionElaborationConstruction – Transition Iterative Project Risk Profile

24 1-24 Common Risks Mitigated by Iterative Development COMMON RISKMITIGATED BY Requirements changes Iterative assessments Iterative product objective adjustments Stakeholder dissatisfaction Iterative stakeholder exposure Iterative stakeholder buy-in  Iterative development helps mitigate two common risks inherent to any software project.

25 1-25 Commitment of Resources in Iterative Development InceptionElaborationConstructionTransition Effort 5%20%65%10% Time/Schedule 10%30%50%10% The following is an example allocation of resources.

26 1-26 Software Economics  Factors are not independent  Since the Process exponent is typically greater than 1, there is a diseconomy of scale (that is, greater size causes unit costs to grow.) COCOMO II COST ESTIMATE EQUATION: Effort = (Personnel)(Environment)(Quality) (Size Process* ) *reflects process effectiveness COCOMO II COST ESTIMATE EQUATION: Effort = (Personnel)(Environment)(Quality) (Size Process* ) *reflects process effectiveness

27 1-27 Improving Software Economics Factors are not independent  Reduce Size or complexity of application  Improve development Process  Use more skilled Personnel and better teams (not necessarily the same thing)  Improve Environment with tools  Trade-off on Quality Using iterative development can have a favorable impact on the Process exponent. Effort = (Personnel)(Environment)(Quality) (Size Process )

28 1-28 Principal External Stakeholders of a Project Establish Project Vision System User Establish Detailed Specifications Commit to Sell or Use the Project’s Results Commit Project Resources Executive Manager Establish Project Scope Marketing/User Manager Main interfacing roles from the development team: Project Manager who commits to deliver features within cost and quality specifications. System Analyst who collects, documents, and supplies project technical specifications. Main interfacing roles from the development team: Project Manager who commits to deliver features within cost and quality specifications. System Analyst who collects, documents, and supplies project technical specifications.

29 1-29 Discussion: Stakeholders  Identify stakeholders for your project and explain how they should be kept involved for the duration of the project.

30 1-30 Steering a Project to Completion Iterative development enables project teams to:  Repeatedly assess the current situation.  Adjust the remaining path based on renewed objectives.

31 1-31 START: General idea of direction, but need to steer with each iteration and with stakeholder involvement. START I-end E-end T-end C-end * Stakeholder involvement END: Within stakeholder satisfaction space (that is, they like it, it’s within cost and quality parameters, and its features solve customer problems or better position the business). Project Navigation

32 1-32 The PMI’s Project Management Body Of Knowledge From Software Project Management -- A Mapping between RUP and the PMBOK, a IBM whitepaper by Serge Charbonneau PMBOK ® Knowledge AreaRUP ® Discipline Project Integration Management Project Management Requirements Deployment Configuration & Change Management Project Scope Management Project Management Requirements Configuration & Change Management Project Time ManagementProject Management Project Cost ManagementProject Management Project Quality Management Project Management Configuration & Change Management Project Human Resource ManagementProject Management Project Communications ManagementProject Management Project Risk ManagementProject Management Project Procurement ManagementRequirements

33 1-33 Review: Iterative Development Recommendations  Resolve major risks before making large investments  Enable early user feedback  Make testing and integration continuous  Give focus through short-term objective milestones  Deploy partial implementations T I M E Iteration 1 BM A&D R I T D CCM PM E Iteration 2 BM A&D R I T D CCM PM E Iteration 3 BM A&D R I T D CCM PM E

34 1-34 Module 1 Review  Benefits of Iterative Development:  Manages risk  Commits resources on a proven plan  Improves software economics  Provides a framework in which adjustments can be made as the project progresses  Progress is measured objectively  The activities involved in iterative development are broken down into the:  Engineering stage, composed of Inception and Elaboration phases  Production stage, composed of Construction and Transition phases  Each phase is measured by a milestone and has an overriding objective:  Inception -- Achieve stakeholder concurrence on project milestones and objectives.  Elaboration -- Start product development, baseline architecture, and agree on refined project scope  Construction -- Complete product development.  Transition -- Ensure availability for end-users.

35 1-35 Module 1 Review (Cont.)  The Iterative Project Manager steers the project through continuous planning and assessment at agreed-upon review points.  Good iterative development involves:  Addressing risks and architectural concerns early, and using objective measurements  Using a better process in your project can help reduce overall effort.

36 1-36


Download ppt "® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 1: Iterative Development."

Similar presentations


Ads by Google