Sunday, May 29, 2011

Agile – Its more Disciplined than you Think

Sometimes Agile gets branded as being the cowboy methodology. Some folks who say they are Agile, use it as an opportunity to abandon processes and documentation so that they can enjoy the wild west life. These cowboys know that they get away with pretending to be Agile since many folks, particularly their up-line management have no idea of what Agile really is. Some folks like to term whatever they are doing as Agile in order to be on the Agile bandwagon.

However, it is the cowboy and those that want to pretend they are doing Agile that propagated the myth that Agile is an undisciplined approach. Ultimately, these pretenders can give Agile a black eye in the organization and industry since others will believe that Agile means no process, implies an ad hoc approach, and is undisciplined.

For those that have followed the formal approaches of Scrum, Kanban, eXtreme Programming (XP), Test Driven Development (TTD), and more, realize fairly quickly that Agile instills much more rigor and discipline than most cowboys can tolerate and more many some folks realize. Some who follow Scrum for instance, learn quickly that there is much more discipline than they originally thought.
One of the early introductions to Agile practices is Sprint (or iteration) Planning.  Imagine every two, three, or four weeks you revisit the backlog to prioritize it, then scrub each story, size the work, and commit to the work. This is meant to be a rigorous day of really understanding the work for the sprint where typically your brain will hurt upon conclusion of this day-long session!
Now let’s visit the Daily Stand-up sometimes known as the Daily Scrum. Imagine every day that someone asks you 'what you did yesterday' and 'what you are doing today', and “what are your impediments”. Imagine, every day this is occurring! This starts to get you into a laser focus of the work because you don't want to go for too many days saying you accomplished nothing.

Finally imagine that at the end of each sprint, you have to actually have working software per the end of sprint review (aka, demo). This means that within the end of a two, three, or four week sprint (aka, iteration), you need to build a function into a meaningful and viewable piece of functionality for validation by customers (and you cannot show customers junk, can you?). And to add to this, during the sprint each story (aka, requirement) you work on has to meet the rigorous “done criteria”. Done criteria can imply (for example) that each story that is worked on, must be checked out, incrementally designed, coded (following appropriate coding standards), possibly code-reviewed, built, unit tested, checked-in/promoted, merged, integration built, smoke tested, and system tested. Whew, is that enough discipline for you yet? All of this within a sprint so that you can have some tangible to show the customer so that they can validate if you are meeting customer needs.

Or course there are many more rigorous Agile practices. The discipline helps with the productivity and because we are empowered as a team, the discipline ensures we all remain focused on the work. So next time someone says Agile is undisciplined and ad hoc, it is clear that they certainly have never actually done Agile, but more importantly, explain to them the real rigors of Agile and if you have Agile practices occurring, invite them to sit in or participate.


  1. You are true. This article throws away the myth about Agile processes.

    Many Thanks,

  2. I fully agree. Agile gives a team lots of freedom in HOW to accomplish their work. There is little process but you need to be very disciplined in the process you DO have. You can divert from doing things "by the book" as long as you keep to the agile principles. I do suggest starting out strictly by the book because it can be hard to get a feel for where you can do things different without violating these principles and where you can not.

  3. Nice article. That discipline is not required for practicing Agile is a myth. It is such rigorous practices that make Agile successful.

  4. Mario
    I don’t have much experience with Agile, but have found Agile teams to have a very defined set of methods, tools and processes for completing their work.

    For a waterfall process to succeed, a good deal of communication in the form of written documentation is needed so that decisions made in one phase can be recorded and passed to the groups in the next phase. In Agile, the teams appear to be tightly integrated, so their need for and dependence on disciplined documentation is diminished; they can operate without this recorded information as a result of their methods (e.g., scrum) and shorter timelines (sprints).

    Issues arise, especially with regulated environments, when decisions and other communications are not recorded. This works for the teams that are performing the work, but documentation that is required to fulfill regulatory requirements or to support later updates to the software may be lacking.

  5. I wrote about the issue of agile and discipline in 2006. There are constant decision points along the way that require discipline. Discipline is one of the talents of great agile team members.

  6. Mario,
    excellent observations. I will shove your blog entry down the throat of my "cowboy" students. I have tried to tell them, but have not been able to do it as clear and crisp as you do.

    when you eliminate the different roles of the waterfall model and unify (in the XP ideal) the requirements engineer, designer, coder, tester, integrator, QA and more for each story into one single person/pair you also eliminate a lot of hand-overs and communication. I see that as one of the strokes of genious of agile - from a configuration management perspective.

  7. Great article!
    Agile or not, there must be a tangible method, as described, if not, it remains only chat without focus.
    A coherent mix between waterfall and agile method could be the way, but awarness has always to be present.

  8. Great article on Agile disciplines.

  9. I view agile as the art of finding the right balance between discipline and flexibility.

  10. Thanks for your feedback Andrea, Annette, and Anjali! Anjali, I like your comment on "the right balance between discipline and flexibility).

  11. Yes Agile is not a tool, it's a discipline for whole organization to understand the market condition and environment, system thinking.