Let’s say that your enterprise decides to give agile software development a try. They select Scrum as the preferred agile approach (though it could also be Kanban, Lean or XP). They decide to try a pilot project rather than changing the entire company at once.
A pilot project is selected; not just any project but one that seems most likely to succeed using Scrum. A team is hand picked and assembled to work on the project. Similarly, the team consists of people most likely to succeed using Scrum.
Do you see where this is going?
The project will be successful by definition. The team will be nurtured, obstacles will be cleared, and acceptance criteria will be adjusted as needed. The company concludes that Scrum really works! But does it? Would any software development approach have worked just as well under such circumstances?
Now things will start to go terribly wrong. The company decides that because the pilot was so successful they should roll out Scrum more broadly. Of course, they will need to make some adjustments so that Scrum fits the way the company does business. They decide to implement Scrum — but — tailor it to their needs. (In other words, make Scrum more like waterfall.)
They define a hybrid development approach. For example, teams will create business requirements documents, functional specifications, class diagrams, and other development artifacts. Then, they’ll use Scrum to write and unit test the code followed by a formal software quality assurance period at the end — water-scrum-but-fall — the worst of all worlds.
Don’t stack the deck.
Adopting Scrum (or any agile approach) successfully, demands organizational and cultural change. These types of fundamental transitions are very hard to achieve. Success depends on active participation by senior and executive managers. Agile development really should be applied to a software product line or software-based service, not to a single project.
Trying to force agile from the bottom up won’t work. There will be formidable resistance to change. #fail
Modifying agile to make it fit the environment won’t work either. You’ll end up with a hybrid development approach that no one will be able to fully understand and follow. #fail
Enterprise agile is a mindset. It takes commitment and dedication. Training, coaching and mentoring will also help. Know what you are getting into and do it right — or don’t bother.