2 ms·
"It's effortless to switch from working on one burger to another" This is why software engineers should be banned from writing about anything outside their ver
by hnbad 4y ago
"It's effortless to switch from working on one burger to another"
This is why software engineers should be banned from writing about anything outside their very narrow domain (and I say that as a software person).
There's context switching when working on different features, sure. But there's context switching when working on different parts of the burger, too. Slicing two buns is faster than slicing one bun, then coming back from doing something else and slicing another.
There's context switching in both scenarios. Heck, switching between writing a spec and working on the implementation is a context switch too. The switch between features is just generally more significant than the one between the different phases of working on the same feature compared to the steps of working on a burger.
Heck, this also completely ignores that the chef likely doesn't ONLY produce burgers and even when they do not every burger will necessarily be the same. In fast food restaurants you'll actually see chefs do some steps in parallel (e.g. slice all the buns) and some sequentially. Additionally they'll often optimize to finish all items in an order in the same timeframe -- in all likelihood you're not a complete prick and actually want your friends to be able to join you for lunch rather than staring at you for 4-8 minutes while you eat your burger all alone.
The analogy is not just simplified, it's completely ficticious to the point of bearing no resemblence to the actual process it tries to use as an analogy. It doesn't provide a common ground by referring to something everybody knows, it requires actively ignoring what you may know in order to make its point.
- hnbad 4y agoAs others have pointed out, the analogy doesn't even work for what it is trying to do. Tasks are heterogeneous (as are the features themeselves) and some steps involve passive wait time (e.g. waiting for CI, QA or reviews, or waiting for the grill to do its thing to the patties). Religiously linearizing the process by isolating each feature may actually often prolong the overall time in these cases.