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. Or, you thought about Julian Edelman and the Patriots’ stunning comeback victory in the Super Bowl.
Super Bowl aside, Agile can also be used to describe the project management method that’s taken the software development industry by storm.
What is Agile?
So what exactly is this project management method and why should it matter to me?
In basic terms, Agile allows software development teams to successfully accomplish huge overarching projects, by breaking them up into little pieces.
By breaking the project up, it allows for cross functional teams to collaborate and solve the most complex facets of software development.
It also opens up an opportunity among those teams to create an environment that inspires teamwork, accountability, and creative feedback. All of this results in less project overhead and higher business value.
Manifesto of Agile Software Development
From the beginning of software development, there have been many different ways for developers to keep track of their projects. Finally in 2001, a group of software developers decided to streamline some of these approaches and develop the Manifesto of Agile Development.
This Manifesto laid out the key principles on how one should manage software development, from inception all the way through to implementation.
Some of these key principles include the importance of customer satisfaction and the significance behind developing high quality software.
Nowadays, methods can only be classified as Agile if they follow all the requirements within the Manifesto.
The Agile Approach
From the Manifesto, we uncover four significant steps to fully follow the Agile approach.
First, it’s important to understand what exactly you are trying to accomplish. You should know the resources needed for completion, along with the key team members working on the project. It is also significant to understand your client’s vision for the project.
2. Product Backlog
Next, the team begins to create a wish list of what they would like to see completed over the course of the project. It is important to prioritize the higher value features of the project; complete those first before rolling out some of the lower features.
Then, it is finally time to get to work. After all the preparation from the first two stages, the team begins to divide the tasks up into iterations that typically last between 1-4 weeks.
Once the team finishes the iteration, the next step is to repeat the cycle until completion of the final project.
The Waterfall Transition
What’s the difference between this and the Waterfall method that I have been using?
The purpose behind the Agile method was to develop a thought process that could improve upon the old Waterfall Method.
Within Waterfall, a project is broken down into main stages. Once the first stage is complete, the second stage begins; the order is very set.
Under Agile, the same stages are completed as Waterfall, but everything is broken up into smaller pieces.
If you are still finding it hard to the tell difference, imagine your software project in the form of 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 process says “Hold on a minute. Why am I dragging this massive project?” Instead, Agile decides to break the massive project up and deliver the project in bite-sized portions.
Applying Agile Through Scrum
With there are many different ways for teams to practice agile methods, the most popular method practiced is called “Scrum.”
For the first part to Scrum, the team creates a wish list of what they would like to see upon completion of the project. This is often referred to as the product backlog.
Next, the team pulls out certain tasks to work on during the first iteration of the project. In a scrum, iterations are often called a sprint, and the idea is to finish these tasks in a certain time period. Think of it as a mini project inside of one big project.
Each day of the sprint, the team will meet up for a daily scrum meeting to discuss each team member’s current progress on the tasks. All progress is kept track of by a “scrum master,” who uses visual aids like the storyboard displayed above (taken from the HBO hit-comedy Silicon Valley).
Once the sprint is complete, it is time for the most important part of the scrum. The team conducts a review of the entire sprint to see where the team can improve upon the process. By reassessing the work that is already done, faster sprints can be performed in the future. This review process leads to increased adaptability and general improvements.
After all of this is finished, the whole process repeats itself until the final project is complete. This iterative process is a helpful way to keep track of both the long-term and short-term pictures of the project.
Going Beyond Agile Software Development
Earlier, we spoke of agile software development. But Agile doesn’t have to be solely used within the software development industry. It can also help a broad spectrum of different people tackle projects and problems in their everyday lives.
Try it out on a project you are currently working on, and before you know it, you can start to describe yourself as being Agile. Completing a project in small chunks can improve overall adaptability and time management.
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.