Due to unexpected bugs and other difficulties

August 6, 2007

Reading about real life experiences with SCRUM is quite interesting. You see, that compared to theoretical description of the process, you always have unexpected tasks that mess-up even your shortest iteration plans. Software design is quite unpredictable but running a software company with customers is even more so 🙂 .

Check out Tom Harris’ post describing his experience, for example: Scrum Update.

We run into such situations every day. As a matter of fact in our teams we run two queues of requests/tasks:

  1. Critical – something you have to jump on right away and fix/implement ASAP (usually some bugs that are show-stoppers for our customers: crashes, major accuracy issues, …)
  2. Non-critical (high,medium,low customer urgency) – this is the part of our backlog that we create iteration plans for and execute according to the plans.

Check out my other post on this topic: Urgent vs. Planned
I guess what SCRUM calls ‘velocity’ should help you deal with these situations. You will figure out your velocity over time when somehow handling both critical and planned work in the beginning. When planning for an iteration know your velocity! Or have some other way to account for ‘regular unexpected’.

But even that wont always save you. You will be having times with bursts of unexpected requests. So we do not plan N iterations ahead. We examine our backlog and do full re-prioritization, re-estimation, and collaboration session before each iteration to create detailed plan only for that one iteration. Why bother planning for longer when you know that your priorities will significantly change in the next 2 weeks. 🙂

This brings another challenge – your product roadmap. Does “agile” complicate your roadmap management process? That is a topic for a separate discussion though.

But I think those ‘unexpected requests’ are a useful indicator. If they do not allow you to do your iterations at all then may be it is time to stop and think. Your software may be in a stage when you only want to address the critical requests (maturing alpha/beta releases), forget about the iterations for a while then. Or may be something needs to be changed in your development/testing process and it is high time you seriously looked at Continuous Integration.


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

%d bloggers like this: