Agile is Everywhere!
If you are into the world of software, then you would have heard the word “Agile” from every corner. Everyone from marketing to the support team is discussing Agile techniques being implemented in their work. Its popularity has grown at a fast rate, and the Agile methodology is no more limited to software development, it is being adopted by professionals across various industries.
How is agile different from the other project management techniques? What does it really mean? How is it benefiting organizations? Any other agile related questions? Continue reading, and you will find your answers.
When you say, agile people immediately associate with collaborative work, continuous delivery, faster feedback or quick adoption.
To give you a brief history, In 2001, seventeen software developers came together at the Snowbird Ski Resort in Utah to create the Agile Manifesto from where the term Agile came in, and it has become a business buzz word.
So, coming to what Agile really means.
Agile is a customer-oriented approach focused on optimum customer satisfaction.
Agile is iterative, which means it is done in pieces called sprints.
Agile is about effective communication between developers and clients.
Thus, Agile projects make the project team capable of dealing with frequent changes in product requirements at any stage in the project. This ensures that you survive and thrive to keep up the pace with the changing environments ensuring customer satisfaction.
Agile provides the organizations an edge to quickly incorporate any changes in initial scope at any stage later in the product development cycle with the collaboration between business people & development team.
This article uncovers some of the myths about Agile Project Management and entails the pros & cons of agile method. If you are taking up projects in an agile environment or aspiring to make your career in agile oriented roles, this article is worth reading.
Agile project management deals with managing projects, where project requirements change anytime or where requirements are not fixed upfront. Especially, in software industries, requirements on software development cannot be fixed. We need a flexible project management approach to respond to any changes in customers or market needs at any stage in the development project.
That’s why agile project management became the need for software development projects.
Image Source: https://commons.wikimedia.org/wiki/File:Scrum_process.svg
Figure 1: Agile process steps (Courtesy Scrum process)
An agile process passes through the following steps:
1. Determine the product vision:
The product owner identifies the product vision by defining product evolution. Product owner aligns product development project to the organizational strategies.
2. Define the product roadmap:
Here, the product owner defines the high-level product requirements derived from product vision. These requirements are prioritized and assigned the timelines.
3. Create the release plan:
Based on product roadmap, sprints are scheduled, and a product release plan is created. Sprints are the iterations and release plan decides on how much needs to be developed and how long it would take to develop a releasable product.
4. Establish the iterations or sprints in the release & execute them:
For each sprint, requirements are picked into sprint backlog from the prioritized product backlog. Sprints are carried out to support the product roadmap. A sprint cycle is 2 – 4 weeks long.
5. Hold daily stand up meetings or scrums:
Each day, the project team meets to set the current day plan and discuss the last day hurdles. These meetings last for 15 – 20 minutes daily and are called scrums.
6. Hold review at the end of each sprint:
At the end of each sprint, a review takes place on the released version of the product or deliverable. The team collects feedbacks or retrospectives on this incremental development or product.
7. Execute retrospectives for the sprints:
Based on the retrospectives received from stakeholder or product owner for the previous sprint, lessons learned are captured. If correction is required in the sprint deliverable, they are improved in the next cycle of the sprint.
8. Repeat steps 4 to 7:
Repeat steps 4 to 7 until the team addresses all the backlog items in the final releasable product.
Let’s understand the agile values and principles laid down by the Seventeen developers that guide us to an iterative and people-centric approach.
Value Individuals & Interactions than applying processes & tools.
Working Software over preparing extensive documentation.
Customer Collaboration in place of negotiating contracts.
Responding to change instead of getting glued to the rigid plans.
The 12 principles suggested in the Agile Manifesto that guides agile project management today:
Customer satisfaction is paramount and can be achieved by fast & continuous product delivery.
To address the customer’s competitive advantage, the agile process remains flexible. So it accommodates changes even in later stages of product development.
Frequent delivery of the fully functional product within a shorter span.
The collaboration of team & business people on a routine basis is important for agile projects.
Empower the team & prepare them as a motivated self-organizing team of individuals.
Face-to-face conversation is encouraged within the team to convey information efficiently & effectively.
Agile project progress is primarily measured as a working product.
Sustainable development with indefinite constant pace is the backbone for an agile process.
Incessant pursuit to technical & design excellence increases development agility.
Simplicity is indispensable.
Self-organizing development teams develop the best design & architectures.
Team seeks to become more effective periodically and accordingly, adopts & adjusts its way of working.
In today’s scenario, due to dynamic market needs, we cannot afford to fix the product scope at the initial stage of the projects. Competition is too high nowadays thus, leaving the final product at stake. If necessary, intermittent changes are ignored.
The ultimate objective of agile product development is to accommodate any changes in the product features based on current market needs and by promoting team collaboration and customer focus.
Difference between Agile and Traditional Development
Agile is highly flexible in comparison to other project management methodologies. Unlike traditional or waterfall project methods, agile provides an opportunity for the team to incorporate any changes in the initial project scope or product features at any stage of the project. On the contrary, traditional models are more rigid. They don’t allow any changes in requirements at intermediate stages in the project.
Product stakeholders are given due consideration in product development to satisfy their current & changing needs. While traditional development models consider fixed initial requirements in the product they don’t provide any flexibility to the stakeholders to address any scope change later in the project life cycle.
According to scrum alliance, in a typical agile project environment, we have 3 key roles:
They are responsible for envisioning the product evolution and managing the product backlog. They ensure the product vision alignment with the business objectives and strategies. They also prepare product backlog and prioritize backlog items to meet current market needs.
Scrum master acts more like a facilitator. He ensures the scrum team to follow Scrum values, principles, rules and practices. Hence, he helps the project team & organization to adhere to agile rules & principles throughout the project.
They are self-organizing teams. The development team works on the sprint backlogs derived from product backlogs. They have all the skills & expertise to develop releasable products or product increments based on backlog & product vision. They remain in constant touch with Scrum master and product owner.
The following are common & well-accepted practices in agile projects:
4. Extreme programming (XP), &
5. Test-driven development (TDD)
Having discussed the multiple benefits of agile, let’s understand some limitations of agile methodologies – cons of agile:
a) Agile doesn’t encourage much documentation. The agile approach is based on quick responses to any changes. Hence, sometimes it misses out the opportunities to document the learning. That can be leveraged in some future similar projects.
b) Short daily scrum meetings sometimes become the pain to the development team. Because these daily scrums eat away their productive time which they could have utilized for development work. Some organizations relook into scrum frequency and alter it as per the need.
c) Initial product scope is not fixed in agile projects. This can lead to never-ending demand of stakeholders on the product features with too much iteration. Sometimes it becomes difficult for the team to satiate the stakeholder’s requirements even after multiple iterations.
Agile project management software is the best tool for track agile project metrics, report & communicate the agile project status and identify & remove project obstacles.
Following are the most common & useful agile project management software:
Agilo for Scrum
Atlassian Jira + Agile
However, the success of an agile project cannot be guaranteed only by software. These softwares assist the project team to execute the agile project effectively.
In a nutshell, agile is the demand of today and also the future. As now organizations are embracing agile to keep up the pace with dynamic market & stakeholder’s needs. Hence, the demand for agile practitioners & certified agile professionals is likely to increase.
As per PMI – the pulse of the profession 2018, organizations are rapidly adopting agile approaches. This agile adoption rate is increasing year on year and is expected to grow further in the future.
Image Source: PMI Pulse of the profession, 2018
Figure 2: Comparison of the agile practitioner with other Project management methodologies
Real – life examples such as,
Build your own meal concept of Subway & Chipotle
Baseball game analogy
Apple genius bar;
are some of the well-known examples of the agile process.
Today, the application of an agile approach is not only restricted to the software industry, but also other sectors including manufacturing are also adopting agile practices.
Hence, the future scope of agile certification is rewarding and promising.