4 ms·
I don’t know if those two things are as different as you suggest. Multiple steps add redundancy, if you fail one step you can get much of the value from other s
by milesskorpen 6y ago
I don’t know if those two things are as different as you suggest. Multiple steps add redundancy, if you fail one step you can get much of the value from other steps. More steps are frequently added in response to edge cases.
Could be a Chesterton’s Fence scenario
Instead of bemoaning efficiency, it’d be interesting to reward/value redundancy and antifragility, at least at the system level.
I think this could mean trust busting, regulation, and general cultural shifts.
- r00fus 6y agoAs long as those steps Y & Z are actually adding redundancy/antifragility, then yes. If the purpose is some deprecated feature or dependency that simply serves no purpose or is now an anti-feature, it would be more efficient to remove. It would be good to have proof of a Chesteron's Fence analysis to say "yes, we know that Y & Z purposes and have analized the cost/benefit to removing them and the populations/systems impacted" - would this be an impact analysis?
- Jtsummers 6y agoMultiple steps don't always add redundancy, sometimes they're just noise or artifacts. I had a colleague who, when opening a file, would first click on the Windows desktop, then "My Computer", then navigate to the directory, open the file, and close the Explorer window. There was zero redundancy versus leaving the directory open so they could open the next file (or using the application's "Open File" dialog). That is a perfect example of wasteful motion (in their case due to a poor mental model of how computers worked, as I learned through later discussions) that could be simplified significantly without loss of quality or redundancy in the system. Contrast this with: The surgical office called me this morning and stated, "The surgery is for a ganglion cyst on your left wrist." Which I confirmed. When I go in on Tuesday for the surgery this will be repeated, and a mark will be made on the area to be cut open (though in this case it'd be really hard to screw up and open the right wrist, as there is no, quite visible, cyst there). That is useful redundancy of the sort you describe. Removing any step (the initial visit a week ago, the call today, the check when I arrive, the mark on the wrist) and you increase the risk of error.
- grasshopperpurp 6y agoLots of good examples in sports, where wasted movements lead to failure, particularly at the higher levels
- Jtsummers 6y agoYep. Not even just sports games, but athletics and movement in general. Learning to avoid certain movements when running, swimming, or rowing is very important especially if the goal shifts from complete a short distance as fast as possible to complete a long distance in a reasonable time (and often the more efficient form for long distance translates into faster short distance results as well).
- Taek 6y agoThere are obvious cases where you are improving efficiency without eliminating slack. I'm not making my application more fragile by rewriting an n^2 operation over a large dataset to an n*log(n) operation that provides the same output. It's a win without tradeoffs. This type of example exists in all industries. For example, finding a new alloy that has strictly superior properties across all dimensions for a specific use case. Or upgrading mail delivery routes using better pathfinding algorithms. Etc.
- hansvm 6y ago> I'm not making my application more fragile by rewriting an O(n^2) operation over a large dataset to an O(n log(n)) operation that provides the same output. It's a win without tradeoffs. Hopefully not nitpicking too much: it's a win without _many_ tradeoffs. E.g., in the usual places where you'd accidentally get an O(n^2) operation rather than O(n log(n)), the O(n^2) operation is constant-space. In a sufficiently anomalous computing environment with a low enough priority on fast results you might still consciously opt for the O(n^2) solution.
- Retric 6y agoPlenty of n log n operations are in constant space. Average Quicksort performance being perhaps the classic example. But most often you see these kinds of improvements by simply removing steps. Net result is less code, less memory use age, less of everything.
- hansvm 6y agoYep, I'm not arguing that it's always a good idea (or even usually...or even that I've seen it be a good idea in the wild), just that it could be. Taking quicksort as an example, it's only constant space if you're allowed/able to mutate in-place. If you need (for some bizarre reason) to stream sorted results in constant space without mutating the underlying data then you'll need some other tool.
- pchristensen 6y agoMy favorite story about unintended consequences of process improvement is the Vienna Sausage Factory: https://medium.com/dangerous-kitchen/vienna-sausages-a-guy-named-irving-and-the-secret-to-success-501a9586fb97 https://medium.com/dangerous-kitchen/vienna-sausages-a-guy-n... Punch line - Sausages coming from a new modern factory didn't taste the same. The new, more efficient building removed a long transportation step where the partially finished sausages picked up flavors and scents coming from different parts of the factory. They had to create a new process to manually add those flavors that they were accidentally getting for free from the old factory layout.
- smabie 6y agoI wasn't aware Vienna sausage had any flavor in the first place. In my view, Vienna sausage is in the same category of food as spam, baloney, and wonder bread: total garbage.
- dllthomas 6y agoIn some scenarios, the process fails if all of the steps fail. In that case, redundancy is more stable, and you have a tension between stability and efficiency. In other scenarios, the process fails if any of the steps fail. In that case, redundancy is less stable, and you can improve both stability and efficiency by eliminating unnecessary steps. In either case, there may be other considerations involved as well (flexibility, visibility, recoverability...) but sometimes we just didn't see a better way to do something.