This is one of the more annoying questions I get. Nothing against the people that ask this question. It’s a perfectly reasonable question for someone to ask. However, for me, the implication of this question can be off putting. It’s as if some people think there’s an Agile committee waiting to sign off on whether a project is “Agile” or not. Who knows, maybe there is at their company?? <tangent>Reminds me of the CMMI. Nothing against CMMI — that is, if you like paying lots of money for someone to tell you nothing about whether you can deliver functioning software.</tangent>
On with the story…
Recently, someone asked me: “If we’re not doing TDD, is our project ‘Agile’?” First, why is it relevant if someone else considers your project to be Agile or not? Second, and how I answered this particular “developer testing” question was that it depends upon whether you want to learn about a defect as soon as it’s introduced when combined with a Continuous Integration system. Or…whether you want to learn quickly that a new feature caused a previously implemented component to break. To me, that’s more relevant. Not whether you’re “Agile” or not - in this context. In my experience, this question is often not about whether it’s in the “box” called Agile (a fine question, by my standards), but, instead, whether someone else would “label” me/my project as Agile or not. To me, this is an important subtlety as it makes me think they’re looking at it like it’s a checkbox rather than a way to improve software development. So, I guess I’d feel better if they’d ask me “Paul, what is the value of the test-driven development practice in the context of the Agile methodology?” or “Name some problems when using TDD”. Now, we’re getting somewhere.
I appreciate, use and advocate many, but not all, of the “Agile” practices because they make sense to me and the teams I’ve worked with. Personally, I probably lean more toward the “collection of best practices” approach (used in context) than pure methodologist. Furthermore, I’ve adapted (agile, no?) these practices based on the team environment and skill sets. For example, I’ve started teams out with a daily build because I felt that Continuous Integration was going to be too much for this particular team — at first. After a few weeks, we moved to Continuous Integration with compilation and unit tests. Later we added inspections and deployment and so on.
Let me beat my point into the ground…For instance, I believe that running a scheduled build that occurs once an hour is not “Continuous Integration”. However, how much does it really matter if it’s called “Continuous Integration” (I consider this to be “Scheduled Integration”)? I mean, will the authors of Continuous Integration use you as an example in the 2nd edition of the book? Let’s, instead, discuss the pluses and minuses of this approach. A minus, to me, is that a build runs regardless of whether you committed a change to your version control repository (seems like waste to me). Another minus is that it could distract you from something you are working on if it fails. However, there are a lot of pluses to it. For instance, as long as you’re keeping up with it , you’re ensuring your software is building successfully on a periodic basis and you’re learning about this more often than alternatives (such as 1) never 2) weekly 3) daily, etc.)
Don’t miss my point, labels do matter. In fact, my company helps teams optimize Agile software production . I appreciate and believe in the value of wrapping a word/label around something (e.g. “Agile”, “SCRUM”, “Unctuous” and so on) Further, it can help you determine what a practice/methodology is and what it is not. But, utilize the practice because it makes sense not because some “thought leader” told you that you better do this or I won’t consider you “Agile” (Look into my eyes…now at the swinging watch…you muuuust listen to me on this one
). Also, I think some are hesitant to say “well, it depends” because they may be afraid that people won’t follow their advice. Oh, if “they” could only see it my way…

June 6th, 2007 at 10:06 am
VersionOne, an ALM provider, recently gave the top ten reasons you might NOT be agile:
(1) The “Send/Receive” and “Save As” buttons initiate most team communications.
(2) Your whiteboards are mostly white.
(3) “Test-driven” still refers to your car.
(4) You don’t yet know what PHB stands for.
(5) You know what CPM stands for, and continue to rely upon it.
(6) You spend more time trying to manage project dependencies than remove them.
(7) Someone still believes in the “Can’t Chart.” (Oops, that’s the Gantt chart.)
(8) Developers only develop, testers only test and managers just manage.
(9) Simplicity is presumed to be simple.
(10) A change control board meets…ever.
For my money, numbers eight and nine are insightful and important. Regardless, this list shows how difficult it is to say what Agile *is* or *isn’t*.
June 6th, 2007 at 1:38 pm
Nice post. You’ve hit on a pet peeve on mine as well. Measuring “Agility” misses the point - it’s about improving the effectiveness of a software team, not checking boxes or getting approval from an Agile coach.
I ranted about this a while ago here:
http://www.extremeplanner.com/blog/2006/09/how-agile-is-your-development-process.html
June 6th, 2007 at 2:21 pm
I like your post as well, Dave. Thanks for sharing it - Paul
June 7th, 2007 at 7:47 am
[…] Test Early: “Am I Agile or Not?” This is one of the more annoying questions I get. Nothing against the people that ask this question. It’s a perfectly reasonable question for someone to ask. However, for me, the implication of this question can be off putting. It’s as if some people think there’s an Agile committee waiting to sign off on whether a project is “Agile” or not. […]
June 26th, 2007 at 11:16 am
[…] I think that this is because Agile is falling into the commercialization trap. In an effort to get acceptance in corporate centers, as well as provide a bit of control over the system, there is an increasing standardization of what constitutes an “Agile” practice. The classic example of this is the Certified Scrum Master course, which has gotten a reputation as another meaningless three-letter certification purchased by management consultants. By putting one of these people in place, businesses can check off Agile development on their buzzword bingo card without actually adopting the paradigm that makes it so powerful. So then you have people on “Agile” projects which don’t really resemble much different than normal business practices. This is also where you get the confused people who wonder if they’re Agile or not. […]
July 17th, 2007 at 6:12 pm
[…] Here is an article worth reading on this topic: Am I agile? […]
July 25th, 2007 at 7:11 pm
Great post on such a tough subject. Seems like everyone is trying to get their arms around agile and it’s informative posts and articles like this one that help us with additional opinions, insights, points of view and overall information. Thanks for sharing!
October 8th, 2007 at 8:04 pm
Nice post, But I do ask people about their development methodology before joining them, And I don’t look for Agile in particular, to me what matters is what really gives me quickest feedback.
As a side note, I’m your regular reader both disco blog and here, I really like the way you write. Keep it up.