Yep, I messed up one of the Thanksgiving dishes. I think. I wasn’t really told. I just sort of “heard” and figured it out. To be fair, it’s not the first time in my life I’ve messed up a recipe or a software project.

Some background…

In my immediate family, certain recipes are sacrosanct; they are made exactly as written with no deviations. Also, I’m the primary cook in the family, so it’s generally my responsibility to execute these recipes. Historically, this approach has worked well for these recipes, give, or take. Sadly, not this year.

The specific recipe is not complicated on any level, but the result has high expectations, especially since we only have it once a year, at Thanksgiving in the US. This year, for some reason, the tried and true set of ingredients and process seemed to render the dish dryer than normal. I was reluctant to adjust the process in part due to overnight settling and amalgamating, the dish might have sorted itself out. It did not. Comments were made. We are now past it.

But what of testing?

One thing I learned both on my own and in cooking classes is to taste, or test, as you go. See, this also goes well with software. Testing at the end of a recipe or a software delivery can make it difficult to adjust the results. What if I’d adjusted along the way? What if I’d added more of a liquid ingredient or less of a dry one? What if I had asked my mother-in-law how the recipe was proceeding? Would the outcome have been more in line with expectations? I think it would have. But, would I have had to deviate from the recipe? Yes, I probably would have.

What’s one to do?

Like families, software organizations and users/clients/customers have expectations and social dynamics that we must try to take into consideration when we create things. If we follow our development and testing procedures exactly but neglect to adapt to new information, we run the risk of dry food… I mean, software that misses expectations.

Automation plays in this world too. In my example, I was basically an automated script. I followed the recipe (for all intents and purposes) exactly as written and exactly as had been successful in past iterations. It worked last time so if it doesn’t work this time, there’s a bug. Was it successful this time? I’ve not gotten a formal decision, but the anecdotal evidence indicates that this year’s recipe execution fell short of expectations and previous deliveries. If I were less robotic in my execution, I would have deviated from the algorithm but would have had better software, uh, I mean food. Was there a bug?  That specific question is hard to answer. Should the scripts be modified? Probably, but that requires agreement between the affected parties.

Regarding automation modification, we need to do it, judiciously, of course. Automation can grow stale, i.e., it’s lost its value relative to its cost. Automation also needs maintenance in order for us to continue to realize value from it. Perhaps we should be keeping our recipes fresh as well. Recipes may need to be adjusted, not necessarily the ingredients, but we might need to expand some of the instructions like “if the mixture seems too moist, do this thing” and “if the mixture seems too dry, do that thing”. Similarly, in order to keep our automation relevant and valuable, we may need to adjust its instructions to check additional, fewer, or different responses to our stimuli.

In general, we should not get too locked into development and testing procedures simply because “we follow the procedures” or because “they worked last time”; this time may be appreciably different than last time. Our goal is not to perfectly follow a process; our goal is to deliver software that is valuable to the users of that software and to the company that pays us to deliver that software. Automation is no different. Automation is to be in service to the delivery of the software that, ostensibly, assists in the achievement of corporate business goals. If the automation isn’t meeting the needs, it’s time to evolve it, it’s time to maintain it.

So, was the Thanksgiving food from that recipe good? I’m thinking not as much as in previous years, but I still have only murmurs and whispers. We need to feel free to discuss quality and appropriate adjustments to processes. I think I’ll be evolving how I approach that specific recipe; the specific evolution may be a topic for another show.

Like this? Catch me at an upcoming event!