The disproportionate influence of early tech decisions
This has always felt like the catch 22/anthropic principal of software development to me:<p>1. Early on you favor decisions that enable rapid iteration and growth without being able to put in much deep thought around long term productivity.  Most of these tend to be fine in the long run but there's probably at least 1 or 2 that will haunt the company for the rest of its days.  Companies that don't take these "short cuts" will probably kill the business.<p>2. Companies that survive largely have their architecture dictated by #1 and are fairly constrained in how radically they can change the decisions in #1.<p>So most of us end up working on a product which has some pretty critical architectural flaws that are very hard to repair.<p>The only companies I've seen that do work their way out of it are the printing presses (google, linkedin, yahoo, amazon, etc) that are able to invest in very strong platforms and move their applications onto them, and even then it's a long drawn out process.