February 14, 2010

Done is really done

Filed under: Development, Scrum — Andrew @ 11:33 pm

It’s so reassuring to be able to experience the benefits of practices that you read about.  On our last sprint we deployed our completed stories into the live application as they were completed meaning done is really done.

Pushing work into the live app before you can say it’s done means that deployment has to become part of the story.  We can’t defer the work to a ‘deployment’ story or push it outside of the sprint.  This gives us a better understanding of our velocity because stories encompass all of the associated work.

Deploying in a big bang can surface issues that nobody anticipated.  If the problem is the result of work undertaken at the beginning of the sprint it takes a little time to get back up to speed, but this isn’t a problem if you’re releasing the work as you go. Small incremental deployments mean that we don’t get that slightly anxious feeling as release day approaches.

Why doesn’t deploying to a test environment work just as well?  Until this sprint that’s exactly what we did, but with this experience it feels like a compromise. For one thing, knowing that your work is going public immediately encourages communication between developers and clients which focuses attention on the details of a story.

For me there is a lot more to learn here so I’m going to look into continuous deployment to see what techniques can be used to support it.

4 Responses to “Done is really done”

  1. Phil Wilson says:

    fwiw the whole “ifdef” method of switching on features doesn’t seem like a good fit unless, like flickr, you’re spending a lot of time working on a single largeish product with many interacting parts.

    For the kind of work we do (small projects, short sprints) optmising the deployment and rollback procedure, and deploying to a cluster would seem to solve a lot of problems without introducing additional overheads to the codebase.

  2. Phil Wilson says:

    Of course, I mean “IMO” rather that “fwiw” :)

  3. Andrew says:

    Yes. The switching of features makes more sense on a big codebase with a lot of developers.

  4. Phil Wilson says:

    I like this quote under the heading “Antipatterns”:

    “Partial delivery: not delivering into production. Unless delivering into production, “done” is more an interpretation, less a fact. ”

    http://www.alphaitjournal.com/2008/07/spillner-big-projects-small-increments.html

Leave a Reply