A good place to start defining Agile is to say what it is NOT. It most often contrasted against the Waterfall approach to project management, a traditional approach that breaks down a project into linear and sequential stages. In a Waterfall project, every piece of the project relies on the completion of preceding deliverables. Thus:
Image from here.
Agile, on the other hand, is an approach to project management characterized by iteration and adaptability. In Agile software development, cross-functional, self-organizing teams collaborate in order to complete tasks and requirements. The work is not linear, but, rather, simultaneous and incremental. Like so:
Image from here.
This is not to say that Agile is better than Waterfall, or vice versa. The Waterfall approach has worked for many, many years for manufacturing-based projects such as building bridges or houses. In such projects, we already know exactly what we want to deliver, and changing the scope mid-way would be catastrophic.
However, the tides have turned in our day and age. Users are now the ones demanding for the features they find relevant. There is always a clamor for something better and something new. We are also under threat of business disruptions: pandemic, growing global competition, new technologies sprouting left and right, and more. Being Agile enables an organization to navigate through this volatile economic climate.
How Agile started
Let’s go back to the beginning. In the 1990s, developers were starting to push the boundaries of the highly traditional and top-down approach to project management — the Waterfall. That was when Extreme Programming, Scrum, Adaptive Software Development, Pragmatic Programming, and other processes, started to gain traction. In February 2001, 17 like-minded developers got together to find a way to push an alternative to the documentation-driven, heavyweight software development approach that was dominant at the time. They mixed business with leisure in a ski resort in Utah and signed the Agile Manifesto.
Agile values and principles
In the manifesto, the alliance of developers outlined the values and mindset that they have around Agile. In their own words: We are uncovering better ways of developing software by doing it and helping others do it.”
The manifesto names 4 Core Values in Agile:
- 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 Agile Manifesto also lists 12 Principles. These principles guide an organization in practicing Agile in their work.
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Image from here.
The core of being Agile
If we want to capture the spirit of being Agile, especially in a Scrum setting, we look into empiricism. Empiricism pertains to working in a manner that is based on facts, experience, and evidence. There are three pillars of empiricism that will help us establish an Agile environment:
- Transparency. People involved in the project, from the CEO to individual contributors, keep each other informed on a day-to-day basis. They update each other with progress as well as challenges. When there is transparency in their way of working, they are able to productively collaborate towards a common goal. Transparency paves the way for inspection.
- Inspection. The team is open to feedback from the customers, stakeholders, and everyone in the team. They see criticism and changes as an opportunity to improve their work as well as to have a better understanding of the customer’s requirements. Inspection leads to Adaptation.
- Adaptation. Continuous improvement is a constant goal among team members. They use the results of the Inspection to improve their execution for the next iteration.
The first signatories of the Agile manifesto were responding to technology and industry developments they were having at the time. 20 years later, the benefits of going Agile have never been more resounding. Here are reasons why you should go Agile today:
- Create software that brings value to customers. In an Agile project, the development team ships a usable product (called a Minimum Viable Product) that the customers can immediately use. Their feedback will be fed back into the loop and will serve as input in the next iteration. By being able to either validate the usability or pivot based on feedback, the team is able to deliver features and functionalities that customers will actually like and keep using.
- Go-to-market faster. With the ability to launch an MVP in as little as 2 weeks, an Agile team can quickly turn an idea into a real opportunity, catching early adopters and serving customers their demands ahead of the competition.
- Be ready for anything. An Agile team that works in short sprints can more easily pivot with short notice. These days, a pivot may be required when a new lockdown level is in place, when a client urgently needs to open a new sales channel, or when there is a need to comply with new government mandates in data security or people safety.
Image from here.
Agile is an approach to project management. It is a philosophy and has values and principles rather than a step-by-step procedure. On the other hand, a methodology will tell you how to identify work, who will do the work, how to do the work, and when the work will be done. There two most common methodologies by which you can apply Agile, are as follows:
- Scrum. Scrum is so popular as an Agile methodology that it often gets confused with Agile itself. In Scrum, teams work in short bursts or “sprints”. In the beginning of a sprint, the team identifies the portion of the scope that they can complete in 2 to 4 weeks. After the sprint, the work will be delivered to the client. The team will conduct a sprint review and retrospective, the learnings from which will inform the strategy for the next sprint. The team meets in a 15-minute standup session called a Daily Scrum to coordinate tasks, blockers, and solutions.
- Kanban. Agile teams that use Kanban as their framework relies on a kanban board as their single source of truth. The board visualizes the flow of work and organizes each task into 3 columns: To Do, In Progress, and Done. A team member grabs a task on top of the To-Do list, arranged in terms of priority, and moves it to the In Progress column. When done, they move it to the Done column and grab another task at the top of the To Do column.
Scrum and Kanban differ in their primary focus. In Kanban, team members take on tasks from the visual Kanban board, one after another, in an effort to maximize efficiency and improve continuously. On the other hand, Scrum team members focus on getting more work done faster. They take a more structured approach to implementation by planning deliverables every sprint. But in both Kanban and Scrum, team members assume transparency, communication, and collaboration in order to successfully move the project forward and deliver value to the customer.
Over 20 years after the publication of the Agile Manifesto, the document that defines the key values and principles behind the Agile philosophy, Agile has proven itself a concept that is more than just a buzz word or a trending topic. In recent years especially, companies who were quick to pivot were the first ones to adjust their supply chain, support a remote staff, and continue serving their customers in sales channels apart from the traditional brick and mortar.
Tech giants like Uber, Spotify, and Amazon have employed the framework long before the pandemic forced most of the world to be Agile. In the Philippines, companies like Globe — a Stratpoint Dedicated Agile Team customer — remained productive through the disruptions caused by COVID lockdowns. They continued to push platforms like a unified payment service and a customer relationship management system to ensure that their customers enjoy convenience and valuable services at any given time.
Given the change in the world’s work circumstances — a distributed workforce and a mostly digital space. One of the major challenges in abiding by the Agile principles today is that we are not able to convey information regularly on a face-to-face basis. Still, truly Agile teams are able to adjust through video conferencing, online pulse surveys, virtual activities, and other means to keep team members engaged despite the physical distance. Even Agile has to be agile.
Image from here.
How to be Agile
Not sure if you are Agile or how to start becoming Agile? We can help. Stratpoint has been in the business of Agile software development for 2 decades, led by a team of certified Agile professionals. Message us through the form below for a discovery session.
Related Stratpoint blog posts on Agile: