If you are into IT industry, you might have come across the word “Agile”, for sure. Yeah, it’s a buzz everywhere, even you might have heard that the organizations have started their shift. You might even have heard that it speeds up the work, enables team bonding, and makes the client happy. But what exactly is Agile? Let’s dig into it and see what it is all about!
Agile is a MINDSET defined by values, guided by principles and manifested through many different practices. It is a process where teams can handle frequent requirement changes and help organizations through an unpredictable, indefinite, complex and uncertain environment. Few of the software industry leaders in 2001 met at Snowbird ski resort and formulated the term “Agile” and introduced Agile Manifesto to the world. Agile is an umbrella term used for a set of frameworks and practices based on the values and principles (as defined in the manifesto). It focuses on adaptive planning, early delivery, and continuous improvement. The emphasis is on the iterative and incremental delivery along with constant customer interaction.
With the above understanding, it is very obvious that there are advantages in adopting Agile. Let’s look at few:
The biggest being customer satisfaction, where the customer is involved in every step. The customer can provide their early feedback on the product, which the teams can pull for delivery as per the priority.
Time to market - With shorter cycles, the product reaches early to the customers for consumption.
Built-in Quality – With continuous integration, unit testing, peer reviews, automation, etc. the team can drastically improve upon the quality. Working as per the definition of done formulated amongst the team, it helps to stay focused and on track, plus, it also ensures quality.
Lowered Risks – Project working on Agile actually report fewer risks as compared to traditional approaches due to shorter sprint cycles, acceptance to change in requirement during the course, and adapting through customers need.
You may also like: Agile Project Management- Everything you need to know
Though we have a long list for the advantages of Agile but as the saying goes, ‘There are two sides to every coin’, even Agile has its own shortcomings.
Narrow Documentation – In Agile, the focus is on comprehensive documentation, the details are added just-in-time, which sometimes falls back to the teams.
Difficult to predict – When the product is too large, the teams might not be able to predict the end line, the development team cannot predict the complete efforts required for completion.
It is really difficult to predict how the end product will look like because the teams work on the changes in the requirement or the feedback from the clients, this acts a deviation from the original outcome to an extent.
Moving further into our discussion around Agile, let’s look at one of the frameworks’ which is being widely used globally – SCRUM. “Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. “ – Scrum.org
Scrum uses an iterative and incremental model for faster delivery, it has some pre-defined roles and ceremonies which helps teams to collaborate and work towards faster delivery with client satisfaction. It is a lightweight method which is easy to adopt but difficult to master.
As per the survey conducted by Version One, 56% of the organizations have adopted Scrum as their basic model of functioning. Any idea why such a big percentage? For sure, it must be adding some value, so let’s look at a few of them:
Improved Quality – As we have discussed before, the scrum framework under the agile methodology helps improve the quality through frequent checkpoints which can be monitored through the definition of done, use of automation, and peer reviews.
Early Deliveries – Though iterations, the customer can expect something by the end of each iteration.
Early Feedback – Once the customer is able to see the finished product by the sprint, they can provide their feedbacks and accordingly the team can improve upon the product. Hence, it gets easier to work around the changes.
The issues are identified early due to daily scrum meetings where the team discusses about the progress.
You may also like: Top 25 Scrum Master Interview Questions and Answers
With the advantages come the disadvantages too, scrum provides the space for scope creep, as there is no defined end date for the requirements the customer usually demands the changes as and when they see the product. It is only good for small teams but with larger teams, it gets difficult to implement it. It is important for the scrum roles to maintain a balance if the scrum master gets too pushy, it impacts the team and its deliverables. Scrum requires commitment from all the team members, if they are not, the milestones will not be achieved. Hence, as mentioned before as well, it is easy to adopt but difficult to master!
What about the time before Agile was introduced? So, the organizations were using the traditional method, which is popularly known as – Waterfall. But what is waterfall methodology? Waterfall method can also be termed as a linear-sequential life cycle where each phase should end before the next one starts. The phases in the waterfall are lined up as – Requirement analysis – Design – Implementation – Verification – Maintenance. It is best applied when the product definition is clear and the requirements are well known, and another point which is missed usually while adopting waterfall is that the project should be small.
Waterfall was one of the most widely used methods in the software industry because of its simplicity and ease of use, each phase has set predefined entry items and exit deliverables with each phase running through a review process. Another advantage is around the detailed documentation which is included at every phase, this helps during the handoff in the phase transition. Even the clearly defined structure also stands as a benefit, like, requirement gathering, system design, coding, testing, deployment, and maintenance, hence the deliverables are determined early in the process and hence, the teams follow the said steps to attain that goal.
But this method was once very popular and not in today’s time because it had some disadvantages which triggered the lowered its popularity and use. As it is completely based on the phases, there is no space for changes, if any change arises, it disrupts the whole workflow and impacts the timelines. With no intervention of the client during the complete flow, the end result sometimes is not what was expected by the clients. Another setback was due to late testing of the completed code, and if there was any change request, it resulted in a further delay to the testing team.
Kanban – The talk of the town
So far we have talked about Agile, Scrum and waterfall, let’s now touch base with Kanban, which is yet again a powerful framework which is being used largely in IT and Non-IT industries. You might be thinking what is Kanban? It’s a Japanese term which is composed of two words – Kan, meaning visual and Ban meaning board. It is related to lean and just-in-time production. The simple Kanban board has three swim lanes – Requested, In-progress and done.
You may also like: What is Kanban and How is it Useful?
Just by looking at the board, one can tell the status on the items. But how does it work? It visualizes the workflow with the use of boards with cards on it. It focuses on limiting the work in progress at any one time. The entire notion of applying a Kanban system is to create a smooth vigorous flow which means, the movement of work items through the production process.
Disadvantages of Kanban – Kanban gets difficult to apply if there a lot of dependencies among the tasks and it is not suitable for environments which are dynamic in nature. As the tasks are uninterruptedly moved among the columns of Kanban board, the forecast of precise timelines for the finishing point of tasks or activities becomes challenging. Also, it cannot be used as an autonomous tool, it does require other methods to be clubbed before implementation.
Though we have discussed different methods and frameworks, is there any similarity that you can think of? And yes, Scrum and Kanban come under the umbrella term ‘Agile’. So, looking at similar attributes –
In waterfall, the project is divided into phases where each phase has a deliverable and in Agile we have sprints, with each sprint ending up deliverables.
In waterfall, the scope is defined during the initial stage but in Agile, the teams talk about scope in the initial release plan and then in every subsequent sprint planning.
Waterfall has set defined quality procedures, in the same way, agile can have a definition of done with quality parameters
You may also like: PSM vs. CSM vs. PMI-ACP: How can you choose the right agile certification?
To make it simple, let’s have a look at the below table:
In terms of evolution, Waterfall was introduced first in 1970 by Royce, which was quickly picked up by the market. With the shortcomings and pain areas in a waterfall, many industry leaders met in 2001 and coined ‘Agile’ which is an umbrella for several frameworks for quick delivery and customer delight. Over a period of time, Agile has gone through several new versions but the manifesto remains the same. We even now have Modern Agile focusing on Clients and the teams. Though there are several methods and frameworks, by SCRUM leads at the top. More than half of the organizations globally use the Scrum framework for their delivery.
Lastly, I would say, the adoption of methods or framework depends on the type of project and the work involved. Though it is advisable to use waterfall for small projects and Agile-Scrum for complex ones, but, it is all about try, inspect and adapt. For example, a ticketing system would prefer Kanban board over waterfall or scrum or a hotel booking mobile app will opt for Scrum as it would require a lot of client interaction and quicker time to market due to tough competition. It requires a lot of analysis work before suggesting what to adopt and how to adopt. Finally, happy experimenting!