Sprint 41: review and retrospective
"In Sprint 41, I invented the bun... I invented the bun, in Sprint 41..."
What we learned:
- You need to be disciplined to get acceptance tests written before development starts on them;
- You need many strategies for communicating with remote teams: not all of them will work in any given situation;
- Retrospective actions need following up, or the whole exercise is of moot value;
- The current UK heat-wave causes problems and opens up opportunities :)
Another write-up of one of our planning days; Glastonbury having abducted our facilitatrix, I was running the review and retrospective sessions. This is undoubtedly a good thing for me to have more practice doing, but I worry about my ability to remain objective when wearing MD and Scrum Master hats, and having some opinions about the Way Things Ought To Be.
Worryingly (scrum smell ahoy!) there was little in the way of production software to show off at the review. Both teams had been working on one project (predominately), and in both cases a couple of large features were nearly-done, but not done done done - mainly due to dependencies on a third party which we're having trouble sorting out in a speedy manner, though in the case of Tonberry they had everything done for one story bar the automated tests. I'm hopeful that this means at the end of Sprint 42 we'll be inundated with new features to show off - i.e. that over 2 2-week sprints we'll have averaged out a little.
Ali showed off some of the widget work he's been doing recently for a new client (more on that in due course, I hope), and we had a good clutch of gold cards: Doug's produced another mobile application for alcoholics ("wake me up when my train gets home"), Chris had been doing some investigations into persistent storage efficiency using our Cactus database components for J2ME, and Tariq had some work on an Android app.
I've been worried about following up actions agreed at retrospectives - or rather, my not following them up as diligently as I should've been: there's little point in regularly agreeing to do stuff if it never gets done. So I kicked off the retro with a review of actions from the last time, highlighting the ones we've done and not yet gotten around to. I get the sense the strike rate was slightly higher, but I need to concentrate more on this in upcoming sprints.
Then the retrospective proper. I returned to a fairly standard format: each team member calling out 4 memorable moments from the previous sprint and getting them up onto a timeline. This brings out areas of common opinion or feeling from the team - unsurprisingly, many of us were pretty worried when one of the guys was taken into hospital at short notice, but environmental concerns about office temperature in the current heatwave were also a common theme, as was the visit a few of us made to Berlin on Monday. Some bug-fixing on an oldish project provided a boost to a few of us; stories not being finished provided a more sombre end-note to the sprint.
Having reached and discussed a group consensus on the previous 2 weeks, we moved onto actions, with each team member voting for something we should do in the immediate future, something we shouldn't do, and something we just don't understand. We then grouped these, discussed them and came out with a few to follow up on this sprint:
- We're becoming one team; with much of our work over the next couple of months being on a particular large project, we're combining the two development teams into one and sharing stand-ups and planning. A particular hope of mine is that this will encourage a lot more pairing up - 6 people can form many more combination of pairs than 3 - leading to a bit of variety, and a quicker path to getting those new to the project up to speed with i.
- We'd slacked off on a practice everyone had agreed had value, and worked well for us: writing acceptance tests for a story at the start of its development, and involving developers, QA, designers and the Product Owner in this session. Efforts are accordingly being redoubled in this department.
- A hot working environment is unpleasant: Thom was tasked to look into possible coolants.
- The speed of communication with a remote customer was highlighted as an issue by the team. I'm quite proud of the quantity of work we've done in the past, working with teams in London, Denmark, Helsinki or China... and past post-project retrospectives have highlighted the value of shortening decision times, so we've lots of little tricks we can use to ease the pain here. Recently we'd hit some problems which they weren't helping with, so we opted to raise the issue with the customer.
Other things we discussed included ways to improve our test automation (with some interesting suggestions floating for ways to document and improve test coverage of the user-interface elements of MIDlets or other mobile apps), and the need (or otherwise) to re-estimate stories before planning. The latter ended up with quite a long-running and heated debate (of the type we try and avoid having normally in retrospectives). I'm not convinced we got to the end of it but it feels like concerns have at least been aired. I posted round a Mike Cohn blog entry on the topic afterwards, which summed up the way I felt, but much more eloquently than I could put it.
Other observations I'd have: sprint burndowns don't seem to be so handy for us. They don't often get referred to and in some cases haven't been updated too frequently. I'm not sure what to do here: I think our story sizing relative to team capacity might be a bit off, and perhaps a larger team will make a difference.
We're Googly as fuck nowadays - we don't tend to move without creating a spreadsheet or document about it, and seem to have settled on it as our standard means of electronic collaboration.
And finally, we're holding standups outside for this sprint - partly to deal with the heat, and partly to recognise that with a team of 8-10, finding a board we can cluster around and actually refer to is tough with our current office configuration...