5 ms·
I think people under-estimate incremental improvements a lot. My tai-chi teacher told me that eastern culture is more about "putting one sheet of paper on anoth
by qwerta 12y ago
I think people under-estimate incremental improvements a lot. My tai-chi teacher told me that eastern culture is more about "putting one sheet of paper on another", there is slow and steady improvement. Western is much more about "big bang approach", make it or break it.
SQLite has been around for 15 years, they never shifted their purpose and were constantly improving. You get almost perfect product at this point.
I work on in-memory db which was evolving similar way. Now after more than decade of small improvements, it is faster than java collections, despite doing serialization and its own memory management.
- thomasahle 12y agoI'm not sure I understand the tradeoff. Given two tasks requiring an equal amount of work, are you saying that it's better to spend it on a 5% improvement than a 150% improvement? Sure, if all you have available are lots of 5% improvements, they'll also eventually add up. But won't you prefer to work on the biggest improvement/cost tasks first? Perhaps it should be seen versus the "throw it all away and start over" tendency? Like in steady refactors vs. big rewrites.
- regularfry 12y agoHere's one way to look at it. Say you can either spend X amount of effort on a 50% improvement, or you can spend X/10 on each of 10 5% improvements. Sounds the same, right? It's not. If the smaller increases compound, you get a (1.05^10=) 63% increase out of the latter situation. Plus you don't have to wait for everything to be done to get visible improvements.
- emiljbs 12y ago>Say you can either spend X amount of effort on a 50% improvement, or you can spend X/10 on each of 10 5% improvements. Sounds the same, right? This is the same thing. The point is that you say "10 5% improvements of state S0" in that sentence and then later on you use 10 5% improvements of state S0, S1... S9. This doesn't make any sense, could you explain to me how this would work?
- regularfry 12y ago> you say "10 5% improvements of state S0" in that sentence and then later on you use 10 5% improvements of state S0, S1... S9. No, I don't. Here's a very simplistic example. Say I've got a complicated computation with 10 nested loops, and there's a potential for a 5% speedup tweak at every nesting level, each of which takes about the same amount of effort to find; or, for the same overall effort I can speed up the whole thing by 50% by replacing the whole algorithm with a faster one. The former case gives you a better outcome than the latter, and it doesn't matter what order you do the tweaks in, or whether you do them all at once. The point is that they can compound without caring about the previous or latter state of anything other than their own level.
- emiljbs 12y agoYes but the point is that the (at least I assumed so) 5% increase in speed was based on the initial performance of the system and that it didn't scale. Isn't that basically what you're talking about?
- regularfry 12y agoIf you take two speed-ups which individually would be 5% over the initial performance and apply them both, you get 10.25%, not 10%. The point is that it can scale.
- sitkack 12y agoA number of discrete improvements is also more resilient. If a single perf improvement needs to be removed, only a 5% gain is removed. If the big 50% gain is monolithic it is much more susceptible to disruption.
- cowsandmilk 12y agoyou're statement needs a lot of qualifications. It is in only very specialized cases where this is true. Let's say my program takes time 1.0 and is made up of part A taking 0.5 and part B taking 0.5 Defining 5% speedup is weird in the first place, but let's say 5% speedup is taking 0.95 for the program and 10% speedup is taking 0.9 for the program. 5% speedup by improving part A => 0.45 + 0.5 => 0.95 runtime 5% speedup by improving part B => 0.5 + 0.45 => 0.95 runtime making both improvements: 0.45 + 0.45 => 0.9 So, two speed-ups which individually would be 5% over the initial performance gives us a 10% speed up. percentage speed ups do not necessarily compound. And in practice, usually they do not.
- qwerta 12y agoImagine you like something and have 40 hours implement it. Now spread those hours over one week, or over several months. Second cas will be much better because people will contribute ideas, you spend some time thinking about this task outside your job and so on. There is some overhead with constantly restarting your work, but that is negleable with good methodology.
- DanBC 12y agoThe business jargon word for this is "kaizen" - process of improvement through gradual change. http://en.m.wikipedia.org/wiki/Kaizen http://en.m.wikipedia.org/wiki/Kaizen
- Too 12y agoI think you misspelled buzzword.
- italophil 12y agoNot only eastern cultures have the concept. In German there is the phrase 'a steady water drop hollows a stone' and it actually traces back to the Roman author Ovid 'gutta cavat lapidem'. Perseverance is just so much harder than instant gratification.
- bane 12y agoJust to show Yanks have it too, "slow and steady wins the race".
- whatusername 12y agoWhich in my mind has always been linked with The Tortoise and the Hare -- which is then from Aesop / Greece.
- emodendroket 12y agoWell you can't really reject all elements of American culture that have their roots in Europe as not American or else you end up without a whole lot to work with.
- ionforce 12y agoMy pappy always said, if you shoot it and it's still standing, keep shooting it! Small, incremental changes!
- bgilroy26 12y agoWell that wouldn't be very good! Let's embrace them then.
- munificent 12y agoOne rain does not make a crop. — Creole
- tripzilch 12y agoI always thought story-myths like Star Wars and The Karate Kid fulfilled the role of fairytales and parables for the comparatively young culture of United States. I'm only half-kidding. I bet Yoda has a few choice quotes related to exactly this subject?
- kelmop 12y agowhat is this in-memory db?
- lazyant 12y agoWe underestimate the long-term improvements and overestimate the short-term improvements, not sure who said it first.
- jules 12y agoAnd yet, a big bang approach with a better data representation and code generation for queries can yield a 10x improvement http://infoscience.epfl.ch/record/198693/files/801-klonatos.pdf http://infoscience.epfl.ch/record/198693/files/801-klonatos....
- emiljbs 12y agoWhat does putting one sheet of paper on another give you? Death by a thousand paper cuts.* * Yeah, this is a pretty bad post, I'm sorry.
- erikb 12y agoWhat you say is called Kaizen. I practice software development, computer gaming, and several other things on these principles, and it really works. Always focus on something small, don't worry about how long it takes or how well you are doing, and when you feel it's internalized go to the next step.
- alecco 12y agoOn the other hand, this one looks quite big bang for me. From a major version to the next 50%. Also, natural selection tends to have periods of fast adaptation and periods of plateau quasi-equilibrium. I like Tai-chi and all, but I'm still a skeptic :)