There are 5 keys to running a successful Agile Transformation, if you nail these you will see you productivity shoot through the roof. Clients ask me "How much of an improvementan I expect?" and I tell them "That depends on how screwed up you are now." But most organizations are working at a small fraction of their potential productivity.
Key #1: Don't focus on "Adopting Agile": That's right, the key to successful adoption of Agile is not Agile itself. No one cares if they are Agile, but they do care if they can deliver more value. So focus on that.
If you want to be successful in your Agile Transformation focus on improving your value delivery, and let Agile be a tool that helps you get there.
Key #2: Build teams. Teams are the secret sauce of Agile. Without teams you cannot hit hyper-productivity - period. Organizations built around doling out tasks to people are squandering 90% of the brainpower. We all want to hire college grads right? Well use that intelligence. Form real, cross functional teams that are aligned to business needs. And as the manifesto says "...trust them to get the work done".
Key #3: Prioritize and Limit WIP: These two feed each other so I clubbed them together. A team working at 50% utilization is 20X more productivity than a team working at 100% utilization. Think about a factory, if all your machines are running at 100% what happens? A bunch of inventory piles up, queues form and you have manage them, inventory gets sale as design changes, quality decreases because people take shortcuts to catch up. The same bad stuff happens in software; half done code is lying around and no one remembers how it works, defects overwhelm the team, we have lists of defects, lists of action items, lists of test feedback, lists, lists, lists.
Key #4: Stop committing to dates: Sometimes there's a date - you need to have your app ready for football season, that's a real date. But dates designed to make sure people are working with urgency; that's false urgency and you're not fooling anyone. What happens when we manage with milestones and dates? Buffering - people pad their estimates, then their managers pad the padded estimate. Your estimate is probably at least 2X the realistic time and if someone overestimated, you will NEVER recoup that time. Say for example you have 3 teams working on a project, they each estimate at 2X, the first two teams finish early so they sneak some other work in, the third team hits a big blocker. Now you're late, you can't leverage the padding of the other two teams to protect the timeline of team #3.
Remove the padding and work on the most important thing at all times. You will deliver more, and you'll deliver it sooner. Yes, you won't have certainty on dates, but let's face it, you don't certainty now.
Key #5: Work top down and bottom up: Leaders need to change the organizational system and behaviors to support a high productivity environment. While at the same time, you need a groundswell of front line people with the courage to work differently. Having teams work differently and show success will feed the top level support. Top level support will help enable teams; and the virtuous cycle will continue.