Scott's Recipes Logo

Where Startups Get It Wrong - What We Know from Software Engineering Research

I never fail to be amazed by the very basic aspects of software engineering that startups get wrong. And we’re not talking a little bit wrong here - I’m talking just plain staggeringly wrong. People always ask me things like “How do you know that?” or “Why are you so certain?”. Well, it really isn’t hard: I read and I read everything I can get. I’m an absolute book-a-holic and here’s what my wife says about it: “If I ever die, well, it will be in a bookalanche; crushed by all your books”. Or as I describe it, I’m seeking a 12 step program “I’m Scott and I have a problem (picture a chorus of similar book nerds answering ‘Hi Scott’)”. I read everything I can find on software engineering, startups, histories of high tech companies and the like.

One of the things that most startups don’t realize is that computer science is an academic discipline and that it is extraordinarily well studied. All aspects of it are well studied including things like engineer productivity, working environments, test coverage, pair programming, etc. Personally I started attending ACM (association of computing machinery) conferences at age 1987 with the first conference on hypertext held in Fall ‘87 at UNC Chapel Hill. I’ve always been aware that software engineering was an academic discipline. Here were some of the experiences I got at 19 from that conference that set all of this in my head forever more:

This experience made it clear to me that software engineering wasn’t just hacking out code on a PC. And even tho that is all I was at the time, I realized that it was a discipline and it was well understood. Ever since 1987 I’ve held the ACM in high esteem although my membership is rarely current. A personal high point was being published in Communications of the ACM on Hypertext Quality Control (just a citation; its long since offline).

What Startups Get Wrong

So here’s the meat of the post. I’ve written it in bullet form for brevity. And there are lots and lots missing. At some point I’ll loop back

There are literally dozens of other things I could point out on this topic and I’m sure I’ll return to it. Honestly it is just like Santayana said - if you don’t know history then you are doomed to repeat it. I see so many startups that never bothered to learn anything about software engineering start from ground zero. All of this stuff is written down and all it takes is reading. I will admit that it is very hard to find an academic program which teaches a course like “Practical Software Engineer, The Good Stuff”. I suspect there’s an opportunity there.