Agile Is Not Another Form Of Waterfall

How many of you guys run projects or are involved in projects?  How many of you run maintenance or are involved in maintenance?  (Yeah, I read my own note from yesterday.)

So, that’s a lot of you.  I bet that a good portion of you are Agile projects that use sprints.  Did you know that an Agile project doesn’t necessarily contain sprints?  Sprints are a Scrum concept that many Agile projects have adopted.  But have they adopted it properly?  How many of you realize that at the end of a sprint you need to have an application that can be deployed?  Wow, the number of hands that dropped was amazing.  Let’s get some definitions out of the way first:

  • Sprint:  a time-box of one month or less during which a “Done”, useable, and potentially releasable product increment is created.
  • Done: an increment of product functionality that is useable so a product owner may choose to immediately release it.

I’m not making this up, people.  If you don’t believe me go to Scrum Guides and look it up.  Why believe Scrum Guides?  Because it was created by Jeff Sutherland and Ken Schwaber, the creators of the Scrum process and two of the original signators of the Agile Manifesto.  Yup, let’s go to the source.

Oh, oh, oh, this is the our take on Scrum/Agile.  That’s awesome, but then label it as such:  <insert ogranization name>’s Agile Process.  But even then, the idea is that at the end of the sprint there is a product, a usable product that can be released.  How many teams follow this process?  I know a bunch that call themselves Agile, have Sprints and stand up meetings and all the other “good stuff”, but don’t produce any real deliverable until after the final Sprint.  They have essentially done waterfall development and not Agile.

What is the first principle of Agile Software Development?

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Bam, right in the kisser of waterfall development.  Scrum was designed to allow Agile projects to provide “early and continuous delivery” through time-boxed iterations.  While Agile wanted to “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale“, Scrum set that period to 30 days or less.  Still within the Agile requirements, but more tightly controlled.

So how do you deliver software every 30 days?  Services.  Microservices.  DevOps.  Automated deployments.  Feature flags.  Self-organizing teams. (OK, that one is going to be scary for upper management so don’t talk about this in here.)

So, are you really Agile or are you an Agile/Waterfall hybrid?

Leave a Reply