Day 1
Professor Lanzarone gave the kick-off of the course. Francesco Cirillo of XP Labs then gave a presentation about what agility means. His message was clear (even though my Italian isn’t very good): agility is about the values and principles, more than the tools and techniques. XP is no silver bullet, but it can look like magic… when done well.
In the afternoon, Frederico Gobbo presented different tools and techniques for drawing ideas and thoughts like free idea maps and mindmapping. He then described how exam scheduling works at the university and described his wishes. This was the start for our first user-story writing session for the exam-scheduling project.
Matteo started the session with a simple exercise: everybody scribbled something on a card, to check that the paper and pens work; everybody tore up their card, to check that cards are cheap and easily discarded. The session didn’t go very smoothly at the start: few people had experience with story writing, we were a large group (15 people) and each story led to lots of discussion. Due to my poor understanding of Italian, I had some trouble understanding the discussion.
We made some changes to the way we worked:
- don’t over-analyze each card. First, write some cards in brainstorming fashion. Afterwards we can analyze and reject or rewrite the cards as needed
- let the customer write the stories, not the whole team, otherwise we get a lot of duplication
- don’t write stories which say “The User does this…”, but write them as “The administrative assistant does this…”, “The professor does that…”, “The student…”. This gives a face to “Il utente”. You can invent “personas” (even whacky ones). Even better is to use actual users. You can do little role-plays: “John does this. Then Mary does that. Then George does this…”
Day 2
Stand up, speak up
At the standup meeting we decided to split the group in two. Half of the team worked with Frederico as their customer and me as coach; the other half worked with Matteo as their customer and Luca as their coach. That worked a lot better. Agile is also about reflecting on your work (“Hansei”) and improving all the time (“Kaizen”).
Let’s Play!
To learn more about stories, the roles of customer and developer, estimating effort, planning releases and velocity, we played the XP Game. Fun was had by all. I wonder what the other people at the Villa thought about all those bursting balloons…
All the teams very quickly went through the first release, mostly because they didn’t ask me (their real customer, as opposed to the proxy customers in each team) any questions. As a result, many of them implemented stories incorrectly. After the release, we reflected on what happened and the teams adjusted their way of working. The next two releases, they asked a lot of questions before starting the implementation and they had fewer problems implementing stories correctly. The players noticed that they could predict the amount of work they could deliver in a release, by using their velocity. In the last release, the teams were able to accomodate a change in plan (a high value story was introduced during implementation), with very little overhead. Estimating the new story and replanning by taking out another story to make room for the new story went very quickly, with very little overhead.
Tell me a story
In the afternoon, Frederico wrote some 15 stories, the team estimated the effort and Frederico assigned priorities (not value).
We evaluated the stories according to the INVEST criteria. Each story should be (as much as possible):
- Independent from the other stories, for easier planning, implementation and testing
- Negotiated and negotiable
- Valuable to the customer and users
- Estimated (and clear end detailed enough to be estimable) by the people who will implement
- Small enough
- Testable
Go read Bill Wake’s excellent article on the subject.
Coaching in a language you barely understand is not easy, but you can go a long way with just a few words, observing body language and tone of voice and observing the interactions between the people. Things went quite well, I didn’t have a lot to do, just some small adjustments and tips now and then. At the end, Frederico verified that the stories covered all the topics from his “Free Idea Map” of the exam application.
Then we hit another snag: the computers at the Villa were hopelessly underpowered to run Eclipse. Again, we adapted: several people volunteered to bring their laptops, hubs, network cables… Tomorrow we can start programming!
Forza Italia!
And then we came to the most important part of the week: the semi finals of the World Cup. Italy vs Germany. Italy won with two last-minute goals. The sleepy, little town of Varese exploded into sound: fireworks, cars racing round and people cheering. The party lasted the whole night. Italy plays the final of the World Cup!