<i>but Netscape did the no. 1 mistake and tried to rewrite everything from scratch - I can not think of any working product where it is better to throw everything out and redo everything &quot;the right way&quot;, rather than iteratively improving the code.</i><p>This emphasizes a restriction technical debt may place on your company if your starting foundation is sufficiently poor.  Lotus did a combination of these two fatal mistakes, they had a small team of 7 or so guys write the first version in 8086&#x2F;8 assembly language, and I&#x27;m not sure exactly what happened to that team, but their EMS memory (<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Expanded_memory" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Expanded_memory</a>) mid-life kicker was unauthorized work done by a couple of guys who had left the company by the time Lotus used it in desperation because their complete rewrite of the code in C was failing so badly.<p>For that matter, their first Macintosh program, Jazz (<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lotus_Jazz" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lotus_Jazz</a>) was fatally flawed in development.  They again wrote it in assembly &quot;for efficiency&quot;, but without close communications between team members.  Instead, every N days each would bring a floppy disk with their updated code and a merge would be done.  This resulted in a <i>lot</i> of duplication of functionality and a bloated binary (hitting the platform where it was at its worst); which among other things resulted in user frustration at having to swap floppy disks all the time as the Wikipedia article mentions.<p>Apple is a partial counterexample: Jobs rode a small team hard in creating the first rather limited assembly OS, software wise they largely wandered around in the wilderness and failed the complete rewrite (<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Copland_(operating_system)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Copland_(operating_system)</a>), then solved their problem by buying NeXT (and, oh, started bringing Jobs back into the fold, one of the very few non-programmers who can manage them), and doing a wholesale replacement with NeXTSTEP.<p><i>Not that MS does not do terrible things as a business. They do, exactly as any other business with that size. They have to or they will cease to exist in a few years.</i><p>Disagree.  Microsoft&#x27;s terrible things included screwing pretty much <i>everybody</i> who did business with them at the peer level, &quot;<i>You made a mistake, you trusted us,&quot; said 3Com founder Bob Metcalfe, quoting an unnamed Microsoft executive.</i>&quot; (<a href="http:&#x2F;&#x2F;www.pbs.org&#x2F;cringely&#x2F;pulpit&#x2F;2002&#x2F;pulpit_20020620_000736.html" rel="nofollow">http:&#x2F;&#x2F;www.pbs.org&#x2F;cringely&#x2F;pulpit&#x2F;2002&#x2F;pulpit_20020620_0007...</a>).  You do enough of this and you run out of healthy companies willing to do business with you, and life becomes prohibitively expensive.  Which phone carrier is willing to partner with Microsoft after e.g. the Microsoft Kin: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Microsoft_Kin" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Microsoft_Kin</a> and I&#x27;m sure other stunts?<p>I can&#x27;t think of another company at this level like this.  Apple and Oracle, like Microsoft companies built on the vision of a single man, share some characteristics, but Apple hasn&#x27;t screwed over <i>every</i> supplier, and works well enough with phone carriers.  Has Oracle tried to screw over big iron competitors after it bought Sun?