The Many Merits of Mixing Gantt Charts With Agile Methods
Applying Gantt scheduling in an Agile context can seem counter-intuitive — strange even. Isn’t Gantt scheduling, after all, the same as Waterfall? In this blog, you’ll learn the critical difference between techniques (like Gantt scheduling) and mindsets (Waterfall or Agile) and discover how to apply Gantt in an Agile setting for best results.
Why Mix Gantt With Agile?
Many of our customers have large teams. They range from a couple of scrum teams up to as many as 50 teams all working on the same product. Sometimes they are software development teams, but in many cases, there are also teams developing hardware for the product. When you have such a large and mixed development organization, we might agree that certain things are required for success. In short, we need:
- A shared vision for the whole product, spanning across teams.
- A shared understanding of the high-level product roadmap.
- Local ownership, on the team level, of schedule and dependencies.
- Aligned ways of working, with allotment for local variation.
With our customers, we have witnessed how a good mix of Gantt scheduling in an Agile context can help meet the above goals. This is true particularly if you are aspiring to be a world-class lean and Agile product development organization.
The Difference Between Mindset & Technique
Before understanding how to mix Gantt with Agile, it’s important to have a clear sense of the difference between mindsets and techniques.
Gantt scheduling has traditionally been used in a Waterfall setting. As a result, it is second-nature for many to hear “Gantt” and think “Waterfall". But Gantt scheduling is a technique. Waterfall is a mindset.
Similarly, many hear “Scrum” and think “Agile.” While Scrum is a common technique to develop products, it is not the only technique to deliver with an Agile mindset.
In essence, Agile planning for unknowns; Gantt scheduling for knowns.
Any large product development effort will consist of a mix of fixed and flexible activities. Features, or more commonly the details of features, are typically flexible. The release date, on the contrary, is quite often fixed far into the future. It’s often not only the release date that’s fixed. A number of other activities need to be completed before product launch — regardless of the feature set delivered in the release. Such mandatory activities, or deliverables, fall into two categories:
Product-related activities that need to be performed before launch. Examples include:
- Expensive destructive testing (of hardware) done once.
- Training of sales and support teams to be ready for the product launch.
- Marketing and product launch activities.
- Changes to business support systems to facilitate deployment of the new product.
Process-related activities that are due to mandated quality processes, regulatory compliance, etc. Examples include:
- Documentation that needs to be completed by different stage gates in a prescribed process.
- Formal verification that for some reason cannot be performed continuously during development.
Before looking in detail how we can combine Agile planning with Gantt scheduling to good benefit, let us look at good and anti-patterns of each. For the uninitiated, an anti-pattern is something that we do, often without thinking, under the faith that it is the best way to achieve something, when, in reality, it is not.
Gantt Scheduling: The Good & The Anti
- Capturing fixed high-level goals and tasks.
- Understanding dependencies
- Planning everything at detail up front.
- Pushing integration and testing to the end.
- Disregarding team input.
- Viewing people as resources.
Agile Planning: The Good & The Anti
- Developing a clear vision and objectives.
- Creating a product backlog with the right depth and detail at the right time.
- Designing a roadmap with high-level milestones/goals.
- Creating sprint objectives for more than the current sprint.
- Not planning upfront whatsoever.
- Lacking shared vision and objectives.
- Not committing to anything beyond the current sprint.
To summarize, the perceived non-agility of Gantt scheduling is a mindset problem — not a problem with the technique. The problem of Waterfall is not the use of Gantt scheduling, but the inclination to create a detailed plan upfront. That detailed plan then makes change difficult and painful.
The fact is, when we combine methods thoughtfully, taking the best from each, the benefits overlap. Suddenly, with Gantt and Agile methods, we are equipped to:
- Handle uncertainty.
- Forecast progress from reality.
- Create a short, fast feedback loop.
- Visualize fixed deadlines.
- Understand what exactly leads up to deadlines.
Examples of Mixing Gantt and Agile
Let’s look at examples of how we can combine Agile planning with Gantt scheduling to harvest the benefits of both.
Example 1: Multiple Agile Teams, One Release
In the figure below, you’ll see how Gantt scheduling helps:
- Indicate dependencies between the high-level sprint plans among different teams.
- Indicate sequencing and dependencies of work necessary for product launch that fall outside the scope of scrum teams.
At the top of the figure above, see examples of items necessary for product launch that fall outside the scope of software development scrum teams.
Below them, we see a representation of sprints run by two parallel scrum teams. On this level, we can view each sprint as a high-level Gantt task with a defined goal. The detail of how the goal is achieved is delegated to each individual scrum team. If we view sprints this way, we can also visualize high-level dependencies between teams. An example of this is shown in the figure: the third sprint of Team X is dependent on the results of the second sprint of Team Y.
Example 2: Mandatory Process
In the figure below it is indicated how we, to good effect, can mix Gantt scheduling to:
- Show how you comply with a mandated process (regulations).
- Show how the work of Agile teams fit into the overall process.
For presentation purposes the figure above is much simplified compared to what typical compliance processes look in the industry.
At the top of the figure above, you’ll see a set of defined stage gates (Select, Do, Produce, Sell). After that we see typical mandatory activities along with how they relate to the stage gates. The mandatory activities can be detailed and made more specific as is shown with the activity “Execute field tests”.
Below that, we find items related to the Agile development of product’s software. At the bottom, find a few sprints that result in Feature A and Feature B, as indicated by the feature milestones above the sprints. See also how the field test tasks in the upper part of the figure are dependent on these milestones.
Bringing It All Together
Combining Gantt scheduling and Agile planning yields many benefits, which include:
- A clear overview of high-level planning and dependencies.
- Just-in-time planning of both predictable and emerging work.
- Alignment inside as well as outside a large development organization.
In turn, these benefits help large development organizations achieve what they need to be highly successful: develop a shared vision, communicate a high-level plan, create a product backlog, delegate, and release!