The beauty of Agile is the fact that its just about a few principles. – which we also summarized in a few words. Everything else is under your control. And on your way from classic waterfall practices to adopting those principles, you are likely to encounter some serious blockers. I’m attempting to list out the top 5 along with the Agile principles that they block.
1. Large teams
Blocks: Velocity, Working together
It is uncommon to have a cross-functional team of teams with 30-50 folks working on the same product. While the Agile deliverable is a few days of work, large teams working on a single release will generate a huge deliverable that is more coupled, has wider impact and demands extensive testing.
2. Fixed-scope planning
Blocks: Working software, Simplicity, Accepting change
Teams that have a fixed-scope mental block start off by committing a scope for the next release, and then estimate a future release date. Since estimates are often incorrect, the release is delayed to deliver the committed scope – which is just not Agile. Forget about changing requirements, folks won’t even drop a few stories or acceptance criteria at the very end, to meet the committed date (time-box) – at the cost of breaking the promise of a few features. Even worse, that you won’t see anything working until the release is out.
Blocks: Environment, Customer Satisfaction
I don’t think this point needs any elaboration. Haven’t we all been part of releases where the QA effort exceeds Development just because a feature touches multiple modules? Dependency highlighting tools can help, but a comprehensive test suite (first for the services, then for the UI) can really speed up releases.
4. Team maturity, mindset & leader’s trust
Blocks: Motivated individuals, Self-organization, Reflection
Agile is a lot about the mindset. It demands a mature, responsible team that can be trusted to self-organize. The organization also needs to trust the team and in return provide an environment conducive to learning & improvising all the time. If the SCRUM Reflection ceremony turns in to a court marshal, folks are never going to be motivated to work, let alone achieve excellence.
This is truly debatable. I’ve contested, but could not convince. Everyone agrees that you can’t manage user stories in a TXT file, code through versioned folders, or test manually. Yet, we fail to accept the importance of tools to being Agile. I do not have preference for any, but I feel there has to be some lean Agile stack that lets smaller teams easily fork & merge code, mark acceptance criteria done (than whole stories) and validate a build in seconds.
Open for discussion.