Learn About Agile
Scrum Foundations Video Series
All the foundational knowledge of Scrum including: the framework, values, different roles, meetings, backlogs, and improving efficiency & quality.
Scrum Foundations Video Series
Intro to Agile and Scrum
New to agile and Scrum? Or just wanting a quick refresher? You've come to the right place. Learn about agile, and popular frameworks like Scrum, SAFe, and Kanban that share similar values and principles.
Agile is a lighter weight approach to project management and product development. It differs from traditional waterfall or other phased approaches that rely on upfront research, multiple stages, and gated handoffs, which usually result in products that take a year or more to reach their users.
An agile approach to product development is appropriate on any urgent project with significant complexity and novelty. Contrary to the many myths out there, old and new agile methodologies allow for managers, plan, design, allow for specialists, are for products beyond software, and embrace change (but not whenever anyone wants).
Popular approaches to agile development (Scrum, Kanban, and XP) all share a similar set of principles and values.
How Long Has Agile Been Around?
The term agile was first applied to Scrum and similar development processes in early 2001 with the publication of the Agile Manifesto. You can think of agile as an umbrella term that encompasses other processes, such as Scrum, SAFe, Extreme Programming, Adaptive System Development, DSDM, Feature Driven Development, Kanban, Crystal and more.
Agile vs Scrum: What's The Difference
Of all the agile methodologies, Scrum is the most widely used framework. One way to think about the relationship between agile and Scrum is to use a refrigerator metaphor.
If your refrigerator were to break, you would go to an appliance store and be shown various refrigerators.
You might see refrigerators from Maytag, General Electric, Viking, Whirlpool, Frigidaire, SubZero, Bosch and so on. You would leave the store, let's say with a Maytag, because its unique features best fit your needs. In the same way that Maytag is a brand of refrigerator, the Scrum process is a brand of agile.
Unlike refrigerators, however, you can customize a framework to better fit your team. You can choose to primarily use Scrum, for instance, but also incorporate some of the desirable features of XP, Kanban, and others.
For example, many teams that use Scrum also employ test-driven development and pair programming, both of which are components of Extreme Programming.
This flexibility is a large part of the appeal, and the reason why I don't typically say Scrum vs Agile vs Waterfall or Kanban vs Scrum. It's not a competition; it's cooperation and collaboration.
Animosity between agile frameworks is unwarranted. Most people who choose any agile process (scrum or otherwise) them want the same thing: To be more productive, do better work, and feel fulfilled (and respected) by the work they do.
It’s like choosing somewhere to go out and eat. The ultimate goal is to enjoy a meal out with good food (and probably good company). You might have a favorite restaurant that you know you’ll enjoy but you probably don’t eat every meal there.
Perhaps you love an Italian restaurant, but sometimes you’re in the mood for Thai food. Or some nights you’re in the mood for some live music but on others, a quiet atmosphere is what you need.
Choosing an agile method is not exactly the same as choosing somewhere to eat, the point is that it’s doubtful any organization or team wants to use exactly the same approach every single time.
How Agility Helps Team Manage Change
Waterfall and other non-agile processes aren't inherently bad. If your process is working, by all means stick with it. The reality, however, is that the rate of change has accelerated dramatically over the past 30 years and especially over the past 10. Product development cycles that were acceptable 10 years ago would be laughable now.
All signs point to this quickening trend continuing. Today's “fast enough” will likely not be fast enough tomorrow. In order to remain competitive, companies developing software need a process that can help them keep up with the accelerating rate of change.
Agile frameworks help teams deliver products sooner, and at lower costs, giving them a competitive advantage in a fast-paced market. Plus, organizations are able to rapidly adapt to meet the true needs of the market.
A hallmark of agile projects are the self-organizing, cross-functional teams that are empowered to achieve specific business objectives. These teams work with a focus on rapid and frequent deliverables of partial solutions that can be evaluated and used to determine next steps.
In this way, solutions are built in an iterative and incremental manner. Agile methodologies have been shown to deliver higher quality products in less time, resulting in improved customer satisfaction.
Along with 12 agile principles, the 2001 Agile Manifesto defined 4 agile values. Although written specifically about agile software development, these principles and values are applicable to any agile product development methods:
"Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan"
The writers go on to say that "while there is value in the items on the right, we value the items on the left more."
Scrum adds five values of its own to this list: commitment, courage, focus, openness, and respect.
Benefits of Agile
Transitioning to a new process is hard. The benefits of adopting agile must outweigh the cost. Organizations that have made the switch report the following benefits, including these from Forbes:
- Faster feedback cycle
- Embraces reality of constant change
- Easy to adapt and pivot
- Exposes risks early
- Less waste
- More purpose
- Improved predictability
In an early study on the impacts of moving to an agile process, Michael Mah found measurable differences in these areas:
- Higher productivity and lower costs
- Higher quality
- Accelerated time-to-market
A recent State of Agile report found that 69% of respondents had seen increased collaboration. 51% had seen better alignment to business needs.
And Scott Ambler’s report in Dr. Dobb’s Journal, also found these benefits:
- Improved stakeholder satisfaction
- Increased job satisfaction
- More engaged employees
Having more engaged employees leads to more productivity gains, initiating a virtuous cycle of continuous improvement.
In a nutshell, Scrum is a way to manage work on any project that aims to quickly create something new, complex, and somewhat ambiguous.
Scrum happens in a repeating inspect and adapt loop (iteration or sprint) that starts with sprint planning, has daily scrums, and ends with a sprint review and retrospective before beginning again.
Scrum team members include developers (those who are creating the product) a Scrum Master, and a product owner.
Scrum tools include a task board, product backlog (often expressed as user stories), release burndown chart, and sprint backlog.
Scrum is not a fad. It has been around a lot longer than you might think. The first paper on Scrum (The New New Product Development Game) appeared in Harvard Business Review in January 1986. Software teams started using Scrum in 1993. Scrum and agile development are quickly becoming the predominant way to work.
In fact, a recent State of Agile survey found that 4 out of 5 respondents were using an agile process on at least some of their projects. And they aren't just applying these frameworks to IT and software development teams. 61% are adopting agile for company-wide digital transformation.
Kanban is all about workflow: how to visualize it and how to manage it. Taiichi Ohno is credited with starting in Japan at Toyota. Its two distinguishing hallmarks are limiting the amount of work in process and visualizing work through a kanban board (similar to Scrum’s taskboard).
One of the main benefits touted by David Anderson is that Kanban is a better choice for most because it requires no organizational changes to implement. That’s a good point, can allow large issues to remain unaddressed because poor software development outcomes are often a symptom of larger scale changes needed at the organizational level.
Besides, when it comes to Kanban vs Scrum, there’s no need for a competition. Some teams choose Scrum; some choose Kanban, some combine them. There are definitely times when Kanban might be the better choice for your team.
XP & Pair Programming
Agile, Scrum, and XP share a set of commonalities but have some key differences as well.
People often ask, is pair programming required on an agile team? Scrum and other frameworks don't require pair programming. But it is likely worthwhile to at least try on some projects and for some Scrum teams.
Pair programming is one of the Extreme Programming (XP) practices. But because it can often be a great idea, it has expanded beyond XP to become a popular agile practice–just as Kanban boards (taskboards) have expanded beyond Kanban.
Every team can experiment with pair programming and determine when it's appropriate for them and their project. It's quite possible that it's not 100 percent of the time, but it's even more likely that it's not 0 percent.
Getting Started with Agile and Scrum
Change begins when an awareness that the status quo could be improved turns into a desire to do something different. All of the awareness and desire in the world, however, won't get you anywhere if you do not also acquire the ability to be agile.
You will need not only to learn new skills but also to unlearn old ones, including:
- New technical skills, such as test automation and design evolution
- How to think and work as a team
- How to create working product within short timeboxes
Beyond an introduction to agile development and Scrum, training along with on-site coaching or mentoring is usually required. What seems to work best for most companies is some initial training, oriented at creating a willingness to try Scrum and to understanding its core principles.
This general training is usually then followed up with practice-specific training or coaching, such as bringing a test-driven development expert on-site to work hands-on with teams in their code.
Mountain Goat Software offers individual training, private team training, and onsite coaching to help you and your team get started and get better at agile and Scrum.
To reinforce training, companies often provide opportunities (wikis, informal lunch-and-learns, cross-team exchanges) for teams to share information with each other.
Above all, don't stall, waiting to know all the answers before you start. The best way to develop the ability to do something is to start doing it.
An Iterative Waterfall Isn’t Agile
Introducing An Agile Process to an Organization
How To Fail With Agile
Transitioning to Agile
ADAPTing to Agile