8 ms·
This comment thread is making me realize we don't have a good word to distinguish between efficiency as in "we only have 7 hospital beds because that's all we n
by Taek 6y ago
This comment thread is making me realize we don't have a good word to distinguish between efficiency as in "we only have 7 hospital beds because that's all we need on 99% of each day" and efficiency as in "we replaced steps X,Y,Z with just step X', because we found that X' could accomplish everything that XYZ could accomplish but it's faster, more accurate, and cheaper".
One makes a tradeoff by reducing overheads and buffers, and the other doesn't have any tradeoffs, it's just a better way of doing things based on novel techniques.
- milesskorpen 6y agoI 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.
- wayoutthere 6y ago"Efficiency" can only be defined in terms of something else -- you can be optimizing throughput or optimizing costs and you'll end up at very different solutions. One is efficient with respect to waiting times, the other is efficient with respect to costs. In your latter example, it could very well be the case that steps Y and Z had purposes you didn't take into account that makes the new process less efficient in some cases with respect to the target metric. Either way, overoptimization and focus on specific metrics to the exclusion of others is a real problem. Circumstances change over time and high levels of optimization make processes more brittle and likely to fail when circumstances change.
- jcims 6y agoI agree it can get ambiguous but I think most of the time it's just framed differently and (to your point) are focused on different dimensions of efficiency. For example, if your first statement was 'We only have seven beds because we tightened up our discharge workflow and that's all we need 99% of the time' and your second statement was 'We only have seven admins because we replaced steps X,Y,Z with just step X and that's all we need 99% of the time' they start to line up.
- deleted 6y ago[deleted]
- mjohn 6y agoIn economics we would call the latter a Pareto improvement - ie an efficiency improvement without any trade off
- nnutter 6y agohttps://en.wikipedia.org/wiki/Pareto_efficiency https://en.wikipedia.org/wiki/Pareto_efficiency
- deleted 6y ago[deleted]
- Smaug123 6y agoThe former is the removal of slack to make a process more efficient: essentially trading slack for efficiency (making a sacrifice to Moloch!). The latter is more what I would term the removal of inefficiencies.
- throwaway_pdp09 6y ago> ...and efficiency as in "we replaced steps X,Y,Z with just step X', because we found that X' could accomplish everything that XYZ could accomplish but it's faster, more accurate, and cheaper". optimisation.
- Double_Cast 6y ago* It's instructive to track the underlying resource. If technology_A saves you time, it's more time-efficient (aka quick). If technology_B saves you money, it's more cost-efficient (aka cheap). * In game theory, "7 hospital beds" weakly dominates "8 hospital beds". But (x') strictly dominates (x, y, z). This is exactly what Pareto Optimality is about. Though perhaps a more colloquial term would be useful here.
- brundolf 6y ago> the other doesn't have any tradeoffs, it's just a better way of doing things based on novel techniques At least in the case of code, this isn't true. The variability comes in terms of change to the system, rather than the running of the system. i.e., if I simplify a process to be less modular and more monolithic, making it more efficient, that also makes it more purpose-built and less flexible. The "risk" increases of running up against a change that needs to be made but is intractably onerous. There's always a tradeoff.
- Jtsummers 6y agoI posted this in a similar thread yesterday: > Fisher's Fundamental Theorem: The better adapted a system is to a particular environment, the less adaptable it is to new environments. -- Gerald Weinberg,"The Psychology of Computer Programming" It's something everyone should consider in making critical design decisions. Your adaptable, modular system has some risks (particularly in terms of meeting performance targets, increased cost due to increased complexity), but the monolithic system has its own risks (less adaptable to changing requirements, potentially more fragile against attack or damage). Which you choose depends on many variables including your risk profile and anticipated need for change in the future.
- dllthomas 6y agoIMO, it seems like there's always a tradeoff once we've restricted ourselves to interesting options, because those options are interesting because they're not obviously dominated by other options. If we consider any possible solution, we can obviously imagine adding a completely spurious detail.
- brundolf 6y agoThat's fair
- crdrost 6y agoIt gets worse because even if one had precisely such a word, say the difference between ‘efficiency’ and ‘superlativity’ respectively, it would not necessarily be as simple as to say “efficiency bad, superlativity good.” They morph into each other in complex systems. Consider the paradox of finding that a factory crew has no inputs—they are playing cards waiting for an order to come in—and yelling at them to go do other things around the shop like clean and assist other operations, rather than loafing. Or, for another solution to the problem, you might pre-order all the stuff and make sure that the team is always 100% loaded and never has the free capacity to play cards. At first blush these improve superlativity, no? We are accomplishing everything that card-playing does but we are “faster, more accurate, and cheaper” if we are measuring, say, labor cost per part and the technician time averaged over the parts they worked on. Have we not just found a “novel technique” which is “just a better way of doing things?” But staring at it for longer you may find yourself less sure. That’s what I mean by complex systems they morph into each other. There are more subtle tradeoffs here. For example when people feel free to loaf when they have no work, you can walk into the shop and ask who’s loafing and why and how you can improve their situation so that they again have proper work to do. There is an increase in latency when that shipment finally comes in and all the workers need to be summoned from across the floor to handle it again. There may be mental fatigue from having to context-switch too much or from having to constantly work on just one thing with no breaks. Or maybe the teams that need whatever they are producing cannot finish their work fast enough, so all of the inventory produced by this team slowly grows until it fills 50% of your factory floor, until you only have a certain amount of space because that’s all you need on 99% of each day. The point is that the greedy algorithm may fail. In a linear circuit, you short out some resistor with some wire, you know that current is going to move faster afterwards. But in a nonlinear circuit, you no longer know this. In the absolute simplest case, the increase in current rapidly breaks a fuse and everything grinds to a halt. In more complicated cases you have a feedback loop and the increased voltage from the short-circuit feeds back to the earlier stages to throttle the current coming through. Same with weight loss. People think that they will eat fewer calories and they will therefore lose such-and-so amount of weight. Well, probably. But this is a complex system we are talking about. One of the first things that happens when you start burning the fat is that your body burns your muscle too. This is the same reason that you can't burn fat on your stomach by doing crunches, your system is sending the call out to your entire body that it needs to digest surplus material. The loss in muscle mass appears to be the primary culprit which kicks down your basal metabolic rate and you hit what weight-loss folks call a “wall” where you are literally cold all the time and wearing sweaters and feeling too cranky to exercise and all that, feedback mechanisms which will mean that if you keep eating that restricted amount of calories you won’t be losing any more weight unless you can “break through” it by keeping warm through exercising and thereby increasing your muscle mass back up to where it needs to be and so forth. It’s just that it’s a complex system and the greedy algorithm does not always work for such systems.
- war1025 6y agoThis seems like it sort of ties in with NN Taleb's idea of "Anti-fragile" [1]. Perhaps also Chesterton's fence [2]. Maybe also the whole premature-optimization thing [3]. And of course the too-clever-by-half coyotes [4]. Really maybe it just comes down to "be wary of making changes that reduce resiliency." I was hoping to come up with something cohesive with this comment, but really I guess I just agree with what you say. And I think there are a bunch of people sort of circling around the same idea, which I don't think we've really quite landed on a precise definition of, just as you say. [1] https://en.wikipedia.org/wiki/Antifragility https://en.wikipedia.org/wiki/Antifragility [2] https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_fence https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_... [3] https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize https://en.wikipedia.org/wiki/Program_optimization#When_to_o... [4] https://www.epsilontheory.com/too-clever-by-half/ https://www.epsilontheory.com/too-clever-by-half/
- O_H_E 6y agoI love this comment on so many levels ;D
- plutonorm 6y agoepsilontheory.com I love every article I have read so far. It's really expanding me. Thanks for sharing.
- jariel 6y agoUnfortunately, it's probably quite wrong. He uses the analogy of 'too clever by half' to exemplify his idea that 'financial innovation is always wrong'. Nothing could be further from the truth. Insurance products have changed the world just as much as any technical innovation. Mortgaged backed securities are not a bad thing, far from it, they allow more efficient use of capital by having 'saving Germans and Japanese' invest their money where they otherwise would not be able to. The problem in the 2008 crash was soft systematic corruption and un-ironically a lack of fragility (ie one bank goes down it takes the rest down like dominos) - not necessarily the securities themselves for which he didn't actually even provide any basis of his negative assertion. Efficiency is usually how we gain productivity and it's borderline absurd to say there is inherently something wrong with it on the whole. Like anything 'it depends'. If you can have a software algorithm outperform 100 analysts on weather predictions for your fleet of drivers ... that's probably efficient. But cutting down operating margins so that any bump in the economy will leave you flat is maybe 'over optimisation'.
- kazinator 6y agoThere are always tradeoffs. The discovery that X, Y, Z could be replaced by X required investigation, which is a cost, and then changes to be deployed which disruptions that also have a cost. If the deployment of the optimization doesn't recover the costs, then it ends up not worth it. Usually the cost is recouped because the optimization is discovered once, and then deployed on a large scale; but that is not always the case.
- dllthomas 6y agoI think considering the cost of change a cost of the optimized version is muddled thinking. It's a cost of deploying the optimized version, but that is only sometimes relevant. A pure trade-off between efficiency and stability would imply that, were I already running the efficient version, we could buy stability by switching to the less efficient code.
- didibus 6y agoWe do have a word, it's efficiency and productivity. Efficiency produces the same output with less input. Productivity produces more output with the same input. So efficiency is a measure of input to target output, and productivity is a measure of output to target input. To make a process more efficient, you figure out how to get to some X output while using as little input as possible. To make a process more productive, you figure out how given some Y input, you can maximize your output.
- baddox 6y agoThe first example about hospital capacity really just involves tradeoffs around your specific goals, whereas it only makes sense to talk rigorously about efficiency in the context of some specific output goal. So if you fix some goal, say, "we want to be over capacity 1% of the time," then the most efficient way of doing that is probably to have the minimum number of beds that you need according to your predictions about utilization. But you can't really talk about efficiency when you're deciding what your goal is, e.g. whether you're okay being over capacity 10% of the time versus 1% of the time.
- didibus 6y agoYes, efficiency requires a fixed output goal. Because you want to minimize input while sustaining your desired output target. For example, how can I make all of today's deliveries with less delivery trucks? While productivity requires a fixed input goal. Because you want to maximize output while sustaining your desired input goal. For example, how can I deliver more products per day without increasing the size of my delivery truck fleet? Often time, improving one can improve the other, but not always. For example, someone could ask, how can we grow profit? Okay, one way is to be more efficient, thus spend less money to make the same revenue. Alright, maybe we use cheaper materials, so now produce the same amount and sell the same, but our margin has increased and we make more revenue. Someone else could say, we need to be more productive. Okay, so you invest in better marketing, and scale production to meet increased demand. You are as efficient as before, but more productive. So I feel like, reducing the process from X,Y,Z to only X is about productivity. You still have the same number of employees, but since they don't need to waste time doing Y and Z anymore, they can produce more output. That said, you could choose to apply the gains to efficiency as well, for example, hey, because I eliminated Y and Z, I can now cut my workforce in half and deliver the same output.
- rticesterp 6y agoIt's also not as simple as adding 7 more beds so we have all we need on 99.999% of days. Sure you have 14 beds, but you also need more doctors, nurses, surgeons, OTs, etc. to support those beds. Those health care providers won't get the patient contact they need to maintain their skills as competent providers. I know as a part-time EMT if I don't go on a certain number of calls a month that I have a noticeable decline in my skills
- Jtsummers 6y agoAt some point you must choose your bottlenecks. Excess physical capacity doesn't have to be used all the time (that is, there's no "currency" for a bed, and other equipment can be rotated through use and maintenance cycles). If you choose to constrain yourself with the number of beds needed for your 99% situation, then you can't expand beyond that without great difficulty. If you have physical capacity for your 99% situation x 2 or even just one or two extra beds, then you don't have to maintain full-time staff for it. You could extend staff hours, or bring part-time staffers to full-time hours, or bring in (with supervision) students from a nearby medical or nursing school to handle what they can and offload the burden for that 1% situation.
- wisty 6y agoA hospital can call a part-time EMT and ask them to work a few extra shifts due to some disaster. They can't ask them to bring a bed.
- hinkley 6y agoThere's also efficiency like "I picked up some extra screws at Home Depot because I wasn't sure if I had any at home". Having ways to avoid an unanticipated repetition of a process, which would result in bunging up the works for dependent parts of the system, can make the entire flow more efficient. See also 'drum buffer rope' from constraint theory.
- ozim 6y agoThat is why kaizen is so nice because those are small improvements that you notice in daily operations. The other one like bad efficiency I would just call "cost cutting measures" not efficiency improvements. With kaizen you try to accommodate to what you have. So if Bob is slow cost cutting measure would be to fire him. Efficiency improvement way would be observing Bob to see what can be changed so you can get more value without messing him up.