5/01/2007

Agile or not agile ...

In this article Alistair Cockburn describes that the word "agil" is used in projects that do not work agile. His Top 10 hints how you know that your project is not agile:

1. The team is co-located, but people are not sitting within the length of a school bus to each other.
2. They're distributed, and there is an absence of microphones and webcams and one or two meetings a day.
3. They have not delivered anything to real users in the last three months. Some of my agile friends would say that's much too long, but I'm being generous there.
4. If no user has seen real running software inside the last month.
5. They don't have the output of last month's reflection workshop or retrospective on the wall.
6. They don't have fully automated unit tests, and a large number of acceptance tests aren't automated.
7. They're not having a build integration at least once day. Good groups do it every half hour; there are groups that get away with it every other day.
8. They write big requirements documents, and they don't know how to split those up into smaller pieces so they could deliver a piece of software every month.
9. They have itty-bitty requirements on the order of "here's what happens when you click here," but they don't have long-term vision for what they're trying to accomplish.
10. People keep saying, "It's not my job." One of the things about proper agile development is that there is group accountability for results. Very specifically, if the requirements are not coming in fast enough, whoever has a bit of spare time (programmers, testers, etc.) drops what they're doing and helps gather requirements; if tests aren't getting done, people with some spare capacity help test and so on.

Nice!

No comments: