Although Sandi focuses only on the function that prepares the bicycles, what we have at the highest level of her application is a todo list:
- plan trip
- prepare for trip
- go on trip
and preparing for trip may include more than just preparing the bicycles so, preparing for the trip is another level of abstraction or another todo list:
- send invitations
- prepare bikes
- prepare meals
It is interesting that the same message can be used twice, once to prepare the bikes and once to prepare the meals:
- mechanic.prepare_trip(self)
- chef.prepare_trip(self)
Sandi's presentation offers examples that are more usable and more concrete than any other I've seen.