In today's world donkey work is not acceptable, and work must be done with management or by keeping some architecture. Agile gives you the freedom to work with management and architecture.
Below are a few summarized advantages of Agile,
Agile keeps everyone in the project in the loop
The reason behind this is Agile works with the principle of collaboration and cooperation among teams and stakeholders, which keeps everyone updated, because everyone needs every other person's help or suggestion for any period of time, and everyone is excited to see what’s happening with the task which he or she has finished.
Directly working with product owner
This gives a sense of ownership to the team. This is different from most non-Agile projects, where the project manager is responsible for assigning the work to teams, or even to team members.
Handling of testing
Unlike waterfall where the testing starts only when the development is completed, in Agile testing starts as soon as we are ready with the requirements. Its helps in regular inspection of the working product as it is developed.
Quality of product
As everyone is in touch with the project, the quality of product is much better. Since developers, testing team etc., and also product owners are continuously in touch; minor changes or errors found with live data is possible and that improves the quality of product.
Implementation can be on time or early in the market
Since people involved in the project keep developing as well as updating the product on a regular basis, implementation of a quality product can be on time or early in the market.
As collaboration and cooperation is a daily part of the team, team finds more fun and activity while working.
Even having plenty of advantages, developers are unhappy with Agile.
- Developers feel people from outside teams are trying to be master and treating them as a slave, as Agile looks like a part of management even it's not, and developers hate getting managed.
- Things get worse when daily meetings end with talking about how little has been done, and actually this is never the intended purpose of the masters (Agile).
- As Agile focuses on daily interaction with items developed by teams, teams feel that this regular delivery of items is time consuming rather than finishing a product with testing.
- It's often reported, that the sprints are too short and there is no time to even gather full documentation before writing the code, not to mention looking it over once it is done. So, if working under high time pressure wasn't enough, the developers also need to cope with knowing that really, they only have one shot at getting it right.
- As an Agile person, your programmer may think that you're making them do it the wrong way but your way is right
- Even though Agile has been thought out as a programming approach by programmers themselves — not project managers, the difference between Agile as designed and Agile as used makes it more project management oriented.
There are pros and cons in every management style, traditional waterfall methods have their own advantages with disadvantages too. People who like to work with open environments generally follow Agile, and people who like or believe in a step by step approach follow waterfall. After all it’s our choice.