What I don't like about 'Agile'

20 Apr 2020

If you are working in the software development industry, it would be almost impossible now for you to work in a non 'Agile' environment. 'Agile' has become the de facto standard for developing software and people recommend it as the silver bullet for solving all the issues related to project development. It comes with a suite of proprietary tools and certifications, and created a lot of "new" job positions in the industry.

I myself work in a 'Agile' based software development project and I am a certified 'Agile' practitioner. Rather than belief in the effectiveness of the method, I am forced to put it in my resume because every company in the industry asks for it and I know people who think that they got the job because they are familiar with the tools related to 'Agile' based development.

From my experience in software developing using 'Agile' methodology, I feel that it has grown to a cult like status and lost its meaning in implementation. Now it serves as a cool methodology popularized by all its supporters and there is an implied notion that if you are not following 'Agile', then you are not doing it the correct way. In my opinion, now it just generates lot of data including senseless charts, meaningless jargons and a whole bunch of 'certified' people who act as the shepherds for the wandering developers. The management finds lot of happiness in analyzing these data and they are able to put a tighter watch on the developers from a single dashboard. Since the managers are looking for more data, the developers have also evolved themselves to generate meaningless data which is highly diverging from the actual progress of the project or the time required to finish it. This seems like a minor problem but this generates a wide gap in the sincerity or integrity, the developer must have towards a project and the 'Agile' practice is not helping it effectively. It has become a fake process to keep the sprint charts and velocity graphs in a clean way. I will briefly explain below the main reasons for my disagreement with 'Agile'.

Put a copyright on common sense

If you think about Agile in a detailed manner, you'd see that it didn't bring anything new to the table except a barrage of useless jargons and charts. The core principle of 'Agile' is to iterate fast, test continuously and adapt to the environment. I don't see anything new here. This seems like common sense to me. This is how we learn or develop anything. This is how we learned topics in school. For example, each subject will be divided into smaller modules and we are supposed to learn the modules in a sequential manner, and at the end of each module, there will be a set of test questions based on the previous module. If you are not able to answer those, you are supposed to revise the module again. How can you brand this idea as a new one and create a proprietary platform on top of it? When you introduce a new method, there should be something novel about it. I am missing that part in the case of 'Agile'.

Demonized competing methodologies

Agile has achieved a cult status to such an extent that if anyone dares to say anything against it, it is considered as heresy. If someone had accidentally mentioned 'waterfall method', he/she would be considered as a follower of Satan. 'Agile' has started as a strategy for developing small projects with small teams and now it has grown as the default standard for all kinds of projects. I agree that it works for some projects, but I have seen it failing miserably in many projects. I feel sympathetic to all those project managers who struggle to fit 'Agile' in their projects, where it is not actually required. People should adopt methodologies suiting their requirements and should not follow any methodology blindly.

Universal defense by saying everything is flexible

The proponents of 'Agile' will find numerous issues with the competing methodologies. But at the same time, if anyone raises any issue with the 'Agile' methodology, they have a universal excuse that 'Agile' is flexible and it can be suited according to your needs. It has to be understood that there is no single solution for the different problems related to software development. Everyone has to adopt the gists from different methodologies and adapt it to their own requirements. The issue is that the proponents of 'Agile' won't give the same leniency to other methodologies if it is not fitting for the situation. This has created a false impression that 'Agile' is the 'one size fits all' solution for all the project development issues.

Suite of proprietary tools and certifications

If a software development methodology is tied to a set of proprietary tools and a group of certified professionals who are getting financially benefitted by the adoption of it, then it is not a transparent one in my opinion. The 'Agile' industry has become a money minting machine with their tools and certifications. Several new roles have cropped in the software development team and the companies sometimes have to recruit certified practitioners from outside to ensure that 'Agile' methodology is being followed in the project. This has introduced a bunch of people to the team who are completely unaware of the details of the projects, but has a significant authority in guiding the project progress. It doesn't make any sense. These roles should ideally limit to as an extra responsibility of the person who is managing the project and should not introduce a total stranger to the project just to comply with 'Agile' practice. This is an unwanted overhead and it often leads to the degradation of team dynamics and deviation from the project goal.

As a final note, I want to imply that I am not against taking the good ideas from 'Agile' methodology, but I despise being brandished as a cult member and forced to live with that label in order to survive in the industry.