March 01, 2006
Is your project agile?
To determine if your project is agile answer these questions with a yes or no:
- Is project progress measured by the delivery of working software?
- Does the software have extensive automated unit test coverage?
- Are there multiple integration builds per day that include compilation, unit testing, functional testing and deployment steps?
- Is there a high degree of direct involvement by the business during the development process?
- Is the development effort driven by acceptance tests?
- Do developers spend most of their time collaborating?
- Are planning, analysis, architecture, development, and QA all performed continuously?
- Is there a recently built running system available at all times?
- Is development work delivered in fine-grained units of no more than one month?
An agile project should answer "yes" to almost every question.
Thanks to Derek Walsh and the Australian ThoughtWorkers for the questions; I've edited their original version.
Posted by gsmith at March 1, 2006 10:07 AM
Could you clarify "almost every question"? Are you saying a few of these could have "no" as an answer and still imply an agile project?
Posted by: Avishek Sen Gupta at March 1, 2006 06:38 PM
The list is missing "Do the people involved in the project respect and trust each other?" which I would consider a more fundamental question than the 9 you have listed.
Posted by: Jason Yip at March 1, 2006 07:24 PM
"Agile project" isn't a binary, yes-or-no concept. Different projects have different levels of agility. That's the reason I didn't specify a specific threshold.
The trust and respect question is a poor one for two reasons.
The question is very vague and untestable.
Every project I've been on claims to have trust and mutual respect. The most poisionious teams I've worked in claimed to be working as a team and to be respectful.
Also, teamwork and mutual respect is not something unique to agile projects. Hence, it isn't an indicator of agility.
Posted by: Garrett Smith at March 1, 2006 11:15 PM
2, 3, 6, 7, 8, and 9 (at least) are also not unique to agile projects.
Any questions really depend on what is meant by agile - you've put up some things you, and many others, would mean by "agile". However, the original definers of agile mention nothing about "automated tests" - or even tests at all. They do mention trust. (http://agilemanifesto.org/ and http://agilemanifesto.org/principles.html ).
Many of your questions really boil down to "is your project iterative?" (3, 7, 9 maybe 8).
I'd have to +1 Jason with respect and trust. The fact that people may say they trust and respect each other but really don't is a moot point - you mention that the most poisonous teams you've been on claimed to be trusting and respectful but weren't, so you measured and tested this vague and untestable question and found those teams failed it. "Extensive" (2), "high degree" (4), "recently" (8) are also vague - but the questions are no poorer for that.
I've seen agile questionnaires like this before - I don't think it's something that can be boiled down to 9, or 10 (including Jason's), questions. I've often wondered what the purposes of such questionnaires are... all to often it seems they implicitly serve some sort of mini Agile Certification role.
Nevertheless, some great questions to ask!
Posted by: Colin Kershaw at March 2, 2006 10:15 AM