The internet is crowded with Agile explainers. But few are written by actual working Agile developers! So here I am, Rikard Nilsson, Hansoft product owner, to help you understand the basics.
- What Is Agile Development?
- Why Choose Agile? 4 Benefits
- Common Methodologies
- Scaling Agile
- Agile Metrics
- Agile Tools
What Is Agile Development?
Agile development is an umbrella term. It applies to many different processes and work delivery methods (Scrum, Kanban, etc.) that favor collaboration, iteration, and adaption. The goal? Deliver more value to customers, faster.
Perhaps a better starting point: what isn’t Agile development?
Agile contrasts with traditional Waterfall development. In Waterfall, each team is responsible for a process step and fully completes their task before handing it over to the next team. In Agile, a small increment is completed, preferably by a cross-functional team. The result, in theory (and in my experience), is a process that’s more responsive to change.
Where Waterfall functions under more rigid, top-down hierarchy, Agile favors more flexible team decision-making. Waterfall is plan-driven. Agile is adaptive.
The Roots of Agile Frameworks
The tree of Agile software development is rooted in what’s called the Agile Manifesto. The document — or declaration — was created and signed, in 2001, by leaders in software development. They were fed up with less democratic (and financially risky) methods prevalent at the time. Instead, they wanted a more collaborative, customer-centric model.
Their output, the Agile Manifesto, includes four guiding principles:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
These founding principles have remained relevant to this day. Since the Agile Manifesto was created, however, Agile has swelled in popularity. It now provides an organizational framework for creating any kind of product — from building systems to video games to medical devices.
4 Benefits of Agile Software Development
Organizations choose Agile development models because they've proven to deliver a business advantage. You might be interested in Agile development if you want to:
- Accelerate product delivery.
- Improve collaboration.
- Reduce risk.
- Lower development costs.
But we can't forget what creates this beneficial business advantage: happier, more productive team members!
That's because Agile methods — by prioritizing people over processes and closing the gap between customer and development — help team members feel more aligned with each other. More than that, they help teams align to their organization and even the customers using their products.
Types of Agile Methodologies
The Agile Manifesto doesn’t provide concrete steps for agility. So organizations usually seek out more specific methods within the Agile movement. There are many, many Agile methodologies. While similiar in goal, they differ in implementation; each framework applies its own set of practices, processes, and terminologies.
The two most common are Scrum and Kanban. Others include Extreme Programming (XP), Feature-Driven Development (FDD), Unified Process (UP), and many more. Similarly, as teams have adapted, many hybrid methods have come into existence.
Now, let’s look at a few of them.
Scrum — For Shippable Iterations
One of the most widely used Agile methods is Scrum. Scrum is a time-fixed, iterative methodology.
In Scrum, small cross-functional teams complete work items (often called "user stories") during a "sprint" (often a two-four week period). A core concept in Scrum is that the team should produce a potentially shippable iteration of working software at the end of their sprint. Why? It helps the team focus on manageable goals, ones that can be reasonably well-estimated.
Scrum has several key roles (product owner, Scrum Master, Scrum team), artifacts (product backlog, sprint backlog, increments), and ceremonies (daily standups, sprint planning, backlog grooming) that make it unique from other methods.
For many, the term "Agile" is interchangeable with Scrum methodologies. But, though Scrum is one of the most common methods, it is not the only Agile methodology.
Kanban — For Leaner Workflows
Kanban is a visual, workflow-based Agile method. "Kanban" is a Japanese term for "visual cue" or "card". Where Scrum ships in batches, Kanban is more about delivering a single item at a time, continuously.
Four principles serve as a foundation for Kanban. (The first one shouldn't come as a surprise!)
- Principle #1 – Visualize Workflow. A picture is worth a thousand words. When development becomes visual, you improve communication, collaboration, and problem-solving.
- Principle #2 – Limit Work in Progress. Do less multitasking to get more done.
- Principle #3 – Focus on Flow. Pull work through the pipeline. Don't start new work until something is completed.
- Principle #4 – Continuous Improvement. Nothing is ever completely finished. Keep looking for ways to improve.
Hybrid Agile — For Complex Contexts
Agile methods don't favor rigid processes. As a result, teams all over the world continue to stretch the limits and combine methodologies to solve unique development challenges. There are infinite ways to mix Agile methodologies to suit your context. I'll include two examples below.
An Agile-Waterfall hybrid is one solution for a collaborative hardware and software team building a product. Using a hybrid method, the hardware team (since they're building a physical product) would want more traditional upfront planning and dependency resolution. The software team could still develop within their timeboxed Scrum sprints.
Scrumban, on the other hand, is ideal for teams that like the structure of Scrum and its iterative delivery model, but wish to mix in the process development benefits of Kanban. It can be a great transition method for teams moving from Kanban to Scrum or Scrum to Kanban.
There are near-infinite ways to combine Agile methodologies. The key is to start with something and keep experimenting!
Agile at Scale
Early adopters of Agile were small teams working on self-contained projects.
They succeeded! They showed the world that the Agile model could work.
More recently, larger organizations are wielding their agility as a differentiator and scaling Agile beyond single teams or individual projects. They are applying agility across teams, departments, and throughout the enterprise.
If you’re considering Agile methods for a larger team, or even throughout an organization, scaled agile frameworks provide helpful starting points. One of the most popular is the Scaled Agile Framework, or SAFe. Another framework is Large-Scale Scrum (LeSS). It scales the typical Scrum process explained above to include Scrums of Scrums.
Agile Metrics — Don’t Be Evil!
Agile succeeds, in part, because it democratizes decision-making and redistributes power from management to the team-level. While relinquishing control can be daunting to some, what Agile methods do, in effect, is make teams more accountable to each other and their success. As a result, the best Agile metrics are those actually used by the team to improve their work and ship better products faster! Anything else, in my opinion, is a vanity or blame metric.
Metrics often vary by method. And, like anything, what gets measured can vary as much as the personalities doing the measuring. For the sake of simplicity, let’s consider Agile metrics from the vantage of the traditional project management triangle: speed, quality, and cost.
Speed — Speed to market is one of the benefits of Agile methods. Scrum teams often measure burndown rates (the amount of committed work they’ve completed). Kanban teams often measure items like throughput (number of stories completed in a sprint) or lead and cycle times (the amount of time it takes to for a task to move from started be completed.)
Quality — A common way to track quality is to measure defects. How many bugs were found or reported in a product? When? By whom?
Cost — One way Agile teams and project managers solve for cost is by applying the “weighted-shortest-job-first” (WSJF) method to work item prioritization. The WSJF method combines cost of delay with relative job size. That way the team is focusing on the feature expected to return the greatest economic benefit.
Let’s add one more:
Happiness — Yes, happiness is a soft, qualitative metric. But without a happy team, you won’t be successful for long. Team members can burn out. When that happens, speed and quality fall. Cost rises.
Agile Tools for Development
Agile projects are dynamic and fast-moving. Coordinating efforts, then, can be a challenge — especially with distributed teams. Agile tools are critical for connecting geographically distributed team members. They can provide both the structure and collaboration you need to power development across long distances.
When considering tools, know that there are many. Because of Agile's popularity, the marketplace is full of many lightweight or method-specific tools. Many of which have been created for either small business or for a single, specific method. So just be aware of that if you're undertaking complex product development. You may want to consider something more robust.
Tools For Highly-Regulated Products
If you create safety-critical or highly regulated products, for example, you'll likely want an Agile-capable ALM tool that simplifies regulatory compliance by delivering security and traceability across the development lifecycle.
Tools For Complex Planning at Scale
Scaling Agile projects to large, complex enterprise levels is no small feat. It can be tough to keep numerous projects well-aligned with the business objectives they are intended to support.
For example, if your organization creates complex products and needs flexibility and agility at scale, you'll need a scalable Agile project management tool that works.