Agile, Scrum, FDD, Lean, and Kanban
There are many methodologies that are considered to be Agile, and several that are similar enough that they’re worth mentioning as part of a larger conversation about workflow and resource management. Within one organization, there can be teams practicing Scrum, Lean, Kanban, and others—how do you know which of these Agile methodologies is right for your team
That depends on several factors—your team type, which can dictate the types of Agile processes you’ll want to employ; organization size, and whether you’re wanting to scale Agile from the ground-up or from the top-down; and organizational culture, is your team part of an organization that is ready for (and interested in) a highly structured Agile approach, or are you part of a grassroots effort to increase Agile thinking across the organization?
Read on to learn more about the different Agile methodologies to determine which might be right for your organization.
Agile, in its purest sense, was designed for software development teams, as a time-focused, iterative way of achieving continuous value delivery. Developers were looking for a way to add flexibility, transparency, and communication to their processes—an attempt to break away from the prevailing methods, which were cumbersome, with long development cycles and large, complex, infrequent releases.
Written by a group of developers at a now-famous retreat, the Agile Manifesto formalized Agile as a distinct methodology, and developers began practicing Agile to improve flexibility, customer/user satisfaction, and adaptability in the marketplace.
Instead of deploying software in large, scheduled releases, teams broke work down into small, frequent iterations. Rather than spending time perfecting new releases internally, teams got work to a deployable state, released as it was ready, and allowed users to provide feedback on what worked, what didn’t, and what could be improved.
Teams in all disciplines—marketing, sales, operations, and more—began adopting Agile practices as a way to work more efficiently, communicate more clearly with customers, deliver high-quality products, and build more sustainable businesses. Although it continues to be popular among software development teams, Agile is now applied across all disciplines.
Although great for teams looking for a flexible workflow management method, Agile provides a framework for managing work across cross-functional teams or scaling planning and prioritization at the team, project, and portfolio levels. This is why many organizations have turned to hybrid models, like the Scaled Agile Framework (SAFe), as a way to scale Agile (influenced strongly by Lean) across the organization.
Scrum is an Agile method for completing complex projects in a methodical way. It was originally created to help software development teams design more sustainable software products, but can applied to any type of complex, project-driven work. The Scrum framework includes Scrum Teams and their associated roles, events, artifacts, and rules. Each element of the framework serves a specific purpose and is essential to Scrum’s success and usage.
It is difficult to master, because the Scrum values of commitment, courage, focus, openness, and respect require individuals and teams to hold themselves to a high, disciplined standard of conduct that require consistent buy-in across the team.
Scrum works well for small teams that work together on large, complex projects, such as software development teams. It is typically not recommended for teams with more variety in their workflows and planning processes (such as marketing or sales teams).
You can read more about Scrum here.
Feature-driven development (FDD) is an iterative and incremental software development process. It is a lightweight, Agile methodology for developing software. Feature-driven development blends a number of industry-recognized best practices into a cohesive whole. These practices are driven from a feature-first perspective, with the goal of creating value for the end user. The primary objective of any team practicing Feature-Driven Development is to deliver tangible, working software repeatedly and in a timely manner.
Feature-driven development typically consists of five basic activities. For accurate status reporting, milestones are used to mark progress made on each feature. During the first two activities, an overall model shape is formed—the final three activities are iterated for each feature. The five main activities in FDD are:
- Develop overall model
- Build feature list
- Plan by feature
- Design by feature
- Build by feature
After unit testing and successful code inspection, the completed feature is built. FDD is a productive, structured, focused method for software workflow management that is a good option for software-focused teams and organizations but is not the best option for teams who aren’t building a physical product.
You can learn more about feature-driven developmenthere.
Often, Lean and Agile methodologies are discussed interchangeably—although there are differences between them, one could argue that the goals behind them are quite similar. While Agile was born out of a need to bring efficiency to software development, Lean was born out of the same need, but in manufacturing, a few decades prior.
Much like Agile, at its core, modern Lean is a way of thinking. Approaching Lean as a set of guiding principles, rather than a specific set of prescriptive practices, makes implementation easier, more flexible, and more sustainable.
The core principles of Lean are:
- Continuous improvement
- Respect for people
- Eliminate waste
- Built-in quality
- Deliver fast
- Create knowledge
- Defer commitment
You can learn more about these core principles here.
Lean thinking can help teams find clarity and purpose in their work. When scaled across a team or organization, this type of thinking has the power to transform, revitalize, and inspire. It can turn a dysfunctional, ineffective group of people into a value-generating powerhouse.
Lean is also a practice—something teams practice daily, aiming to always improve. It’s rooted in the idea that people want to do good work and organizations want to provide environments that inspire them to do so. However, often individuals, teams, and entire companies are so entangled by the status quo in their existing processes, tools, ways of thinking, and leadership styles that they lose the ability to innovate.
By practicing Lean, we can slowly unravel the complexity in our work and resume the flow of productivity and innovation. Lean’s core principles can be applied across a team, group of teams, or scaled across an entire organization. Lean’s ability to scale makes it a great, flexible option for teams in both high-growth startups and established enterprises.
Unlike many of the Agile methodologies on this list, Kanban can be viewed as a distinct methodology, or simply a tool to implement other methodologies, such as Lean or Agile.
Kanban uses (typically digital) boards to represent the unique steps in your process, and cards to represent tasks as they move through those steps.
In a micro level, this helps teams and the individuals within them combat the damaging effects of multitasking in a hyper-stimulated world. It helps teams have meaningful, focused conversations about work priority and status, saving them both time and frustration often associated with a lack of visibility.
On a macro level, Kanban helps organizations achieve their larger, more complicated goals. By visualizing all shared work in one place, Kanban provides teams and the people who manage them with the visibility they need to get more done. Large initiatives can be broken down into smaller, more manageable projects, which can then be broken down into smaller, more manageable tasks.
Teams can confidently prioritize and complete work that actually helps the organization achieve its larger initiatives and leaders can track the progress of these initiatives without having to constantly interrupt and interrogate those doing the work. Kanban is often viewed as a tangible, practical way to implement Lean and Agile methodologies.
You can learn more about Kanban here.
Agile Methodologies: Which is Right for Your Team?
Learning the differences between all the main Agile methodologies is a great first step in choosing a path for your team. You can learn more about each of the methodologies described in this post by following the links below: