Transitioning from Waterfall to Agile
Become more Agile in your organization.
Identify the challenges you will face when implementing an Agile method and plan for a successful transition from waterfall or other traditional software development approaches! This is your Agile method foundation course.
Agile software development methods represent a departure from traditional waterfall approaches in significant ways. Yet there are long standing and highly successful approaches from industry that historically support concepts of agility going back at least thirty years. Capturing a clear understanding of these concepts, you will be able to capitalize on them to gain the cooperation and acceptance of stakeholders who must approve and participate. There are significant benefits available with Agile methods that can address the high risks, unknowns, and uncertainties that beset contemporary projects. These complexities can best be addressed with a flexible and adaptable model that faces the problems and provides the tools to change the way work is done and address the issues head on.
In this course, you will experience several case study scenarios that typify the attributes of most projects in your organization, each providing a recognition point as you explore and discuss the hurdles to Agile. Learn to overcome these hurdles and interweave your traditional practices with Agility to develop the best software for your organization.
What You'll Learn
- Align Agile practices with PMI's A Guide to the Project Management Body of Knowledge®
- Implement Agile practices that are compatible with the SEI's CMMI®
- Adopt Agile requirements practices that conform to the Business Analysis Body of Knowledge
- Eliminate the "dirty dozen" traditional practices that sabotage project flexibility and success
- Embrace the 5 philosophies that enable Agility and implement the 3 core Agile practices
- Identify software problems in your organization that are addressed by Agile approaches
- Redefine the project manager's role to be a leader and coach
- Ensure that the software you deliver provides the highest possible value in your customer's eyes
- Neutralize the disruptive effects of change through iterative planning and adaptation
Who Needs to Attend
- Software Development Manager
- Software Project Manager
- Software Team Lead
- Quality Assurance Specialist
- Process Engineer
- Software Developer or Tester
- Software Project Customer
- IT Director or Manager
Working knowledge of software development and software testing project management techniques
- Collaborating and Communicating Agile Requirements
- Agile Project Management
- Agile Testing
- Agile Boot Camp
1. Fundamentals of Agility
- The Agile Manifesto
- The Agile Lifecycle
- Learning and Adaptation
- Customer Focus
- Self-Directed Teams
- Lean Principles
- Progressive Requirements Elaboration (PMI states that a project is a Progressive Elaboration!)
- Incremental Delivery
- Iterative Planning and Adaptation
- The best 'bang-for-the-buck' risk mitigation strategy (what is it?)
2. Waterfall and Case Studies
- The project manager
- Shielding developers & customers from each other
- Building silos of responsibility
- Documents as the primary means of communication
- Lessons Learned at project end
- The Agile coach
- Team focused
- Continuous collaboration
- Face-to-face communication
- Self-directed teams
- Regular feedback and retrospectives
- Waterfall practice
- JAD Sessions
- Q & A
- All requirements documented and signed off before work begins
- Changes to requirements downstream demand a top heavy Change Control Process
- All requirements are a #1 priority
- Users describe what they need in "story" format ("user stories")
- The feature list is prioritized by the customer (product owner) in an overall product "backlog"
- The highest priority features undergo detailed elaboration for the first product iteration
- Waterfall Practice
Key Agile Skills: Gemba visits and development of story cards
- Changes from baseline must be assessed for timeline and dollar impacts
- The change process must be documented in detail
- Customer signoff is required
- Change Control Board meeting is required to either accept or reject the change
- Change is welcomed as an expected consequence of Progressive Elaboration
- Changes are added to the backlog resulting in a changed feature set prioritization
- Adjustments in schedule as the team adapts to the new elements
- The customer adjusts priorities as required by business needs, changes in the market, new regulations, etc.
- Waterfall Practice
- Developers perform Unit testing only
- Code is thrown 'over the wall' for QA testing
- System testing in a monolithic 'QA Slam' at the end of development
- QA is responsible for quality
- Development, the customer, and QA collaborate
- Product increments developed, tested, released to production standards
- Everyone is responsible for quality
- With each completed iteration, code from earlier iterations is tested regressively and multiple times, creating a very robust code set
- Quality is designed into the product/process and not inspected in with final test cycle
- Waterfall Practice
Key Agile Practice: Strong Unit testing practice (Zero Quality Control and/or Test-Driven development)
Command and Control
- Project manager assigns work to the team
- Command process is not collaborative
- The project plan is 'etched in stone'
- Assumes project execution is linear
- Top-down methodology usually followed
- Variances are usually considered negative
- Self organizing team selects its own work
- Project manager is a facilitator and a coach
- Design evolves as more is understood about the project
- Collaboration between the team and client results in higher productivity and ownership
- Mistakes are tolerated as a necessary component of learning
- Waterfall Practice
Key Agile Practice and Skill: The daily standup
"Big Bangvs. Incremental Delivery
- Project generally proceeds with sequential analysis, requirements, design, coding, and test phases
- Customer does not see a working product until close to the end of the test cycle
- The Processes Change Averse: Discovery or missed requirements can cause delays and add significant dollars to the project budget
- The entire feature set is worked as a single top priority element
- Risk is generally managed by exception and handled as it occurs
- Highest priority features are developed first
- Highest risk factors are addressed early in the project: concurrent engineering practices result in the best architectures and best overall design
- Working elements of the product are delivered in measured increments: the customer sees and experiences the product growing before their eyes
- Discovery and new requirements are merged with the existing product backlog; rework and delays are relatively small or insignificant
- Waterfall Practice
Key Agile Skills: Agile Risk Management and defining the project lifecycle as separate from the project management lifecycle
3. Transition Strategies
- All or Nothing
- Traction with Agility
- Predictive planning
- Command and control management
- Reliance on corrective action to "fix" problems (Conformance to plan)
- Agility is seen as "undisciplined", weak on documentation, lightweight
- Agility is nothing but "galloping scope creep"
- Jobs may change or be eliminated
- No desire to expose "bad wiring" and/or fix the broken processes
- The WIIFM syndrome (what's in it for me?) and how to approach
4. Course Wrap-Up
Exercise 1: What are the biggest project issues you and your organization face? You will compile a list of what is broken and use this list as a touchstone for the exercises that follow.
Exercise 2: What aspects of agility have you already incorporated into your organization? Review you current processes, even if they are described with other names, and identify ways in which your organization has embraced any of these concepts.
Exercise 3: Explore how adaptive planning can benefit the organization. Where can this help the highly regulated business, government organizations, methodology centric organizations?
Exercise 4: Explore the benefits of progressive elaboration of requirements. Discover how prioritization of the feature set can deliver the highest business value to the customer.
Exercise 5: Explore how adaptability defuses the scope-creep issue. As users prioritize needs and features, changes in scope are assimilated into the project based on prioritized need. Reviewing the case studies, select several that would receive benefit from implementing adaptable change.
Exercise 6: Explore the triple constraints of project management in terms of quality. Identify the top elements that contribute to customer satisfaction. How does your customer define quality?
Exercise 7: Several organizations that employ the concept of self-organizing teams will be explored. How does this drive greater ownership of the project deliverables on the part of the performing organization? In what situations is a C & C model effective and where does it fail?
Exercise 8: Certain development environments function very well using a waterfall approach. What kind of project organization, product cycle, and methodology is used for a well-executed waterfall approach? Several case studies will be reviewed and the results analyzed.
Exercise 9: You will use a Excel "case studiesspreadsheet to review agile techniques and define which techniques can be implemented immediately, in one to four months, or which may be problematic at any phase.
Exercise 10: Identify the issues in your organization that lead to excessive rework, waste, service after service, scrap, or any situation that costs the organization wasted time and wasted dollars. Address these issues on the agile "Techniquesspreadsheet. Use the "cost of quality" spreadsheet to quantify the loss in dollars.
Exercise 11: Define the areas where your organization may put up resistance to implementing agile process. Identify where the resistance is due to fear, misunderstanding, lack of training, or some other issue. You will explore avenues of resolution and methods to help your organization harvest the benefits of agile implementations.
Exercise 12: Prioritize the Agile concepts that you could introduce in your organization. For the three highest-priority concepts, create an action plan to make those things a reality on your projects. Compare notes with other participants.