The strange places my mind wanders to while preparing
dinner, such as agile cooking practices. A few points to ponder:
·
Just-in-time
cooking and coding. I love going to the grocery store (or even better, the
farmer’s market) to get ingredients for that night’s dinner. The trip is quick,
the planning is quick, and the ingredients are fresh. I could get additional items, but that just adds to the time in the
store, rather than helping me cook. The same concept applies with just-in-time
coding practices. That one new feature or bug-fix can be handled so much
quicker if all the additional possibilities don’t get layered on top. Of
course, refactoring may need to happen, but only when the customer decides that
they need the tomatoes and balsamic glaze, not before.
·
Planning
for meals and releases. I usually plan a menu for the week. I may not get
all the groceries for all the meals at one time – fresh spinach will be gross
if I buy it 5 days ahead of time – but the plan is in place. This is similar to
iteration or release planning, where you can identify a 3000-foot plan, before
you have to get into the details (I know I need a button on this page; I can
talk with the product owner the morning I start to code before I decide where
it goes).
·
Clean as
you go. Unit tests and
refactoring are like the kitchen tools I use. I need to make sure that they are
clean and ready to go when I need them. It feels like a horrible waste of time
to have to clean the kitchen up before I can even start to cook, so, just like
in coding, I make sure that everything’s in its place (refactored), and clean
(tested), before I say I’m done.
Hmm. I’m hungry!