Tangential comments about Software Development

Tuesday, September 08, 2009

How To Fail With Agile

Here are the twenty guidelines from How To Fail With Agile: Twenty Tips to Help You Avoid Success, an article by Clinton Keith and Mike Cohn in Better Software Magazine, August 2009. I copied the text from an HTML Version.

I like to use these in the retrospective of a successful project. If it all went well, how did we avoid doing these things?

1-5 are Management Issues, 6-8 are Team Issues, 10-13 are Product Owner Issues, and 14-20 are Process Issues.

  1. Don’t trust the team or agile. Micromanage both your team members and the process.

  2. If agile isn’t a silver bullet,blame agile.

  3. Equate self-managing with self-leading and provide no direction to the team whatsoever.

  4. Ignore the agile practices. They don’t apply to management.

  5. Undermine the team’s belief in agile.

  6. Continually fail to deliver what you committed to deliver during iteration planning.

  7. Cavalierly move work forward from one iteration to the next. It’s good to keep the product owner guessing about what will be delivered.

  8. Do not create cross-functional teams. Put all the testers on one team, all the programmers on another, and so on.

  9. Large projects need large teams. Ignore studies that show productivity decreases with large teams due to increased communication overhead. Since everyone needs to know everything, invite all fifty people to the daily standup.

  10. Don’t communicate a vision for the product to the team or to the other stakeholders.

  11. Don’t pay attention to the progress of each iteration and objectively evaluate the value of that progress.

  12. Replace a plan document with a plan "in your head" that only you know.

  13. Have one person share the roles of ScrumMaster (agile coach) and product owner. In fact, have this person also be an individual contributor on the team.

  14. Start customizing an agile process before you’ve done it by the book.

  15. Drop and customize important agile practices before fully understanding them.

  16. Slavishly follow agile practices without understanding their underlying principles.

  17. Don’t continually improve.

  18. Don’t change the technical practices.

  19. Rather than align pay, incentives, job titles, promotions, and recognition with agile, create incentives for individuals to undermine teamwork and shared responsibility.

  20. Convince yourself that you’ll be able to do all requested work, so the order of your work doesn’t matter.