My notes from XP Day 2008

I was at XP day last week in London. I thought i’d log my notes here in no particular order.

From two sessions about Lean and Kanban – Flow and Cadence, and Using Lean to Evolve Out of Scrum

  • Think about Flow rather than batching to reduce risk and deliver value more quickly, if doing this highlights transactionally expensive procedures (e.g. release) then look to reduce that cost by eliminating waste or automating
  • Have checklist/ritual detailed about swimlanes describing entry criteria
  • Pull board items through the swimlanes rather than pushing them and have limits on the number of items in each swimlane. This highlights bottlenecks early and makes the team swarm around bottlenecks rather than generating more backlog
  • Karl Scotland showed this concrete example of how multi-tasking causes project delays due to context switching

One of the systems I work on contains several distributed processes communicating via Active MQ. Integration testing these components has proved unreliable and complex so I attended Testing asynchronous behaviour and got the following inspiration.

  • Testing asynchronous apps makes your unit test code messy and complex waiting for callbacks, state changes, etc. Instead wrap the asynchronous sections in an API to simplify your unit tests.
  • Abstract the messaging interface, implemented a threaded messaging solution and then test the distributed components in separate threads but in the same process space.

An interesting open space titled Why aren’t they typing more. This introduced the Japanese word Mu roughly translated as ‘To un-ask a question’. e.g. The question ‘Why aren’t they typing more’ (often asked when managers see developers pairing) is such a ridiculous question that the person asking needs to un-ask that question.

Portia Tung and Pascal Van Cauwenberghe hosted the Real Options Space Game. I’d not heard of Real Options before the game, but i’d played a previous game with them so I went along to discover more.

Portia writes

Real Options is a decision-making process for managing uncertainty and risk. It’s a simple and powerful approach that helps us make better informed decisions, as individuals and in groups, by understanding and responding to the psychological effects uncertainty has on our behaviour.

On the day I didn’t realise just how much we do this in everyday life. I’ve written more on this in a separate post.

I participated in a coding DoJo called ‘Dirty Jobs’ in which 15 of us paired to add a simple new feature to a (deliberately) complex, messy and untested piece of Java. This was interesting to see how many problems we could identify in the code, and how different people felt we should address the problem, ranging from ‘refactor to make testing possible’ to the diametrically opposed ‘test what we have then refactor’.

An enjoyable and worthwhile two days.

Advertisements

Real Options

After hearing about Real Options at XP day, a little example I thought through of how I unknowingly used the technique recently. From Portia,

Real Options is a decision-making process for managing uncertainty and risk. It’s a simple and powerful approach that helps us make better informed decisions, as individuals and in groups, by understanding and responding to the psychological effects uncertainty has on our behaviour.

Travelling to my parents at Christmas I’d decided the dates but needed to choose the method of travel.

  1. Book train ticket now with reservation.
  2. Defer booking train ticket until nearer the time, possibly no reservation
  3. Hire a car for the trip
  4. Book plane ticket
  5. Book coach ticket

These options present themselves as soon as i’ve decided my time off work but until I know the relative costs and availabaility of them I cannot make a decision. So I look online, find the costs, and I can add the relevant information.

  1. Book train ticket now with reservation – no reservations possible. Buying cost: £60, Exercise cost: £0, Expiry date: imminent
  2. Defer booking train ticket until nearer the time, possibly no reservation. Buying cost: £60, Exercise cost: £0, Expiry date: day before travel
  3. Hire a car for the trip. Buying cost: £150, Exercise cost: £80 (petrol), Expiry date: day before travel
  4. Book plane ticket. Buying cost: £150, Exercise cost: £0, Expiry date: imminent.
  5. Book coach ticket. Buying cost: £30, Exercise cost: £0, Expiry date: 3 weeks before travel

This information lets me rule out Option 1. Why book ticket now for the same cost and availability as Option 2? Option 4 has an imminent expiry date and with it’s increased cost it’s also ruled out. I also have a dislike of coach travel so I ruled Option 5 out despite it’s attractive price.

A week later I checked out the costs and availability of the remaining options. I also introduced travel time to the equation.

  1. Book train ticket now with reservation – no reservations possible. Buying cost: £60, Exercise cost: £0, Expiry date: imminent
  2. Defer booking train ticket until nearer the time, possibly no reservation. Travel time: 2 hours. Buying cost: £60, Exercise cost: £0, Expiry date: day before travel
  3. Hire a car for the trip. Travel time: 4 hours. Buying cost: £150, Exercise cost: £80 (petrol), Expiry date: day before travel
  4. Book plane ticket. Buying cost: £150, Exercise cost £0, Expiry date: imminent.
  5. Book coach ticket. Buying cost: £30, Exercise cost: £0, Expiry date: 3 weeks before travel

As these two options have the same expiry date I waited a little longer. A week later I checked prices and availability again.

  1. Book train ticket now with reservation – no reservations possible. Buying cost: £60, Exercise cost: £0, Expiry date: imminent
  2. Defer booking train ticket until nearer the time, possibly no reservation. Travel time: 2 hours. Some routes are beginning to have no availability. Buying cost: £60, Exercise cost: £0, Expiry date: day before travel
  3. Hire a car for the trip. Travel time: 4 hours. Buying cost: £220, Exercise cost: £70 (petrol got cheaper!), Expiry date: day before travel
  4. Book plane ticket. Buying cost: £150, Exercise cost £0, Expiry date: imminent.
  5. Book coach ticket. Buying cost: £30, Exercise cost: £0, Expiry date: 3 weeks before travel

Given this latest set of information made it easy for me to decide on Option 2 and I bought my ticket. Most of this happened automatically for me, and it probably does for you to. For example,

  • When buying clothes, you see an item you want but it’s the last on the rail. Maybe you hide it, or ask the assistant to reserve it for you. This pushes back the expiration date of the option allowing you to check other shops before making your choice. (Thanks to Portia for this example)
  • Deciding about eating that pizza at 1pm. Defrosting a frozen pizza will take 3 hours, so its buying cost is £3, exercise cost is £0, and the option has an expiration time of 10am. Ordering a take away will have a buying cost of £10, exercise cost of £0 and an expiration time of 12.30pm. The night before you know that waking up at 9am gives you both options, but waking up late reduces your options.

Interesting stuff.