Waterfall And Agile Methodology Coexistence 2011


Published on

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

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

No notes for slide
  • Intro to waterfall vs. agile
  • The major goal of this project management style is to control risk and predict outcome by controlling project scope.You can break this up into smaller pieces, which is “Spiral Development”, a form of incremental delivery.
  • http://www.construx.com/Page.aspx?hid=1648Early in a project, specific details of the nature of the software to be built, details of specific requirements, details of the solution, project plan, staffing, and other project variables are unclear. The variability in these factors contributes variability to project estimates -- an accurate estimate of a variable phenomenon must include the variability in the phenomenon itself. As these sources of variability are further investigated and pinned down, the variability in the project diminishes, and so the variability in the project estimates can also diminish. This phenomenon is known as the “Cone of Uncertainty” which is illustrated in the following figure. As the figure suggests, significant narrowing of the Cone occur during the first 20-30% of the total calendar time for the project. Narrowing the cone can be done by making decisions that eliminate variability, such as defining the product, creating detailed specifications & user interface design.
  • Agile development fixes time and cost, then leverages iteration and incrementing to maximize scope Leverage a shared understanding of desired product goals to minimize scope while maximizing value
  • Goal: increase productivity while increasing qualityEssential components of Lean-Agile Software Development to create continuous improvement:ValueSpeedQualityMaintainabilityWe practice elements of Lean Software Development, a suitable translation of Lean Manufacturing principles adapted from the Toyota Production System.Eliminate waste. All activities are scrutinized to ensure value is being added.Amplify learning. Short iteration cycles, feedback, and early testing enable the team the more quickly and thoroughly understand the problem and solution.Decide as late as possible. There is an inherent uncertainty and risk when working on large complex systems. It’s helpful to use an options-based approach, delaying important decisions as much as possible until they can be made on facts and not on assumptions or predictions. The iterative approach promotes this principle – the ability to adapt to changes and correct mistakes, which might be very costly if discovered after the release of the system.Deliver as fast as possible. Frequent iterations and delivery promote learning and improvement. Frequency is a required attribute that allows the team to delay decisions.Empower the teamBuild integrity inSee the wholeCore Lean ElementsThe three Lean principles that are used to define agile software development methods find their origins in theMuri, Mura and Muda concepts:Muri – Overburdening of people or equipment Mura – Unevenness in workloadMuda – Waste or non-value adding activitiesThere is a relation between the three principles: mura creates muri leading to the inability to reduce muda.Or: waste can be reduced through solving problems with imbalanced loading and overstraining of people:
  • We begin our process with more of a traditional requirements and discovery approach. The process helps us gain a mutual understanding of how we work together, what you desire from your system, and our capabilities. Ultimately, we’ll try to translate these into “user stories” to capture full functionality, rather than just the tasks. Because of this approach, we’re able to add much more value to the software solution partnership.
  • Once we agree on the high-level objectives and scope, we can begin our iterative approach. Our approach builds in quality & schedule checkpoints (the demo). Each iteration allows us to repeat the process and refine the software by performing retrospectives and specification narrowing at the end of each cycle.The project is generally divided up into high-level deliverables which can be mapped to a traditional project management milestone. In this way, the demo’s and close collaboration provide project transparency and accountability. The demo allows the client to verify software trajectory, control risk management, and participate in project control.
  • The major goal of this project management style is to control risk and predict outcome by controlling project scope.You can break this up into smaller pieces, which is “Spiral Development”, a form of incremental delivery.
  • Rhythm & Velocity(you could think of agile as a series of mini-waterfalls – but then that would really be Scrummerfall which is the worst of both methods!)
  • Waterfall And Agile Methodology Coexistence 2011

    1. 1. The Union of Agile & Waterfall MethodologiesPolar opposites coexisting, their similarities & suitability'sPresented by Timothy J. MorrisNOTE: this was a presentation delivered to Tomax Corporation in 2010 to help their large clients with traditional project “command-and-control” sensibilities understand iterative and agile project management.<br />
    2. 2. Embracing different project management methods<br />At the end of the day, hopefully the success is measured on the final outcome compared to the goal<br />It’s the software that sells – not labels, processes, or methodologies<br />Use the right tool or process for the right job, and understand that they’re all basically trying to accomplish the same thing<br />A better understanding of the principles and evolution of a variety of methods will help to avoid the trap of following practices made for a different team<br />There’s no perfect software development methodology – and there’s no rules that say you can’t take the best elements from each!<br />As with law or medicine, it’s helpful to view the craft as a practice<br />
    3. 3. Classic Plan-Driven Development (aka “waterfall”)<br />This sequential approach moves through each phase of development until final release (aka “the Big Bang”)<br />
    4. 4. Embrace the “cone of uncertainty”<br />Remaining variability<br />In project scope<br />(cost, size, features)<br />(this is the reality that uncertainty decreases over time)<br />The goal is to narrow the cone by eliminating variability<br />
    5. 5. Managing the “triple constraint”(ironic that both systems are merely trying to reduce risk)<br />Fixed<br />Scope<br />Time<br />Cost<br />Traditional Software Development<br />Agile Software Development<br />Estimated<br />Time<br />Cost<br />Scope<br />PLAN Driven<br />VALUE Driven<br />The requirements drive the cost & schedule.<br />Budget & time determine the requirements that can be delivered.<br />
    6. 6. A Lean tradition for continuous improvement<br />
    7. 7. Iterative Design & Development Process<br />Discovery & Solution Definition Phase<br />
    8. 8. Iterative Design & Development Process<br />Each iteration should be aligned with Project Milestones!<br />CollaborateDesign<br />Build<br />Collaborate<br />Design<br />Build<br />CollaborateDesign<br />Build<br />Deploy!<br />Improve<br />Analyze<br />Demo<br />Demo<br />Demo<br />Verify<br />Improve<br />Gather<br />Analyze<br />Project Milestone<br />Project Milestone<br />Project Milestone<br />
    9. 9. Overlapping Processes<br />Agile breaks down the project into smaller elements, and then performs phases in parallel iterations<br />
    10. 10. Notes on forms of Agile<br />Scrum is a light-weight project management methodology – not a development process<br />It is a platform that creates accountability and inter-team dependence, driving the team forward with the client<br />The scrum team is a cross-functional team (Dev, QA, SA, Product)<br />Working software is the primary measure of progress<br />We embrace the notion that there is some amount of uncertainty when a project begins – and the goal is to reduce that uncertainty steadily<br />