The latest in software engineering practice is Agile, scrum, XP etc, etc. Everyone seems to be doing it. Everywhere you look, this new trend seems to be in rage. 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. Scott Hanselman‘s team is an example of a team that can successfully do agile.
Here are some of the tenets of running an Agile team
1. An agile team may not have a team lead
In theory this is good. If everyone is equally motivated and smart, you dont 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.
2. 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 everyones 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 critisism.
3. 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 disenting will become demotivated and maybe more on. Everyone wins.
4. 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.