Rolling With The Punches
An agile workshop about technical debt
Included Ruby code in the repository is an example implementation, using some metaprogramming to create a little DSL, like this:
product :Banana, 1.00.each product :Aubergine, 2.for(1.00)
Other example implementations and feedback extremely welcome.
How to run it
- Make sure everyone has a pair and their development environments of choice fired up and ready to go.
- Set a time for the iterations (between 5 and 20 minutes, but allow for at least 5 minutes for pairs to settle down and discuss the solution before the iteration starts). If you do 5+15 minute iterations, you need approximately 3.5 hours (and the retrospective could take a while.)
- Pair rotation rules: no developer stays on the same codebase for more than 2 iterations in a row. These are not strictly necessary, and if the audience isn’t familiar with pair programming it would be best to not have pair rotation, as this is not the main focus of the workshop.
- Prepare people for failure. There will be a lot of it, and this exercise can bruise egos – make sure everyone understands that failure is the point where we’re trying to get to, so we can learn from it in a safe environment.
- Be a bossy customer who doesn’t care about technical implementations and wants their stories implemented NOW!
- Give people a really hard time if they don’t finish a given story during the iteration it was in. Tell them how disappointed you are for not having hired a team good enough, etc. Ignore any complaints, but be extremely excited and reward teams or pairs that got it all done on time. A couple of remarks about how expensive this software development exercise is being won’t hurt either.
- Remember: you don’t know anything about computers. Any technical difficulties the pairs might be having has to be ignored, and any clarifications regarding the stories can be boiled down to “Just do the simplest thing you can imagine, as long as you don’t break my business, and as long as I get it delivered on time!”
- Sell fruit!
- Bananas £1 ea
- Apples £2 ea
- Oranges £1.50 ea
- Sell veggies!
- Cucumbers £1 ea
- Lettuce £0.50 ea
- Aubergines £1.50 ea
- Sell small fruit!
- Strawberries £1/kg
- Cherries £2/kg
- Raspberries £2/kg
- Sell more!
- 2 for £1 aubergines!
- FREE cucumber for every kg of tomatoes (£1 ea)!
- Stop selling veggies! Make room for more fruit!
- Apples £1 ea
- Blackberries £2/kg
- Cranberries £2/kg
- Plums £1.50 ea
- Sell more!
- £1 on grapefruits (otherwise, £1.50 ea) when you buy more than 3 oranges
- Add 17.5% to all purchases
- No 17.5% VAT
- 5% export tax + £1 per purchase
- No deals or promotions apply
- REFACTOR! CLEAN UP! HURRY, CAUSE IT’S PROBABLY TOO LATE!
- What went well?
- What didn’t?
- What would you do differently?