In this series of articles, we’ll dive deeply into agile development methodology; this article will introduce agile fundamentals. We’ll discuss what it is, how it differs from traditional software development methodologies like the waterfall model, and its benefits. We’ll explore some real-world examples of companies using agile development successfully to help you understand why the agile methodology works when implemented correctly but can also be disastrous if not executed properly.
The Agile Manifesto
In February 2001, a group of software developers meeting in Snowbird, Utah, penned The Agile Manifesto. This proclamation is considered one of the most influential works in the history of software development and is often referred to as “The Bible of Agile.”
What is the Agile Manifesto?
Agile Manifesto: A document that guides how to build software. It was written in 2001 and signed by 17 software development professionals. The manifesto outlines 12 fundamental principles for creating high-quality code and systems.
The manifesto consists of four principles:
- Individuals and interactions over processes and tools (Iterative development).
- Working software over comprehensive documentation (Working software).
- Customer collaboration over contract negotiation (Customer collaboration).
- Responding to change over following a plan.
Always start with the individual and interactions over processes and tools.
Focus on the people and interactions over processes and tools. This is a concept you’ve probably heard before, but it’s so crucial to your success that it bears repeating: people are the most critical part of this process.
We know that sounds like a platitude, but we mean it literally. People are the most crucial part of your product (or service), making up 85% of your company’s culture, and they’re also the ones who will create or sustain value for customers if you do things right.
Working software should be valued more than comprehensive documentation.
The Agile Manifesto is a set of rules and guidelines for software development. It was created in 2001 and has since become an industry standard. However, not all aspects of the manifesto are equally important.
Agile is often misconstrued as meaning “no documentation.” This couldn’t be further from the truth—agile does value documentation, but only when it’s necessary for what you’re trying to do.
Because agile values working software more than comprehensive documentation (or even up-to-date documentation), you should focus on creating concrete plans that allow your team members to execute their projects quickly and with certainty rather than spending hours documenting every last detail of a project before they start coding anything at all.
The Agile Manifesto states: “Working software over comprehensive documentation.” The way this applies in practice is that if there’s something that needs documenting—say, some new feature that your customer wants to be added—you should get started on building out those features first instead of getting hung up on creating long documents that don’t help anyone accomplish anything in real life (i.e., they won’t do anything except require time and effort).
Customer collaboration should be valued over contract negotiation.
If you are not working closely with your client, then you are not doing agile right. The purpose of the Agile Manifesto is to deliver value to the customer promptly while reducing risk and cost. If you’re not collaborating with them regularly, then it’s unlikely that you can do this effectively.
Responding to change should be valued over following a plan.
The Agile Manifesto states, “responding to change over following a plan.” While this may seem obvious, it’s an essential principle for software development teams.
Let’s say you’re building a house, and your builder tells you he’ll be finished by the end of next week. You know from experience that things rarely go according to plan—and even if they do, the project will likely require more time than your builder has allotted.
So instead of waiting for him to complete his work on time, why not take care of yourself? How can we help ourselves when working with others? The answer lies in recognizing that plans are often made with the best intentions but may need adjustment as new information becomes available or circumstances change unexpectedly.
The agile methodology relies on frequent feedback loops and iterative development processes where changes are welcomed throughout production. In contrast, traditional methods are based on having a fixed timeline before testing begins.
As you can see, the Agile Manifesto is an excellent resource for anyone who works with software. The four principles are easy to remember and implement in any situation. You can truly see how important this document was back when it was published and today because it’s still used by many companies worldwide.
Scrum is a Framework that Helps Teams Focus on Delivering Value Quickly
Scrum is a framework for managing projects. It’s not a methodology in itself but rather a set of rules that help teams focus on delivering value quickly. Scrum is an iterative and incremental approach that focuses on providing working software every two weeks.
The Scrum framework comprises five roles:
- Product Owner
- Development Team
- Scrum Master
- Chief Architect
The Product Owner represents the customer (the business) and decides what features to build next based on their needs. In contrast, the development team makes them using an agile methodology such as XP or Lean Startup techniques like Kanban boards and sprints.
Agile Will Continue Compelling Us Forward
Agile has been around since the early 2000s and is still one of the most widely used methods in software development. But that doesn’t mean it always works.
Yet, even though agile may not be perfect (and there are many ways it can go wrong), its track record has improved dramatically over time—and continues to improve as more teams integrate its principles into their workflows and mindsets.
Success Stories Using the Agile Methodology
Inventory control at NETFLIX
Netflix is a video streaming service that provides movies and TV shows to its subscribers. It uses the agile methodology to manage its inventory. Netflix has a large inventory of videos, with an average of 7 new releases per day.
Netflix’s engineers use the agile methodology to manage their inventory by implementing several techniques:
- They have smaller teams that work in sprints instead of long time periods so they can make quick adjustments when needed. If a particular movie isn’t performing well, they can terminate it before too much money is invested in it (although this has happened only once since 2009). In addition, since each team member only works on one product at any given time, they have more focus on improving their own area rather than spending time helping other teams improve theirs (something that happens often in traditional companies).
- They use an Editorial Calendar where all tasks are scheduled ahead of time so there’s no uncertainty about what needs to be done next; this helps them stick closer to deadlines as well as avoid last-minute stress from unexpected requests from higher management or customers/users who want changes made quickly without proper planning beforehand
DICOM-to-PACS was developed by the University of Utah and is used to allow medical images to be viewed and analyzed. It’s a great example of how agile methodology can be applied in a short period of time for specific purposes.
Los Angeles County Mental Health Application (MHAP)
MHAP is a web-based application used by Los Angeles County to manage mental health services. The application was built using agile methodology, and has been in use since 2010. It’s currently used by more than 1,000 users.
This project started with a small team of developers who had never worked together before. It was completed in less than a year, costing only $115K—nearly 50% less than its original budget of $200k+. The project experienced no major delays or cost overruns during development or testing phases.
Agile is Not a Silver Bullet, But it Still Might Help You
The agile methodology is not a silver bullet, but it does have benefits if you use it correctly and consistently. The problem is that many people try to get all the benefits of agile by simply making a few small changes in their development process, hoping this will help them achieve their goals. This approach rarely works in reality because so many factors are involved in successfully doing agile work.
One of these factors is consistency: If you want your teams to deliver high-quality software on time while also improving their working lives, then they need an environment where they can do this every day without interruption (and preferably without getting fired); if your team has been appropriately trained then they should understand how best to use the tools at hand and how best to adjust when necessary.
It’s clear that the agile methodology isn’t perfect, but it has proved helpful to several teams. The key to success is all about using the method correctly and consistently. If you don’t do this, you may find that you have taken on more than you can handle or even done damage to your team.
Ensure that you invest in training and planning before setting off on the agile path so that your team lines up with all of its principles. This way, I think we can all be more agile with our success.
With agile fundamentals covered, keep reading this series to learn when agile fails and how to tell whether agile will work for your development processes.