I’m talking at the Agile Professionals Network in Auckland tonight about Scrum. It’s an introductory session for people who haven’t had a chance to experience Scrum yet, so I’m taking a very simple approach to it, going through all the important facets of the roles and the process, and making it more real by using examples from some projects I’ve done recently. (If you’d like to come, and it’s still 12 May, you can register at the APN website).
And the first thing I’m going to say in the session is that the title of the talk contains a kind of lie: Scrum’s not a “theory” any more than riding a bike is a “theory”. You can’t prove mathematically that it works, and you can’t learn either one just by reading a book (or listening to a talk). You have to do it to learn it: they’re empirical skills. They’re crafts, rather than sciences or arts.
I’m going to update this post after the presentation tonight, with a bit more detail about what I said (can’t give the game away now!) and notes on what sort of questions people asked. But for now: what sort of questions do you have, if you haven’t done Scrum at all? and if you have experienced Scrum, what’s the main thing you would tell people who were new to it?
… to be updated tomorrow …
It’s tomorrow now, so here is the slide deck on Slideshare.net:
I’ve also added a link on our APN website, and details about the next APN event. Sign up now, it should be a good one!
I had some great questions during and after the talk. Inbal asked some in a comment below, so I’ll answer those in a follow-up comment. But someone else asked a particularly good one:
What do you do about deployment, especially if it takes a long time? do you do those in a Sprint?
Ideally, deployment would be a one-click process (as Rowan Simpson said here a while ago). But lots of platforms (including two we use a lot at Fronde: Salesforce.com and MOSS) can’t do that easily because of the way they’re architected.
If you can do deployment in one step, or even in a few minutes, you could deploy at the end of an ordinary Sprint in which you delivered stuff (and schedule time to do it, either as a single specific Sprint Backlog item, or by reducing the time-available within the Sprint and formally putting the deployment between sprints .
If you can’t do deployment in one step, you’re going to have to schedule time to do the deployment within (one or more) Sprints. Make a Product Backlog item, put it in the Sprint, and Bob’s your uncle.
And either way, there’s usually pre-deployment stuff to do: this is where the “Sprint N” concept comes in. It’s commonly called the Hardening Sprint, and it’s where you polish and prepare your working software for the full release. It might include final data conversion, last rounds of training, refactoring and retesting, end to end process testing, serious load testing… things like that.
This is NOT an excuse to leave all the testing until Sprint N. That would just turn the project back into a waterfall. Every Product Backlog item needs to be tested, documented, UATed, etc (to make it Done) during the Sprint it’s built in. The Sprint N is to do the overall polish and reduce some of the Design Debt.
There are lots of very good articles on this and other topics on the Scrum Alliance website.


Your talk was excellent and interesting, with a lot to take home. Well done!
A few questions from a newbe:
1. What do you do with the notes of completed stories / tasks after the sprint is over. Do you throw them to the rubbish? Or keep them for something?
2. (also asked in the evening): say we estimated a story in 8 days and now we break it down to tasks and it’s actually looking more like 20 days. I think this scenario should be quite common… What do we do? What did you do in your project that was fixed price fixed time? fixed scope?
3. As the project progresses the backlog can grow with tasks we haven’t thought about and with bugs we discovered after a sprint was over. So we get ‘heavier’ and heavier. Do you prepare ‘buffers’ for that?
Many thanks,
Inbal.