Thanksgiving: a resouce constrained and concurrent execution problem

NOTE: This post is a recycled from my LinkedIn blogging days.  Happy holidays for my readers in the US
This November 24th, at 4 P.M. sharp all my requirements must be met; both the high-level requirements (enough food to overfill 8 people) and the derived requirements (a selection of traditional Thanksgiving food, vegetarian, and lactose/gluten free options.) Further I will be operating under constraints of both time (do I really want to get up at midnight. to start the suvee turkey) and space (my kitchen is great for a small meal but lacks the resources to really multi-task.)(1) In other-words this sounds like 85% of the engineering projects I have seen near release.

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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s