
Mise en Place Writing - Townley
https://www.swyx.io/writing/writing-mise-en-place/
======
keehun
This is a fantastic article. I often have a similar process when writing code.
The ideation (architecture, user input, etc) and research (ensuring the
existence of all necessary APIs, etc) are separate phases for me. Once the
ideation and research are mostly complete, the writing of the code is usually
a breeze, and I end up with having to refactor/rearchitect a lot less than if
I start by writing code.

~~~
applecrazy
That’s really interesting. Do you by chance have a write up or example of how
this is done? I’d like to try this too.

~~~
keehun
You remind me this could be a decent idea for a short blog post.

In brief though, let's say you're implementing network filtering (inspired by
today's LittleSnitch post).

Before writing any code, I would:

\- Figure out what actual business case there is behind it and what the
management/customer/etc is _actually looking for_. Maybe feature XYZ isn't the
right long/short-term solution for what they want. People give Steve Jobs a
lot of flack for "you're holding it wrong", but he was right in the sense that
the customer doesn't always know what they want/need, let alone know what's
even possible.

\- Once the feature _is_ what is required, figure out what's the right fit for
the feature within the current architecture with short/medium/long-term goals
in view. Maybe it's actually better to hack something in quickly and commit to
revisit in 1 week than spend a month doing it right and lose users.

\- Then figure out if the APIs actually exist. Some APIs you need simply don't
exist. For example, in order to filter network traffic on MacOS, you needed to
write a kernel extension until macOS Catalina. If your architecture/business
doesn't have room for kernel extensions, then those APIs are out of reach.
(Maybe Apple didn't bless your request to code sign kexts. Maybe you have no-
one on your team with kernel experience. Maybe your customers are non-admin
users on their Macs that can't load kexts.) During this phase, I might write
some quick & dirty PoC code later in the process to exercise all the necessary
APIs and make sure those actually do what they promise to do within my
constraints.

Once you have the business requirements, stakeholders aligned, and PoC that
exercises all the APIs which demonstrate your feature's needs, writing the
actual code is a breeze. Especially once you get pretty good at this,
transforming the PoC code into one that stands the test of time in your
product gets easier and easier.

You may ask "wait, writing the PoC code is exactly what you claimed you didn't
do!". You've got a point, except in this case, whenever I write PoC code, I
write it as a standalone "proving grounds" program. I don't start writing code
within the product's architecture. I would estimate in my PoC code, there's
less than 3% that is outside of exercising the necessary APIs.

------
pier25
Off topic but Jesus I have an irrational hate for websites that style
scrollbars.

~~~
Veen
I believe it’s more in the spirit of experimentation and seeing what can be
done with scroll bars than anything the writer would recommend be adopted more
widely.

[https://www.swyx.io/writing/scrollbar-
shenanigans](https://www.swyx.io/writing/scrollbar-shenanigans)

~~~
pier25
I don't care about the justification. It's just wrong.

I said it's irrational, right? :)

------
netman21
I too am on a once a day sprint. I use a similar technique. I have one
Scrivener project for my posts. I create a folder/doc for each topic I want to
write about, usually 5-15 ahead of where I am. In each one I jot down the
idea. As the week progresses and I find supporting info I drop it in there.
Then when it comes time to write the article I have enough to go on.

------
dragontamer
Mise En Place is a very important skill in cooking. Its also easy if you batch
things up and further take advantage of modern help.

Ex: you can buy carrots precut from the grocery store in "matchstick" form.
You can buy pre-minced garlic. You can buy pre-soaked + cooked canned beans.
There's no reason to work overly hard preparing meals.

Not everything is available pre-made in the grocery store. But the
preparations you do can be batched up into larger sections. Cut the entire
onion, or two, or three. Then tomorrow, you have pre-cut onions for other
meals. Don't cook 1 cup of rice for today, cook 3 or 4 cups, so that you have
rice for fried rice tomorrow.

\------------

I like the idea of prep-work being applied to writing. Batching additional
work together can make you more efficient in cooking, so it makes sense that
batching research together (for many different articles) would make you a more
efficient writer, when it comes to writing many (say, 50 articles) at once.

~~~
klodolph
I would say that a critical skill in good cooking is the knowledge of what you
can buy prepared and what you might rather prepare yourself.

Soaking and cooking raw, dry beans is time consuming and there are actually
food safety concerns (dry kidney beans are toxic). So, getting canned beans
will save you a significant amount of prep. I prefer the taste of beans that
I’ve made myself but it’s rarely worth the high effort.

On the other hand, it doesn’t take much time to mince garlic, and it tastes a
lot better than the stuff in jars.

Tubes of cookie dough and bags of “pie crust” mix are nearly as good as
preparing everything at home, so there’s little benefit to making them
yourself unless you’re going to change the recipe. Jars of spice mixes are
great if you don’t want to deal with a full spice rack.

On the other hand, if you want juice, fresh squeezed is far better than the
jugs or cartons of juice at the store, or the concentrate. The flavors in a
fruit don’t last long when exposed to air, so the juice companies generally
add scents to the juice—basically, perfume—and they have a clever trick to
keep it off the ingredients list: they make it from the fruit.

The idea is to do the work that has the highest impact on the food quality,
and then outsource everything else to industry.

~~~
dragontamer
> On the other hand, it doesn’t take much time to mince garlic, and it tastes
> a lot better than the stuff in jars.

If I'm using canned and pre-cut veggies, then minced garlic means I don't even
have to take out the cutting board.

I agree, fresh-minced garlic tastes way better. But pre-minced garlic is "good
enough" in most cases.

~~~
therealx
Frozen minced garlic cubes are the best of all the worlds.

------
TheRealPomax
One nit: "Of course, for chefs, typically you're also the one doing the prep
so you're not really saving any work" is very much not the case. Chefs,
working in professional kitchens, rarely do prep. Home cooks have to, but in a
professional kitchen, a chef working the prep station is exceptionally rare.

~~~
jrandm
That's an odd nit to pick and I don't think it's accurate. In case you haven't
heard the term sous-chef[0]:

> Sous-chefs are in charge of making sure all kitchen equipment is in working
> order. [...] Under the oversight of the sous-chef, downtime should be used
> for prepping, cleaning and other kitchen duties.

In the body of a document titled "Mise en Place Writing," I do believe the
author meant exactly that chefs[1] are the ones making sure all forms of
preparation are completed, even if it means working the prep station.

In fact, I'd go so far as to say I'm certain this particular author checked a
resource like a list of culinary terms or restaurant terminology[2] during a
"pre-writing" phase like "Research" before using those words at all.

[0]: [https://en.wikipedia.org/wiki/Sous-
chef](https://en.wikipedia.org/wiki/Sous-chef)

[1]: "A chef is a trained professional cook and tradesman who is proficient in
all aspects of food _preparation_ " emphasis added by me,
[https://en.wikipedia.org/wiki/Chef](https://en.wikipedia.org/wiki/Chef)

[2]
[https://en.wikipedia.org/wiki/List_of_restaurant_terminology](https://en.wikipedia.org/wiki/List_of_restaurant_terminology)

~~~
TheRealPomax
Of course I've heard of that term, and that's _a different job position_. In
more standard HN jargon, that's like saying a senior tech lead is the same as
a tech contractor. One of them runs the floor, the other follows their
instructions.

Just because it has the word "chef" in it, does not make the sous-chef "chef".
Sure, in layman's terms they are "a kind of chef" but in _professional_ terms,
they are not. There's only one chef, they're the CEO of kitchen, they rarely
prep.

------
jrandm
I really enjoyed this article and agree with other replies about the content.

Additionally it's the first time I think I've seen a styled scrollbar that fit
into a site (ie: wasn't a demo of styling a scrollbar) since
Angelfire/Geocities/etc -- I know it's been a long time because I actually
checked the source and realized I didn't even remember the CSS names, just
doing it in IE!

------
Veen
Excellent article. When I started freelance writing for a living, I quickly
learned that time spent preparing is rarely time wasted. It is much easier to
get the words on the page if I am prepared with research, outlines, and ideas.
I can focus on making sure they're the right words in the right order rather
than hunting for information and worrying about structure.

