Agile IT Methodology

Click on image for larger version

This post is all about IT.  There is no doubt that IT can have a tremendous impact on business, but if IT stuff makes your eyes glass over, might be best to select a different post.

Some Background:

“Waterfall” has been and is still the primary methodology for IT development.   It consists of a series of phases (eg. Strategy, Requirements, Design, Development, Testing) that are each completed in serial in order to reach a release.  The next phase in the series is not started until the previous one has completed and been “accepted”.  

Agile (in a nutshell) is an alternative that seeks to mash all the phases together and iterate through smaller blocks of functionality

Analysis:

Agile has been around since the mid-90’s.  Even with Google leading the charge with the concept of perpetually improving beta, we have not yet seen Agile take over as the de-facto standard.  If you ask the bulk of consultants at large IT shops like IBM or Accenture, they will tell you that they are primarily still using a waterfall methodology.   There are a few conclusions that may be drawn:

  1. Agile is mis-used
  2. Agile is inferior to waterfall
  3. It is difficult to transition from waterfall to agile

re: #1.  I have come across MANY people who say they are using Agile methodology, when in fact they are involved in chaos with no clear direction.  Projects like this give the methodology a bad name.  Just because you are not building huge requirements documents does not mean you are “Agile”.  It just means you are not “Waterfall”. 

re: #2.  I have also come across many IT professionals whom I respect greatly that sing the praises of “Agile” and confirm that their teams are far more effective with that methodology.  That is just proof by example, but likely you can point to similar examples?

re: #3.  I think that adoption difficulties are the crux of the issue.  Agile sounds simple at its core, but to really get it right, requires a lot of attention, a lot of focus, and complete buy-in from the entire team that they are going to interact in different ways than they ever have before.  They have to be willing to open the kimono and let everyone see their issues at all times.   This is a change management challenge.  Teams need to be willing to improve upon the process with each new project and not give up along the journey.

What experiences have you had with Agile?  Why has it not seen wider/faster adoption?

This post was inspired by a phone call that I had with Shaheen Hossain.  He is an Agile/XP coach and a scrum master.

Some resources you might find useful

2 responses to “Agile IT Methodology

  1. Waterfall is no more used than Agile; neither are used in pure form, they are simply models of some concept.

    You state “I have come across MANY people who say they are using Agile methodology, when in fact they are involved in chaos with no clear direction.”

    I would counter that “I have come across MANY people who say they are using SDLC when in fact they are involved in chaos with not clear direction.” I used SDLC becuase no one ever says they use Waterfall.

    OK, so let’s state that you are going to get the requirements upfront for an software systems you have never seen before because it is brand-spanking new. You will need to specify the requirements (we’ll use the SMART method here) as Specific, Measurable, Attributable, Realizable, Traceable. The real problem here is the impossibility of fulfilling this. Let’s take “Specific” information density of the written word does not allow for the fulfillment of “Specific” For instance to specify in words every element of the web page you are viewing would take pages and pages of information, and still would fall short because the delivery mechanism is graphical. So we are really not going to be specific, we might be “representative” or “suggestive” but certainly not specific.

    OK lets go to “Measurable” and let’s talk about performance of this web page. What are all the things one can measure? Pixels? Time to render a display? Size of the elements on the page? Colors? Defects? So everything that can be measured should be measured to meet our “specific” requirement.

    You get the point…for every function, element, item that one can be SMART about one would have to write a huge volume to meet the SMART criteria. In practice people don’t do that, so they give some lightweight idea of where they want to be and figure it out as they go along. They may write some extra “requirements” down as they go, but it is a journey of discovery; not a journey of implementing the SMART requirements.

    So I submit that whatever method you are doing, it isn’t simple and it takes a lot of work to get it right. The only TRUTH I know in the development world is this:
    1. You don’t know what you don’t know,
    2. it takes trial and error to learn what you don’t know,
    3. Winston Royce showed that it takes iterations to get it right and he NEVER promoted a serial model (which we call waterfall) as a working model.

    Bottom line. You are NOT going to specify requirements fully and accurately up front, it will take some iterations to do that no matter how you articulate the requirements. Might as well start the iterations soon, and discover the output early, it will speed discovery if the missed assumptions. Call it what you want, make it as hard as you want, it is all about iterative development; choose your own techique.

  2. Ross, thx so much for your post. I agree with your assessment that waterfall is not being implemented properly in a huge number of cases where that is the methodology. I also think you are right on the money about the inability to describe every detail about something. Having been a business analyst, I know that you must keep BA’s around during development to keep re-opening requirements in order to get clarification on developer questions.

    My hypothesis is that agile is superior partly because it can peel the onion without having to define the inner core from the start. But, that still leaves the question….why do many organizations find it so hard to transition to a high-functioning agile approach?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s