Re-posting from my previous blog. Minor edits. Still relevant.
Agile and its variation are firmly entrenched. Especially in IT services. Don't get me wrong. This post is not dissing the practice. If done right and pragmatically, Agile is the way to go. The theory is good. No not just good, but great! The issue is practice. It is one thing to come up with a good idea, but without execution, that's what it is - a good idea. End of story.
In my opinion, agile scrum does not work. Having made that provocative statement, let me qualify it. Agile does not work if the team practicing it does not have guts. You need passionate, self-motivated people to make agile a success. Else, all you are doing is going fast nowhere and telling stories.
Here are some of the tenets of running an Agile team
An agile team may not have a team lead In theory this is good. If everyone is equally motivated and smart, you don't need a task assigner or team leader. The team understands the needs and just gets it done. Team members look at the scrum board, pull tasks, swarm around blocks and keep moving the stones up the pyramids. Great things are accomplished by great teams. However, there are only so many good people. The minute you put more than 2 mediocre people, you bring in politics. People start finding all kinds of excuses to why something cannot or could not be done. For mediocre people only sticks work.
Every team member is accountable to the team. Everyone is empowered. Again, a great idea. If everyone is honest, no one will feel threatened. Smart people treat one another with respect. To use the cliche, with empowerment comes responsibility. Most agile teams start out to have daily stand-up meetings. However these meetings pretty soon devolve into status meetings which waste everyone's time. Everyone shows up. Blurts out what they did yesterday, what they might do today and there never is any block. None whatsoever. No one questions anything. Just get it over with. When it's everyone's responsibility to be accountable and call out, it becomes no one's responsibility. You scratch my back and I'll scratch yours. This is why you need gutsy team members. Team members who have the guts to call out others and team members who have the guts to take criticism.
An agile process will weed out weak players because process shines the light on such players For this to really work, you need honest, motivated people. Put together a bunch of mediocre people, and you will get what you measure. Everyone will start working toward satisfying the measurements. The manager uses a magic formula to deem that a team of 5 people can deliver X number of story points. Weak teams will tell stories that magically add up to X. Writing a Hello World program will magically get an "8" and you add 8 more such story points, you already exceed X. Now you are looking awesome. Because mediocre team players are good at playing politics, everyone scratches everyone's back. Dissenting voices will be frowned upon and soon those dissenting will become demotivated and maybe move on. Everyone wins.
5-6 is the ideal number for the team size This one size fits all teams in a large project is not fair. Some team members work well and some don't. Human dynamics and interactions are complex expecially when survival is at stake as is the case with mediocre team members. So for some teams, 3 may be the optimal size where as 6 may work better with another. Teams are supposed to be dynamic in constitution but that will work only if we have a bunch of top-notch folks
So, do you have the guts to do agile? I hope so. And, good luck.