Part 1: Reuse
Reuse of proven recipes (not reuse of food, that happens the week after) While there is always one or two new “flashy” dishes, for the most part, I work against a known timeline of known dishes. This ensures the quality of both dishes and allows me time for any “issues” with the new dishes.
Part 2: Resource allocation/scheduling
Over 6 lbs of onions will be chopped on Thursday for 6 different dishes (soup, salad, stuffing, caramelized onions, green beans, cold bean salad). I could chop them each time I came to a new recipe however that would lead to unneeded tears. Instead of knowing what my recipes call for I will “pre-chop.”
Part 3: Proper tools
The last things I will do before going to sleep Wednesday night is to sharpen my knives and run all my prep bowls and pans through the wash. I will pull out my pressure cooker and immersion blender but I will not get out the food processor. Proper tools does not mean every tool, and again my counter space is limited.
Part 4: Music
Honestly, I can’t cook without music playing. Try chopping to a dub-step beat, or caramelizing to Carmen.(2)
Part 5: Compromise
In a limited resource kitchen, it is not possible to get everything to the point (crispness, juiciness temperature), you want it at the point you need. Prioritize and restructure(3). There are reasons I am having a cold bean salad, e.g. I can make it the night before, it doesn’t take up valuable stove/oven space and it is very tasty.
Linking it back to software development
With the possible exception of part 4 (Music), I think we can all see the direct links to software development. Whether working in a single person kitchen or in 3 star Michelin restaurant, on a hobbyist home quadcopter or on the next generation pacemaker there will always be requirements, there will always be resource limitations and there will always be deadlines(4).
In the end, with proper planning, you can create a meal (product) that you can be proud of and that, hopefully, you will enjoy developing (making) as much as I will enjoy my cooking.
First here is an image of the dinner in progress. Second, yes that is a Turkey on my shirt. I am a happy H2Okie alumni. Next, if I may push one last analogy. I am of the cooking school that “cleans as you go.” We could liken this to “test as you go” methodologies of development. (Note: while the link is to an agile development method it applies to any design methodology.)
1.) Just to be clear, I really enjoy cooking these large meals
2.) Take care when you first start “rhythm chopping”. You should start and finish with 10 fingers
3.) In many a meal and in many a project at some point you will realize what you want to do/make is not possible; normally due lack of onions/time.
4.)I dislike the use of the phrase “time pressure” or “deadlines” given their connotation of stress in delivery. With proper planning and resources, the stress in development should be minimized.
Michael Burke is a consultant with The MathWorks and former coordinator for the MathWorks Automotive Advisory Board (MAAB). I currently focus on Model-Based Design Process Adoption and Establishment projects. Views expressed in this article do not represent the views of The MathWorks.