Is Agile Overhyped?

Notice the big 'A' in 'Agile' on the title? Yes that is right, it is not an adjective anymore but a a noun and with capital! The meaning has unfortunately shifted especially in software industry to indicate the development process and practical practices to produce quality software. Really? So without it developers would produce bad software? I might oversimplify the definition, but at least that is my impression from the Agile 'preachers'.

Name me several software which hold significant impact born from Agile methodology? I gave myself a few minutes and I could not recall. But I find it easy to list software which in my opinion would never be invented in Agile environment. Take as an example - Linux kernel. It was originated by a student who was passionate about making better operating system than what was offered in his time. He is the legendary Linus Torvalds. Also big credit goes to a group of developers on voluntary basis to improve the original version. Linux has dominated the OS industry in all areas except PC, not because Linux is bad as PC OS, but simply most users do not want to buy PC and install OS by themselves. Another example facebook which was originally developed by a software genius Harvard student. Just to add on to the list: Microsoft, Unix, C, C++, golang, gcc etc.

I do not hold anything against Agile from principle perspective because they sound wonderful. My 'grudge' is against what I witness on the field especially from the perspective of a developer who has direct contribution to the code committed to the release. My concerns start the moment I witness the shift of the Agile's perception from a set of manifesto to build good software to a set of formalities which need to be strictly followed. It is basically the shifting of original meaning of 'agile' from adjective to noun and with big 'A'!

One time I was in a daily standup meeting and we have a visitor - the Agile coach. The coach preached it was wonderful to adopt Agile methodology as it avoided micro management etc. That was spoken in a standup meeting where product owner who attend it on daily basis asking the status of 'ticket' of every developer was working on. "Have you done this? have you done that? can you finish the task on time? While waiting for code review, what are you doing? can I add task?" I resent this treatment! We already have a sprint goal as a contract between developers and PO to focus on during sprint duration why to extend this status checking on daily basis? Not only it is micro management, worse still now it is legalized by the 'Agile' methodology - isn't ironic. Of course an expert might say, a product owner is encouraged not to attend daily stand up meeting which raise another frustration. I was once shouted at by a scrum master simply because I missed her daily meeting call via chat as I wanted to focus and hide my chat notification. It was 10 a.m. morning which was my optimal effective time, now taken from a 'more' important thing - stand up meeting. When things go bad, it is because not Agile enough, when things are good, it is because people do Agile. Do the Agile coach want to deal what is ideal or address what is in reality?

Many meeting now are talking about estimation in hours/day/story point, ticket assignment, sprint velocity, burn chart etc. It is a rare sight to see people simply discuss how to make great software, how to code better, drawing and discussing software architecture on white board - simply focusing to make better product. Sadly it is becoming process oriented rather than product oriented. As a developer, it is hard to focus writing good software with so many interruptions from the formalities.

My point is this, eventually a software is good not because of a process rather because of the people. The quality of software will never go beyond the quality of the people. Does it mean process is useless? By no mean No! Process is crucial, a good people adopt good and accountable process. But process is supposed to help people not the other way around, we make a process to enforce people to fit in to that. A process is like a tool, is a mean to help people to do the job, but in itself is not the final goal.

So if the team in their good conscience think that daily standup meeting is over kill, for example for a project with relatively less uncertainty, I see why not do it say twice a week or so on. After all, if one want to discuss with team mate, they can meet directly outside stand up meeting when needed. Administration for ticket task assignment should be kept minimum not to the point one person is doing full time job on that example as a scrum master. I personally believe scrum master should code as well instead of just facilitating Agile formalities.

There has been so much investment done by organization to enroll Agile. If the top management keep receiving good overview of the Agile approach but you have so many 'grudges' on the field from developers (e.g. many resignations), there is a serious gap, management should seriously reflect on it.

At last, whatever the process, whether you name it as Agile or others, I don't care. As long as process help people to develop good product than it is good process, not necessarily must be within the umbrella of 'Agile' name. People first!


要查看或添加评论,请登录

Babang Parhusip的更多文章

社区洞察

其他会员也浏览了