Kudos -- really interesting, thoughtful and useful summary. However (yes, there's always a however), I'm always surprised and baffled why these kinds of lists rarely attribute startup failures to non/mis-management of the development process. I worked for a couple of successful startups and have consulted for the last six years (performance stuff) and am dumbfounded by the amount of time developers waste on "crap" -- trivial bugs, insignificant performance issues, "enterprise" build/QA automation, etc. At one startup, THE key developer went off for six months rewriting the comm stack for a performance problem that didn't exist -- all the while destabilizing and slowing down the product. At my last "real" job, every time I went to the coffee room, I would ask a developer what they were working on and 90% of the time it was "bugs." That's fine if you're working at IBM on DB2 but NOT if your funding dries up in 12 months. IMHO, it is RARE to find a manager/VP who will pull a developer back out of the weeds. I often see an endless series of stand-ups where the status is "fixed a bug" or "recoded an inefficient loop" or "wrote a Java wrapper for the Jenkins garbage collector." It SOUNDS like progress but six months later POCs are crashing and burning because 2/3 of the core features are still missing. Maybe I've had a totally weird career but how come no one talks about this?