Life in 2016 is vastly different than it was ten years ago thanks to the amazing improvements of software development. In 2006, the iPhone was just a concept in the brain of Steve Jobs. Twttr (Twitter) had just launched, and there were only estimated to be ~85M websites, compared to the nearly 1B websites live today.
It’s hard to imagine life without these technological improvements; however, the software is not the only thing that has improved. The process to develop software has also seen vast improvements through the Agile methodology.
The above image shows the increase in popularity in agile project management
What Is Agile?
Agile is generally a method or a way of thinking. Agile project management in software development relies on a sequence of incremental phases called sprints to complete a project.
Unlike traditional project management techniques (i.e. Waterfall Approach), which define the project scope, costs, and estimated timelines upfront, the Agile method operates on a continuum. It breaks up the project into smaller segments, called sprints, which gives the customer more feedback opportunities throughout the project. It also allows the development team to prioritize key features and continuously implement the latest best practices into each sprint. Sprints typically last between 2-4 weeks.
Image credit: www.adfkickstart.com
The main steps for Agile project management are as follows:
- The comprehensive project is divided into smaller parts.
- The development team works with the customer to prioritize key features to be completed in each sprint.
- As the features are developed, they are continuously tested.
- Following each sprint, the customer reviews the result and relays the feedback back to the development team.
- If approved, the product goes live to the market.
- If upgrades or additional features are needed, the changes move on to the next iteration.
As can be seen above, there is a high level of communication between the development team and the client. (To see how Agile and Waterfall differ, check out this post.)
What Are the Primary Advantages for Agile Projects?
As its name suggests, Agile project management provides a tremendous amount of flexibility. With each release, the customer can see the progress and provide valuable feedback for future iterations. This is much different than traditional project management techniques like the Waterfall method, which waits until the project is almost completed before the the customer is able to review the work.
Agile projects also ensure that complete software testing is accomplished with each sprint as opposed to waiting for testing near the end of the project. This allows the development team to find bugs upfront and correct them as they happen.
Another advantage for the Agile model is that working software is developed within weeks as opposed to months. Since there is an intense focus on smaller chunks of work and a prioritization of key features and functionality, it takes less time to go to market.
What Are the Primary Disadvantages for Agile Projects?
No project management methodology is perfect, and the Agile approach is certainly not without its challenges. If not properly managed, the project could turn into a series of unguided code sprints, causing budget issues and a late delivery.
Agile projects also require a tremendous amount of communication with stakeholders. If the stakeholders do not respond in a timely fashion, the overall process will get bogged down, making it difficult to achieve any progress.
Given the complexity of the Agile model and the need for prioritization, it is recommended that the development team needs to actively and regularly discuss priorities with the Product Owner while doing sprint planning.
When Should You Go With the Agile Model?
Not every project is suitable for the Agile method. Here are a few questions to help in determining whether Agile or Waterfall is best.
Are the end goals crystal clear or is there some ambiguity on the requirements?
If the project’s scope is not crystal clear and could change, then Agile is a good way to go. This model assumes that many business and IT needs are dynamic, making it impossible to know exactly what needs are at the onset of the project.
On the flipside, if the project’s scope is very clear and won’t require revisions, consider using another technique like Waterfall or Kanban.
Is there an aggressive time line for the project?
If the project must be completed quickly, the Agile method does a nice job of prioritizing key features needed, and breaking up the project into bite-sized pieces. Utilizing this approach allows for “quick wins” that are released immediately into the market.
If the project is not time-sensitive, other methods of project management may be sufficient.
Is the team centrally located or geographically dispersed?
There is really no difference here. Some say that it is advantageous for the Agile teams to be centrally located due to the need for constant feedback. Others claim that the Agile methodology is perfect for distributed teams given the fact that there are plenty of online tools to manage conference calls, backlog tasks, etc. What is important to understand is that the project team size should be 5-9 people max to make the Agile approach effective. However, there are scaled Agile methods available out there for bigger teams as well.
When working with software / web development, it is important to consider whether Agile is the way to go or whether traditional project management methods may suffice. Also, if you haven’t already, be sure to check out this post on project management tips for software development.