There's one place where the analogy breaks down IMO:
In cooking, you usually know the recipe and have experience before preparing it for many people.
In programming, you often explore and create, trying out new things that you didn't know before.
Mise en place suggests that you know exactly what ingredients and tools you'll need and what to do with them.
Perhaps a woodworking workshop is a better analogy for the creative process:
You're trying out a lot, taking scrap pieces as dummy items to test on, create scaffolding and helper items to get where you want. But afterwards, you clean up the bench and service the tools.
To me, this kind of "explosion first, prune afterwards" process seems more natural/common?
I've been getting into the early stages of developing a game concept, from the position of a near complete novice. My idea is very vague but I know enough of the elements to be able to break it down into numerous atomised technical challenges to be overcome, little things like making something move and emit a sound.
So far this approach seems to be working really well, I'm not getting overwhelmed or bogged down by trying to 'vertical slice' anything, and keeping the end goal very loosely defined means I can easily adopt new gameplay ideas as I come across them in the process of tinkering with the available tools and their interactions.
Once I've figured out all the individual challenges I can begin in earnest to craft the whole.
I have been cooking for my family for over a decade now, and I can count the number of times I've followed a recipe line for line on one hand, but I always start by setting up my mise en place (onions chopped, garlic smashed, meat/fish marinating, veggies chopped and salted, water boiling).
Mise en place has nothing to do with rigidity, it's the concept of everything in its right place before you start preparing the final assembly of the dish. You can and should practice mise en place when you cook, even if you have no idea what you are making. Preparing food is all about timing and mise en place allows you to focus on the preparation without getting distracted or caught up in chopping onions when your steak is already too done.
>In cooking, you usually know the recipe and have experience before preparing it for many people. In programming, you often explore and create, trying out new things that you didn't know before.
Im pretty sure that experimentation equally well to cooking.
There is experimentation in cooking, but not usually in restaurants while serving actual customers. That is the time for just making the recipes you practiced.
There is very little reason to write out (say) the same algorithm a hundred times because you have a hundred different users who need it, but a cook can't just ctrl-C ctrl-V a dish.
I think that's the case for for lower-end restaurants, but for high-end restaurants, they are going to be tweaking things as they go. Ingredients are never perfectly interchangeable because they have to be grown or raised in real-world conditions that vary from one farm to the next or one season to the next.
Is this something that you know from actual restaurant cooking experience? Because high end restaurants lean extremely heavily on the concept of practice sessions where the cooks practice individual dishes over and over and perfect the mise en place for a specific menu ahead of time. Especially high end restaurants go out of their way to make sure that any experimentation will have been done ahead of time and not discovered at showtime.
High end restaurants measure everything both quantities, time and temperature extremely precisely and have strict quality control for the ingredients they use in order to ensure a consistent experience.
Sure, but the ratio is way different. I frequently cook the exact recipe the exact same way as I've done before, but I'd struggle to think of a reason to rewrite the exact same implementation of the same program.
In cooking, you usually know the recipe and have experience before preparing it for many people.
In programming, you often explore and create, trying out new things that you didn't know before.
Mise en place suggests that you know exactly what ingredients and tools you'll need and what to do with them.
Perhaps a woodworking workshop is a better analogy for the creative process:
You're trying out a lot, taking scrap pieces as dummy items to test on, create scaffolding and helper items to get where you want. But afterwards, you clean up the bench and service the tools.
To me, this kind of "explosion first, prune afterwards" process seems more natural/common?