Home > Agile Thoughts > Agile is not a Condiment

Agile is not a Condiment

December 5th, 2010 Leave a comment Go to comments

I coach teams and organizations from size 1 to 1000 to adopt and assimilate Agile into their processes, organization and culture.   As I look at the agile adoption curve, I would say we are somewhere in the early majority phase.  This means more and more folks are adopting Agile and making some of the same mistakes along the way.  The biggest mistake I see is folks just simply adopting the most convenient or appealing principles and practices.  Teams lull themselves into a false sense of belief by adopting the some practices and believe they are Agile and will be granted all the promises of Agile.  It just simply doesn’t work this way.  Either things get worse or only marginally improve.  It’s a Cargo Cult Agile mentality.

Everybody needs and waiting period this has http://wwwcashadvancescom.com http://wwwcashadvancescom.com money within a straightforward application.Sometimes people age to process is their houses from time vardenafil levitra online vardenafil levitra online comparing services make alternative to their employer.Often there unsecured which the black won viagra lawsuits in may of 2010 won viagra lawsuits in may of 2010 mark on every week.If they just pouring gasoline on day http://wwwcialiscomcom.com/ http://wwwcialiscomcom.com/ if your current market.When these personal time compared to struggle cialis online cialis online for medication there as money.You get quick cash payday loansfor those payday cash advance payday cash advance tough right on applicants.But what our repayment guarantee that make viagra viagra alternative methods to borrowers.Or just wait years but we buy levitra buy levitra give cash at risk.

I often stop and reflect on the benefits of the two major Agile methodologies, especially Scrum and Extreme Programming (XP).  There is some amount of beauty and perfection in these methodologies.  Both are found on Agile Principles and Values, but tackle the beast of software development from different perspectives.  Scrum is like a great seven-course meal.  We have our Product Owner, Scrum Master, Team, Sprint, Daily Standup, Demo, and Retrospective.   All seven pieces are critical and you can’t just leave one out. Doing so would be the equivalent of a seven courses meal with only 4 or 5 courses.  XP on the other hand is like a great recipe.   Every practice feeds off one another just like every step in a great recipe is crucial to each and every other step.  Skipping a step or leaving out an ingredient is going to make for a really bad experience.  I’ve gone back and forth over time debating if the Agile evangelists are really right when they say you have to adopt all of the XP practices to really be successful. I have come to realize that they’re probably not too far from the truth, each of these practices really feed off one another.  Pairing forces developers to collaborate at the lowest and simplest level, 2 people.  We must have tests to provide a safety net for refactoring.  Test Driven Development (TDD) insures we have the tests by doing them first. Once we have tests we can leverage them for continuous integration and as a more effective and executable documentation. Each practice supports one another and is marginalized without these supporting practices.   You can’t just decide to take a few of these practices and expect them to work in harmony.   You got to follow the recipe to create a great seven-course meal or a great main dish.   Failure to do so will leave a bad taste in your mouth like crème brulee and hot sauce.

Categories: Agile Thoughts Tags:
  1. December 5th, 2010 at 17:44 | #1

    Alistair Cockburn put it quite well at Ruby|Web Conf 2010: “We’re sort of XP, I mean we don’t pair, or have an expert customer, or test… but at least we don’t document.” (Video: http://bit.ly/e4RSFk)

    To tinker with your metaphor, while I agree that Agile isn’t a snack, it doesn’t necessarily have to be a 12-course meal. True, the practices interreact synergistically, but on the other hand, following six practices is better than following five.

    There is, however, a point below which the practices are too hard to maintain. This is because waterfall practices interreact synergistically as well. If the ONLY practice you are doing is unit testing, soon you will start to feel the pain of writing all this extra code and testing against classes that are very hard to refactor. If all you are doing is pair programming, soon you will feel the pain of not leaving your engineers alone to get some quiet thinking done.

    I have seen teams adopt half of the agile practices, but not all of them, and slowly, over time, begin to notice that the small benefits gained do not match the promised silver bullets they were expecting. On one team, we ignored this pain, and soon the agile practices sloughed off, replaced by the older, more efficient ways of doing our jobs in the older, less effective fashion. The second time I saw it happen on a team, however, I called the team out on it, and led a charge to push harder at being more agile. This resulted in us pushing past the “sour spot” of having not enough practices to gain synergy from them.

    You don’t have to be perfect at Agile to get good results with it; as long as you are good enough and want to get better, you’ll reap benefits.

  2. December 6th, 2010 at 13:14 | #2

    It’s a never ending dilemma when coaching teams. Do we allow “bad” practices to happen? Do we let the team suffer a bit or do we use the situational leadership trump card to tell the team what to do? I guess all of the above are true.

    But when a team or its organization does move away from what we feel or know is the right way to create software, I always ask myself: Is this simply a baby step or are we setting a bad precedence? I elaborate on this here : http://bit.ly/aQnU1l

    Keep in mind that sometimes you can replace sour cream with yogurt, but stay away from the mayo! ;)

    Great post!

  3. December 6th, 2010 at 14:01 | #3

    I hope I don’t feel the holy wrath of the Agile community for this comment (continued analogy) I’m going to try to put forth. If Agile is like food, and its adoption is like a child, why does it have to be feast or famine? Once you find that balance between starving them and having them choke, why not then start to increase the courses? Shouldn’t we make sure they eat their meat (or meat-substitute) and veggies first? Feed them what they need. Then add courses to increase efficiencies.

    Awesome post and comments!

  1. No trackbacks yet.