When you think of the word “agile,” the first thing that comes to your mind is probably not Agile Software Development.
You probably think of “agile” as describing something that is able to move quickly and easily, whether it is an athlete or a hummingbird.
Analogies aside, “agile” can also be used to describe a project management approach that has taken off within the software development industry over the last several years.
What is Agile?
So what exactly is this project management method and why should it matter to me?
Agile is an iterative, flexible approach to software development in which teams divide large projects into multiple smaller ones.
Breaking the project up allows cross-functional teams to deliver working software within the shortest timeframe possible.
To achieve this teams must collaborate and solve challenges together.
Agile development also creates an environment that encourages accountability and creative feedback. This leads to less project overhead and increased business value for the project.
The Agile Manifesto
In 2001, a group of several seasoned developers got together in support of “lightweight” development approaches. Even though development teams had already been experimenting with “lighter,” more efficient ways of creating software, the Agile Manifesto continues to be used as a reference for the various flavors of Agile development used today.
The Agile Manifesto places greater value upon:
- Individuals and interactions over processes and tools
- Responding to change over following a plan
- Releasing working software over comprehensive documentation
- Customer collaboration over contract negotiation
The Agile Approach
We can take the values from the Agile Manifesto into our project approach.
The importance of understanding your client’s vision for the project cannot be overstated. Uncovering this vision through collaboration will help both parties understand what needs to be accomplished. You will also need to determine the key team members and resources needed for the project.
2. Product Backlog
Next, the team begins to create a wishlist of features they’d like to see completed over the course of the project. It is important to prioritize the most critical features of the project; complete those items before moving on to the lower value features.
Then, it’s time to get to work. The team breaks their work into tasks for the first iteration and begins working on them. Now the first sprint is underway.
Once the team finishes the sprint, they will often demo their work before pulling the next few features from the backlog into the new sprint. After this, it’s rinse and repeat until the project is finished.
The Waterfall Transition
What’s the difference between this and the Waterfall method that I’ve been hearing about?
The purpose behind the Agile method was to develop a thought process that could improve upon the Waterfall Method.
Within Waterfall, a project is broken down into main stages. Teams must complete the first stage before moving on to the second, complete the second stage before moving onto the third, and so on. Adjustments to a project can be difficult to incorporate given the highly structured nature of Waterfall.
The same stages are completed in Agile as in Waterfall but everything is broken up into smaller, iterative pieces.
If you are still finding it hard to the tell difference, think of your software project as a large boulder.
Under the Waterfall process, you would be trying to drag that boulder of a project through each one of the stages.
The Agile way of thinking would go, “Hold on a minute. Why am I dragging this massive rock through an entire stage all at once? Why not break the boulder into smaller, more workable chunks and complete those?”
There are many different ways for teams to implement Agile practices. The most popular Agile method is an iterative series of events broken into sprints. This generally includes the creation and maintenance of the product backlog, sprint planning, daily scrums, end-of-sprint demos and sprint retrospectives.
For the first part of the typical Agile sprint, the team holds a sprint planning meeting and decides which features will be completed during the sprint. In Agile, features are often referred to as “user stories” because user stories describe the ways that users interact with an application.
Next, the team breaks the user stories into tasks. Each user story may require one or many people to contribute to the story, depending on nature of the work.
Each day of the sprint, the team will meet up for a daily scrum meeting to discuss each team member’s progress or anything that’s getting in their way. A “scrum master” keeps track of progress, often by using visual aids like the storyboard above taken from the HBO hit comedy Silicon Valley.
Once the sprint is complete, the team holds a “sprint retrospective” to talk about what went well and what didn’t. By assessing the previous sprint, the team can find ways to work more efficiently in the future. This helps teams adapt and improve as they move toward project completion.
Going Beyond Agile Software Development
Agile isn’t only for the software development industry. In fact, Agile processes were originally applied within the automotive and manufacturing industries.
You, too, can approach projects and tasks in your everyday life in an Agile way. All you need to do is break your project down into smaller, iterative pieces and tackle them one by one.
Try it out on a project you are currently working on. You’ll be making progress from Day 1 and improving your time management in the process.
Thanks for Reading!
We hope you enjoyed this overview on agile software development. Feel free to check out some of our other posts here on the Seamgen Blog.