Published on

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Module 3 - Lifecycle Planning Iterative Project Management
  • Module 3 - Lifecycle Planning Iterative Project Management 50% of the requirements seems very high to me..
  • Module 3 - Lifecycle Planning Iterative Project Management
  • Module 3 - Lifecycle Planning Iterative Project Management
  • Module 3 - Lifecycle Planning Iterative Project Management
  • Module 3 - Lifecycle Planning Iterative Project Management
  • Module 3 - Lifecycle Planning Iterative Project Management
  • Chapter4.ppt

    1. 1. Iterative Project Management Lifecycle Planning Chapter 4 – Selected Sections Are you Ready for Iterative Project Management? pp 123-131; 142-153
    2. 2. I. Introduction <ul><li>There are many problems with adapting to an iterative / incremental development approach that people perceive. </li></ul><ul><li>We will discuss several of the key issues. </li></ul><ul><li>Right Attitude : In truth, much of the transition requires the team to have the </li></ul><ul><ul><li>right attitude toward the projects and </li></ul></ul><ul><ul><li>how to work together . </li></ul></ul><ul><ul><li>R eal change in mind-set must be accommodated </li></ul></ul><ul><ul><li>Willingness to eschew the conventional methods. </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    3. 3. Attitude is Critical! Attitude is the Real Key! <ul><li>New attitudes are needed. </li></ul><ul><ul><li>Must Address Uncertainty and Change – </li></ul></ul><ul><ul><ul><li>Best way: clearly demonstrate real progress; </li></ul></ul></ul><ul><ul><ul><li>Best shown : working software that provides real value . </li></ul></ul></ul><ul><ul><ul><ul><li>Verified; testaments… </li></ul></ul></ul></ul><ul><ul><li>Must deliver immediate and realizable value back to the business </li></ul></ul><ul><ul><li>Must address our attitude regarding teamwork and accountability </li></ul></ul><ul><ul><ul><li>Will be interacting with many stakeholders continuously ; </li></ul></ul></ul><ul><ul><ul><li>shared responsibilities, etc. </li></ul></ul></ul><ul><ul><li>Must adopt a progressive attitude – a real change in estimating, planning, and managing the software project </li></ul></ul><ul><li>The right team attitude is critically important! </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    4. 4. Value Delivery – The Key to Success <ul><li>It is absolutely essential to produce real business value </li></ul><ul><li>We must realize: </li></ul><ul><ul><li>Requirements are not all equal. </li></ul></ul><ul><ul><li>Value working components vice technical components (like a sort) </li></ul></ul><ul><ul><ul><li>Delivering requirements with verified code might not be delivering the best business value </li></ul></ul></ul><ul><ul><ul><li>Don’t worry about implementing lots of requirements at the expense of not focusing on real desired outcomes. </li></ul></ul></ul><ul><ul><li>Track stakeholder and business value , not project cost and schedule </li></ul></ul><ul><li>It is all about delivering verified, measurable Business Value! </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    5. 5. Quick failure recipes : Requirements  Business Solution <ul><li>Implementing requirements versus solving problems. </li></ul><ul><ul><li>Problems are of a higher order… will include meeting requirements </li></ul></ul><ul><li>Iterative / incremental projects can fail too if developers concentrate on implementing requirements rather than iteratively solving problems . </li></ul><ul><li>Addressing technical risk which is fine - without concomitant business value. </li></ul><ul><li>Iterative projects can fail if developers concentrate on addressing technical risks and yet fail to deliver usable versions of software that provide realizable benefit . </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    6. 6. Value Delivery – The Key to Success – slide 2 <ul><li>Great Statistics: </li></ul><ul><ul><li>Research indicates only two-thirds of implemented features in successful projects were often actually required. </li></ul></ul><ul><ul><li>Around one-third of developed software had little or no business value. </li></ul></ul><ul><li>What an incredible waste of resources!!! </li></ul><ul><li>Consider: “20% of requirements have been implemented by such and such a date.” </li></ul><ul><ul><li>This does NOT necessarily reflect real value </li></ul></ul><ul><li>Generally, by the end of the first iteration or two in Construction , we should have a usable , complete release that may implement around 50% of the requirements. (Why?) </li></ul><ul><ul><li>Interestingly, at this point with proper iteration planning, they may have produced a system with 80% of desired value </li></ul></ul><ul><ul><li>But if iterations not carefully planned and pressed on implementing lesser (but perhaps more in number) requirements, then may have around 20% of desired value . </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    7. 7. Value Delivery – The Key to Success – 3 <ul><li>The key is to ensure requirements implemented in an iteration can be mapped back to specific outcomes . </li></ul><ul><li>The first iterations must implement the most important desired outcomes as constrained by technical risk </li></ul><ul><li>Must be able to support these claims! </li></ul><ul><li>Do so by demonstrating desired / measurable outcomes. </li></ul><ul><ul><ul><li>Ancillary: technical risks / issues are resolved. </li></ul></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    8. 8. Demonstrate Measurable Value – Executable Threads <ul><li>Iterations simply must deliver measurable value to the project team and the business. </li></ul><ul><ul><li>Assertions are fine. Demonstrate it! </li></ul></ul><ul><li>Successful Iterations define release contents in terms of </li></ul><ul><ul><li>Executable releases that contain end-to-end behavioral threads of system usage. </li></ul></ul><ul><li>Executable Thread? </li></ul><ul><ul><li>An end-to-end thread may be a use-case, or user story, scenario. </li></ul></ul><ul><ul><ul><li>(A scenario is an instantiation of a use-case) </li></ul></ul></ul><ul><ul><ul><li>Complete threads of usage drive other development activities to ensure verifiable systems are produced. </li></ul></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    9. 9. Planning that Iteration! Plan those Early Iterations! <ul><li>Know use-cases describe the goals of the system stakeholders. </li></ul><ul><li>Planning iterations via use-cases / scenarios allows us to scope and prioritized development. </li></ul><ul><li>We also know risks in projects threaten the team’s ability to deliver. </li></ul><ul><li>Confront the Risks: </li></ul><ul><ul><li>Overall risks of a solution may be mitigated by choosing scenarios that force the confrontation of the risks!!! </li></ul></ul><ul><li>Map Risks into Early Scenarios: </li></ul><ul><ul><li>Map these scenarios into the early iterations </li></ul></ul><ul><ul><li>Successful development and demonstration provide objective assessment that thus measurably reduce risk , </li></ul></ul><ul><ul><li>Provide key functionality and show real business value . </li></ul></ul><ul><li>Iterations can thus be planned to ensure every iteration steadily reduces project risk and increases business value realized from the solution. </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    10. 10. End-to-end Threads and Tangible Value <ul><li>Successful implementation of end-to-end threads (scenarios) provides tangible business value. </li></ul><ul><li>Selection of scenarios also subdivides the requirements enabling their assignment for development / delivery </li></ul><ul><ul><li>Scenarios in a use case may be assigned to different iterations. WHY?? </li></ul></ul><ul><li>Each scenario tells a complete story of how discrete value is delivered by the system. </li></ul><ul><ul><li>By delivering a complete scenario one-by-one , we are adding an increment and thus realizable value. </li></ul></ul><ul><li>This provides focus on delivered value and enables tracking to project’s desired outcomes and risks that threaten its success </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    11. 11. II. Changing the Way You Think About Planning <ul><li>We know: </li></ul><ul><ul><li>Management of the development process is most critical. </li></ul></ul><ul><ul><li>Common knowledge that most projects fail due to poor planning and requirements management. </li></ul></ul><ul><ul><li>Entire project must be managed iteratively . </li></ul></ul><ul><ul><li>Successful iterative program management is more than just repeatedly applying technical knowledge </li></ul></ul><ul><li>But: </li></ul><ul><li>The Project Manager (PM) must really believe the iterative approach is the best way to manage the project. </li></ul><ul><ul><li>PM may need to convince many people. </li></ul></ul><ul><ul><li>But if PM is not convinced, then little likelihood to convince others. </li></ul></ul><ul><ul><li>PM must be ready to set aside any inflexible, predictive, waterfall management practices used in the past. </li></ul></ul><ul><ul><ul><li>This may be very difficult. </li></ul></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    12. 12. Conventional Project Lifecycle Revisited: <ul><li>Specify </li></ul><ul><li>Design </li></ul><ul><li>Develop Traditional, Sequential Approach </li></ul><ul><li>Test </li></ul><ul><li>Change Over. </li></ul><ul><li>But this is an engineering approach used for years – but never meant for software. </li></ul><ul><ul><li>Approach is predictable. </li></ul></ul><ul><li>Engineering approach was applied to software development </li></ul><ul><li>Its sequential notion of activities gave rise to Waterfall Model. </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    13. 13. Conventional Thinking About Planning – Morphed from Engineering Iterative Project Management / 03 - Lifecycle Planning Specify Design Develop Test Change Over The Conventional Project Lifecycle Requirements Analysis Design Code Test Deploy The ‘Waterfall’ Software Development Lifecycle
    14. 14. Waterfall Planning is based on several beliefs (from book): <ul><li>Products can be completely developed in one pass </li></ul><ul><li>Requirements can be completed and frozen early </li></ul><ul><li>All requirements are of equal importance </li></ul><ul><li>Designs can be verified without building and testing something. </li></ul><ul><li>The entire project can be planned in detail with a high degree of precision at the start of the project </li></ul><ul><li>Everything important can be known at the beginning of the project </li></ul><ul><li>The project can ‘earn’ value by only doing one discipline at a time. </li></ul><ul><li>Most importantly, if we follow the prescriptive steps of our process, then all the project risks will be addressed and therefore one should measure teams on their ability to follow a plan and managers on their ability to create a plan . </li></ul><ul><ul><li>Plan-driven </li></ul></ul><ul><ul><li>Documentation intensive, etc. </li></ul></ul><ul><li>The waterfall process attempts to do each step very well and eliminate redoing any steps again, once a step is completed </li></ul><ul><li>The plan itself is regarded as ‘lock’ and ‘contract;’ inviolate and perfect. </li></ul><ul><li>Any deviations are considered highly undesirable. </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    15. 15. Problems with Waterfall Planning Assumptions <ul><li>Almost all the assumptions are incorrect for software development. </li></ul><ul><li>We are always developing something new or redesigning something to meet new requirements for a changing business. </li></ul><ul><li>Business conditions change all the time as do technologies. </li></ul><ul><li>But in the waterfall model: (book) </li></ul><ul><ul><li> Problems are discovered too late to do anything about them </li></ul></ul><ul><ul><li>< I left some out. See book for more very important issues> </li></ul></ul><ul><ul><li> Imagination and testing are always left until the end where, more often than not, they are cut back in an attempt to meet original delivery date </li></ul></ul><ul><ul><li> Design feedback is obtained late usually leading to late design breakage, when it is too late to fix problems in the architecture </li></ul></ul><ul><ul><li> Because objective feedback provided by demonstration and testing is only obtained late in the project, risk resolution typically occurs too late to be effective. (right arrows are mine) </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    16. 16. More <ul><li>Reality is: </li></ul><ul><li>Significant problems seem to always occur near the end of the project. </li></ul><ul><ul><li>Here, time is critical, staffing is maxed; costs at their highest; </li></ul></ul><ul><ul><li>deployment dates are set; perhaps equipment is installed; </li></ul></ul><ul><ul><li>transition to the new system is well established, and </li></ul></ul><ul><ul><li>many have staked their reputation (and future) on the successful deployment of the application. </li></ul></ul><ul><li>So here we are: </li></ul><ul><li>It is the failure of conventional planning wisdom on so very many projects especially for high-value, high-risk projects has led to the evolution of a </li></ul><ul><ul><li>risk-driven, </li></ul></ul><ul><ul><li>progressive, </li></ul></ul><ul><ul><li>adaptive, </li></ul></ul><ul><ul><li>iterative and incremental approach to software development. </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    17. 17. Progressive (‘rolling’) Assertions About Planning (book) <ul><li>Some points from the textbook include: </li></ul><ul><ul><li>Proceed in small steps; Continuing steadily by increments </li></ul></ul><ul><ul><li>Break large projects into smaller projects </li></ul></ul><ul><ul><li>Initial designs will be flawed </li></ul></ul><ul><ul><li>Initial estimates have large margins of errors – most waterfall projects cost two to three times what was initially predicted </li></ul></ul><ul><ul><li>Requirements must evolve along demonstratable versions of product </li></ul></ul><ul><ul><li>Teams: must ‘own’ / be accountable for achievements and plans </li></ul></ul><ul><ul><li>One must believe the project results not the project plans </li></ul></ul><ul><ul><li>Detailed planning should be limited to the next milestone </li></ul></ul><ul><ul><li>Projects: adopt an active / aggressive approach to project risk </li></ul></ul><ul><li>Only the creation of an executable prototype that demonstrates that the products can work together truly addresses risk. </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    18. 18. So, here we go – the ‘cookbook:’ <ul><li>Instead of developing the whole system in one ‘go,’ an increment is selected and developed, then another increment, and so on </li></ul><ul><li>The selection of the contents of the increment is based on risk, addressing the highest priority risks first particularly those involving core functionalities </li></ul><ul><li>To address selected risk(s), select a subset of requirements from end-to-end threads (scenarios) to be implemented and tested, and verified (independently) </li></ul><ul><li>Develop the minimal set of functionality that enables objective measurement and verification (through a set of executable tests) that the risks have been successfully addressed </li></ul><ul><li>Then select the next highest risks and functionality associated with these risks for the next iteration and increment. Continue… </li></ul><ul><li>Each iteration produces an executable release. </li></ul><ul><li>Each iteration includes integration and test. </li></ul>Iterative Project Management / 03 - Lifecycle Planning
    19. 19. Framework – Unified Process <ul><li>We often use the Unified Process because it provides a risk-based framework that supports and enables the progressive, adaptive (“rolling”) planning of software development projects. </li></ul><ul><li>(Page 150) Note that every discipline in the Iterative Lifecycle has some role in every phase (extents may vary) </li></ul><ul><li>In this way, iterative planning is adaptive because plans will change as risk is dealt with in an iteration. </li></ul><ul><ul><li>Thus requirements might change, analysis and design will likely be impacted by change, etc.. </li></ul></ul><ul><ul><li>Hence the disciplines (analysis, design, configuration management, etc.) are present in every iteration. </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    20. 20. Comparing Conventional and Iterative Thinking on Planning Iterative Project Management / 03 - Lifecycle Planning Conventional Progressive Risk agnostic Actively attacks risk Risks drives the iterations. Predictive planning Adaptive planning Planning can respond to change Subjective measurement of progress Objective measurement of progress by demonstration of business value Delays integration and testing Continuous integration and testing Not done until the end where time is scrunched Nothing runs until the end Something executable produced every iteration Vice subjectively measure progress Difficulties at the end of the project Difficulties at the start of the project
    21. 21. Seven Habits of Successful Iterative Project Managers (book) <ul><li>In Summary: </li></ul><ul><ul><li>Break large projects into smaller projects and then break the smaller projects up into iterations </li></ul></ul><ul><ul><li>Attach the greatest risk in the earliest iterations </li></ul></ul><ul><ul><li>Produce something demonstratable every iteration </li></ul></ul><ul><ul><li>Do not delay integration and test </li></ul></ul><ul><ul><ul><li>Every iteration should include integration and test activities </li></ul></ul></ul><ul><ul><li>Be prepared to make mistakes and explore blind alleys. </li></ul></ul><ul><ul><ul><li>Mistakes are to be encouraged if they reduce the project risk or challenge the project’s assumptions. </li></ul></ul></ul><ul><ul><li>Plans must be adjusted based on lessons learned </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning
    22. 22. Application of these principles leads to Changes in management behavior <ul><li>These are summed up in the next seven habits: (book) </li></ul><ul><ul><li>Steadily focus on advancing the solution in small but deliberate steps </li></ul></ul><ul><ul><li>Focus on generating results but not afraid to fail </li></ul></ul><ul><ul><li>Exercise adaptive planning continuously </li></ul></ul><ul><ul><li>Always be risk-aware </li></ul></ul><ul><ul><li>Always be open and honest </li></ul></ul><ul><ul><li>Focus on objective results-based assessments (not subjective opinion-based ones) </li></ul></ul><ul><ul><li>Singularly focus on delivering a working solution . </li></ul></ul>Iterative Project Management / 03 - Lifecycle Planning