Agile project management is an iterative and incremental approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their end user/client.
The origins of agile
Traditionally, software development was done in five stages. Requirement gathering - Design - Implementation - Testing - Deployment.
Like how a waterfall flows only in a single direction, this process happens sequentially and unidirectionally. While this model makes sense on paper, it's grossly irrelevant when it comes to big-scale projects. Requirements gathered at the start of a two-year project become obsolete by the time the end-product comes to fruition, resulting in loss of a lot of money and time. Requirements were changing, technology was evolving, and the traditional approach was simply not effective.
So the frustration and ingenuity of a few software developers led to The Agile Manifesto in 1990s. When 17 software practitioners met in 2001 at a ski lodge in Utah, they condensed their ideas into four values and 12 principles on which the agile methodology stands.
So what is the agile approach?
Agile project management is an approach to software development that helps teams cope with requirement changes at any stage of the product development. Four values and 12 principles seemed one too many, so we've decided to bring you the soul of it in six simple mantras.
Change is good
In software, as in life, things don't go as planned. Successful teams are those that can deal with the changes. A change isn't just a problem to deal with—rather, it must be seen as an opportunity to improve the outcome. In the agile approach to project management, a change represents potential and possibilities, and teams that are nimble enough to utilize this are the ones who stay in the game.
Software—ship fast and ship it right
The primary measure of progress is working software. The emphasis is on time as well as quality. So within a time-boxed period, you ship a functional product/update. You release a basic viable version in an iteration and then refine it in the following iterations.
Trust, motivation, self-organization—build the right team
When passionate, motivated individuals work together, they create something of value. The agile culture places a lot of importance on individuals and recognizing the unique skill sets each brings to the table. People who are driven by passion, motivated by criticism, excited by new technology, and seamlessly self-organizing make the perfect agile team.
Communication between the stakeholders and the development team is equally as important as communication within the development team. The Agile Manifesto advocates constant feedback and constructive discussion as a necessary catalyst for shipping the best results. It also insists on face-to-face communication being the best medium to achieve this.
At fixed intervals, teams pause to reflect on their agile process and decide how it could be improved. In the agile culture, everything is constantly improvised, and what's more important than the agile process itself?
Satisfy the customer
The immutable idea that cements all of these together is customer satisfaction. The Agile Manifesto was born to bridge the gap between customer expectations and the end-product. "Does this benefit the customer?" should be the question that drives the decisions in an agile team. There could be seven new uber-cool ways to send a file over the internet, and the technology might be exciting to work with, but which one is most useful to our end-user? This can help keep the team grounded about their priorities.
- 01 - Change is good
- 02 - Software
- 03 - Trust, motivation, self-organization
- 04 - Conversations matter
- 05 - Reflection
- 06 - Satisfy the customer
Benefits of Agile Project Management
- 1Allows for change
- 2Higher customer satisfaction
- 3High product quality
- 4No unpredictable delays
- 5Team dynamic gets better
Who can use the agile approach to project management?
If you read the last section again, agile project management almost seems like common sense. It's almost Darwinian to say that if you don't keep improving, you're going to become obsolete. We make plans and drop relationships with a single text. In a sense, aren't we all agile?
The agile approach, which started out as an experiment for software-practitioners, has insiniuated itself into every industry as a productivity mantra. Marketing, advertising, event planning, publications, and even food distributors have used agile knowledge to turn their luck around. We could almost call it a New Age Movement.
Frameworks: Agility comes in different flavors
Agility is the umbrella term beneath which many frameworks have mushroomed over the years. It's a mindset, and a framework is a set of rules with which you can convert lofty principles into tangible practices that you can incorporate in your work.
Improvisation is at the heart of agile
A farmer who uses an engine from a scrapped motorbike to draw water from a well and a student who uses a clothes iron to make a sandwich share the same quality: the spirit of improvisation. It keeps showing up whenever people are expected to do a lot with limited resources. And this happens so often that there is even an Indian term for it: Jugaad, sometimes translated as a" life hack."
These solutions aren't elegant, but they get the job done. Jugaad captures the spirit of using existing resources in new ways. It combines functionality and frugality to give feasible solutions.
"Agile is a formalization of Jugaad," says Sridhar Vembu, the CEO of Zoho. He uses an analogy to drive the point home: "A predictable project may be like keeping the trains running on time over well-layed tracks, whereas software projects are like laying a track over unknown terrain. There is too much uncertainty; there are too many unknowns. The only way you can manage these projects is to improvise on the go."
- Who can use the agile approach?
- Frameworks: Agility comes in different flavors
- Improvisation is at the heart of agile
How do we go agile?
So you have decided that you want to "go agile." How do you do it?
There are two approaches to making the transition—you can either start small or go all-in. Both approaches have sound arguments, but the decision depends largely on how risk-averse your organization is.
The start small approach:
A safe approach with any change is to begin with a small pilot team, learn from it, and then spread it throughout the organization. Of the two, this is naturally the more popular one because of the low risks involved.
With each consequent set of teams, the transition becomes smoother until the whole organization becomes agile.
The go all-in approach:
The aggressive risk-takers prefer to transform their entire company overnight, converting all their teams in one go. This can naturally cause an uproar within your organization. But with big stakes come big returns.
One of the most successful examples of this approach is Salesforce. They managed to pull off one of the largest, fastest, big-bang agile rollouts. Their management was convinced of the move, but it was the company's challenging and result-driven culture that was crucially conducive to its success.
Like any other idea, the promises look rosy, but you'll soon find out there are some hard-to-swallow pills and some toes to step on. Industries that are steeped in traditional hierarchies and practices can find the agile transition disorienting. Hierarchies break down, authorities are challenged, and there could be resistance within the company.
Agility is a process that needs constant honing, refining, and a fair amount of transition time until your teams start operating like well-oiled machines. If you do, and you realize that from "going agile" you've now "become agile," you might just get to write your success story.