Sunday, May 29, 2011

Agile – Its more Disciplined than you Think

Agile is known to be an adaptive mindset and approach to conduct work to better align with customer needs.  A side affect and often a myth to this is that some think Agile allows ad-hoc changes and it 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 little idea of what Agile really is. Other 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 bad name 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 Agile approaches of Scrum, Kanban, eXtreme Programming (XP), Test Driven Development (TTD), and more, when done right realize fairly quickly that Agile instills much more rigor and discipline than some folks realize. Some who follow Scrum properly for instance, learn quickly that there is much more discipline than they originally thought.

One of the early introductions to Scrum is Sprint (or iteration) Planning.  Imagine every two weeks you revisit the backlog to reprioritize it, then scrub and design each story, size the work, and commit to the work for the next sprint. 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. First, imagine that you MUST show up on time. This shows your commitment to schedule and respect for others' time. Then imagine you must share 'what you did yesterday' and 'what you are doing today', and “what are your impediments” and not just to the Scrum Master but to each other. Imagine, every day this is occurring! This starts to get you into a laser focus of the work and gets you motivated to get work accomplished.  

Finally imagine that at the end of each sprint, you must have working software per the end of sprint review (aka, demo). This means that within the end of a two-week sprint, you need to build the user story (aka, requirement) into a meaningful and viewable piece of functionality for validation by customers (and you cannot show customers junk, can you?). Remember that Agile takes an empirical approach where progress is based on actual observations and data to understand progress. 

To add to this, during the sprint each story you work on has to meet the rigorous “done criteria”. Done criteria is a commitment that (for example) 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 accountability to really become an empowered team. The discipline also ensures you remain hyper focused on the work. So next time someone says Agile is undisciplined and ad hoc, it is clear that they haven't done Agile as it was meant to be, and more importantly, explain to them the real rigors of Agile when you want to have observable progress. 

11 comments:

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

    Many Thanks,
    Nith

    ReplyDelete
  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.

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

    ReplyDelete
  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.

    ReplyDelete
  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.

    ReplyDelete
  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.

    Barry,
    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.

    ReplyDelete
  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.

    ReplyDelete
  8. Great article on Agile disciplines.

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

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

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

    ReplyDelete