1 / 36

Mastering Iterative Development: Understanding and Implementing Effective Project Management Methods

Learn the main principles of iterative development, its benefits, and how to effectively implement it in project management. Explore the factors that contribute to project success and define project success criteria. Understand the iterative development process, its stages, objectives, and milestones. Gain insights into the differences between traditional and iterative processes and the importance of addressing risks early.

Download Presentation

Mastering Iterative Development: Understanding and Implementing Effective Project Management Methods

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PRJ480 Mastering the Management of Iterative Development v2 Module 1: Iterative Development

  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. 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. A B C D E F 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

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

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

  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. Differences in Emphasis in Stages

  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. Engineering Stage Production Stage Inception Elaboration Construction Transition time

  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 Inception Elaboration Construction Transition time Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release Milestone

  11. Iterations Within Phases • 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 Inception Elaboration Construction Transition Preliminary Iteration Architecture Iteration Architecture Iteration Development Iteration Development Iteration Development Iteration Transition Iteration Transition Iteration Executable Releases

  12. Activities Within an Iteration One Iteration

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

  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. 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. 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. 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.

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

  19. 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 The First Time You Iterate Inception Elaboration Construction Transition Preliminary Iteration Architecture Iteration Architecture Iteration Development Iteration Development Iteration Development Iteration Transition Iteration Transition Iteration

  20. Iteration Strategies PROBLEM 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 SOLUTION PROBLEM SOLUTION PROBLEM Elaboration Construction SOLUTION Transition

  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. 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. Risk Profiles Inception Elaboration Construction – Transition High Project Risk Exposure Conventional (Waterfall) Iterative Project Project Risk Profile Risk Profile Low Project Lifecycle

  24. Common Risks Mitigated by Iterative Development • Iterative development helps mitigate two common risks inherent to any software project.

  25. Commitment of Resources in Iterative Development The following is an example allocation of resources.

  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) (SizeProcess*) *reflects process effectiveness

  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 Environmentwith tools • Trade-off on Quality Using iterative development can have a favorable impact on the Process exponent. Effort = (Personnel)(Environment)(Quality) (SizeProcess)

  28. Principal External Stakeholders of a Project Establish Project Vision Marketing/User Executive Manager Manager Establish Project Scope • 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. Commit to Sell or Use the Project’s Results Commit Project Resources Establish Detailed System Specifications User

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

  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. E-end START C-end T-end I-end Project Navigation 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). START: General idea of direction, but need to steer with each iteration and with stakeholder involvement. * Stakeholder involvement

  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

  33. BM BM BM R R R A&D A&D A&D I I I T T T D D D CCM CCM CCM PM PM PM E E E 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 Iteration 1 Iteration 2 Iteration 3 T I M E

  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. 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.

More Related