Transitioning from Waterfall to Agile

Course Details
Tuition (USD): $1,495.00 • Classroom (2 days)
$1,495.00 • Virtual (2 days)

Identify the challenges you will face when implementing an Agile approach to software development and then plan for a successful transition from waterfall or other traditional software development approaches! This is your Agile foundation training course.

  • NOTE: Live Virtual Classroom course length is 3 days.

Skills Gained

  • Align Agile practices with PMI's A Guide to the Project Management Body of Knowledge ® (PMBOK)
  • Understand the key differences between a waterfall and an Agile approach to software development, then identify the areas you will benefit from most
  • Identify and eliminate the traditional practices that undermine your project success
  • Learn the 5 true measures of project success, then map each of them to Agile practices with tips on implementing them immediately
  • Uncover the organizational problems that most companies never discover they have, then learn the Agile techniques that address these deficiencies
  • Align waterfall's five process groups to Agile's five levels of continuous planning
  • Discover how transitioning to Agile provides better tools to manage the value and quality of your project and product development efforts
  • Create a customized, hybrid approach to software development that takes into account your company's unique challenges and constraints
  • Uncover the pitfalls that teams will encounter in an Agile transition and understand how to overcome those challenges
  • Lay the foundation upon which you can build a learning team and organization

Who Can Benefit

This course is valuable for anyone who is contemplating making their software projects more agile. This course is for you if you are a:

  • 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

Course Details

Contrast Agile & Waterfall Development Methods

Agile software development methods represent a departure from traditional waterfall approaches in significant but meaningful 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 common sense concepts, you will be able to capitalize on them, gaining the cooperation and acceptance of stakeholders who must approve and participate in your team's success.

Where Agile Methods Can Help the Organization

There are significant benefits available when utilizing an Agile approach that can address the risks, unknowns, and uncertainties that affect nearly all software development projects. These complexities can best be addressed with a flexible and adaptable model that turns traditional problems into advantages and provides the tools to change the way work is done through addressing organizational issues head on. In this course you will experience, through hands-on exercises, just how Agile addresses these traditional project challenges and you will learn how to finally resolve these ever-present constraints. Learn to overcome these hurdles and interweave your traditional practices with Agile practices to develop the best software for your organization and your customer.

Defining the Challenge of Product Development

In this section the class will explore the nature of software product development and work together to compile a list of challenges that teams traditionally face. We will discuss in detail why software development projects face unique challenges when compared to most other traditional project types. The information we identify and capture will be important as the class progresses, as we will use this information to ensure that our transition strategy will lead the participant's organizations to increased project efficiency and improved product development and delivery.

  • EXERCISE 1 - Defining Our Challenge: Course participants will identify and discuss the biggest or most prevalent project issues their team and organization have experienced? The class will work in teams to compile a list of these issues and then each team will share their experiences with the class.
  • EXERCISE 2 - Traditional Approaches to Solving Project Challenges: Course participants will identify and discuss what approaches their company or organizational employed to address these common project challenges? How effective were these been in reducing or eliminating these challenges? Have any of these strategies resulted in consistent development and delivery improvement? Each team will share results with the class.

Understanding the Fundamentals of Agile

Building on the previous section, we will explore the fundamentals of Agile, and how Agile addresses the challenges of product development. More than simply a methodology or approach to software development, Agile embraces a set of principles that drive effective software development. Agile focuses on the customer, embraces the ever changing nature of business environments and encourages human interaction in delivering outstanding software.

  • EXERCISE 3 - Self-Organizing Teams: Course participants will experience the benefits of self-organization and the direct effects on productivity and team morale. The exercise will also explore how individual contribution and team delivery are used to improve the team's ability to meet customer expectations.

The Agile Equivalents to Waterfall Fundamentals

Building on the identification of common project challenges and introducing the fundamentals of Agile, the class will work through associating common waterfall project phases and requirements to their Agile equivalents. The class will work extensively through the details of a typical waterfall project and how each of these areas can be successfully mapped to its Agile equivalent. Following the mapping of each project area, the class will discuss the benefits of making the suggested changes and how to most effectively complete these changes.

  • Project and Product Planning: Traditional planning approaches prescribe that all planning is complete before development begins, and all development is complete before testing begins. This sequenced approach to product development often is executed outside of customer involvement and regularly results in less than optimal results. We will identify the differences in planning approaches between waterfall and Agile and how to effectively make the transition.
  • EXERCISE 4 - Experiencing the Cone of Uncertainty: Course participants will experience the difficulty in attempting to plan efforts far in advance of their execution. The exercise results will be related to how we typically front-load our planning efforts in a futile effort to predict the future.

The Agile Equivalents to Waterfall Fundamentals (Continued)

Product Requirements: Excellence in requirements is a necessity regardless of project approach utilized. There is an appreciable difference in how requirements are elicited and documented in waterfall versus Agile, and as we explore these differences, we will do so in the context of efficiency and quality of this process. We will explore some common deficiencies in the traditional approach to requirements gathering including missed requirements, poorly defined requirements, misinterpreted requirements, or ever-evolving requirements based on changing customer needs.

  • EXERCISE 5 - Hands-on Requirements Exercise: Course participants will be given the challenge to create a product by following simple instructions given by the trainer. The class will experience just how difficult it is to deliver a project that delights the customer, even when the product is simple in nature.

The Agile Equivalents to Waterfall Fundamentals (Continued)

Scope Definition and Management: Scope is a key component in every software development project and in this section we will explore how Agile teams define and manage the project scope. A traditional project approach prescribes that change needs to be managed, whereas Agile practices allows for the project scope to be pliable in an effort to deliver a higher quality product, in a shorter amount of time, and with the same number of resources.

  • EXERCISE 6 - Defining Scope on an Agile Project: Course participants take a simple project and then as a group will identify the vision for the product. Following the identification of the product vision, the team will then need to work as a team to determine if the new requirements presented would be considered in or out of scope.

The Agile Equivalents to Waterfall Fundamentals (Continued)

Product Quality: The waterfall model typically 'inspects' quality into the process. Final system and integration testing is the first opportunity in the entire product development process where the team and customer find out if what the team built is what the customer needs. This becomes particularly painful when you deliver on time, on budget, and in scope only to experience 'buyers remorse' from the customer: "You built what I asked for but it's not what I need…"

  • EXERCISE 7 - Measuring Quality in our Product: Course participants will work through the exercise building a product over three iterations. Project constraints and objectives will be defined for the teams where the variable of product quality will be examined at the end of the exercise. Following the exercise, the class will discuss the nature of product quality, who defines quality, and how to effectively manage the process to regularly evaluate the emergent quality of the product.

The Agile Equivalents to Waterfall Fundamentals (Continued)

Managing People, Personalities, and Process: It is often said that it is not our processes that develop and deliver great software, it is our people. In this section we will explore the most effective means to manage an Agile team to improve productivity, increase team accountability, and allow for individual resource growth.

The Agile Equivalents to Waterfall Fundamentals (Continued)

Product Delivery - The "Big Bang" Approach or Incremental Delivery: The waterfall approach to software development prescribes that the delivery of the product occurs near the end of the project lifecycle, resulting in a "big bang" approach where there is only one chance to get it right. This type of approach often results in a mismatch between customer expectations and the delivered product, requiring additional work to remediate the disparity. Incremental delivery takes the surprise out of product development, keeping the customer involved in the product's development through maximized exposure to the product. Any disparity between customer expectations and the developed product occur during development, rather than at the end of the lifecycle where changes are most costly.

  • EXERCISE 8 - The 'Big Bang' versus 'Small Batch' Approach to Product Development: Course participants will work through a series of iterations, each with the same objective. Each team will utilize a different approach to achieving the iteration goal, keeping track of the team's level of effort and time required to complete. Following the conclusion of the final iteration, the class will discuss the differences between the different approaches.

Planning an Effective Transition Strategy

This portion of the class will explore the challenges of transitioning from waterfall to Agile, effective approaches for addressing these challenges, and key tricks and tips to avoid common downfalls of this endeavor.

  • EXERCISE 9 - Constructing Your Own Transition Strategy: Course participants will define the areas where their organization may put up resistance to implementing the agile approach. We will identify where the resistance is due to fear, misunderstanding, lack of training, or some other issue. Each participant will explore avenues of resolution and methods to help the organization harvest the benefits of agile implementations.

Course Wrap-Up

While Agile offers significant benefits, many organizations think that they are "locked-in' to their current methodology. Yet in spite of the status-quo, there are a tremendous number of aspects of Agile that can benefit the organization. Which aspects of Agile can help your organization right now? Prepare an action plan to implement such a scenario. Review what we have covered in the course and identify the key areas where your organization may benefit from transitioning to an Agile approach.

  • EXERCISE 10 - Preparing Your Action Plan: 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.