5 ms·
The Importance of Simplicity
- swombat 17y agoVery good article, and very true for start-ups. I am always skeptical when I hear someone describe their start-up and it sounds really complicated (especially if they haven't launched yet). I suppose it is possible to deliver complex systems that work for users, but it's extremely hard. And it's already very hard to deliver even simple systems that work for users, so if you like to change your 1% odds into 0.01% odds, either you have money/time to burn, or you're making a bad gamble.
- jzachary 17y agoEcho that sentiment. When I hear an overly complex solution or idea, I think that person either doesn't know what they are talking about or that the solution is for a hyper-niche situation. Usually, asking a few "Heilmeier-type" questions will lead to classifying the person in the former group. And I admit to being a member of the former group myself, too often, I'm afraid.
- swombat 17y agoWhat are "Hellmeier-type questions"?
- jzachary 17y agoGeorge Heilmeier was a former DARPA director, for whom the Heilmeier Cathechism is used by DARPA PMs to judge projects. These simple questions are excellent for understanding other projects, and I use them to keep my own projects on track. I also use them as the basic outline for presentations. http://en.wikipedia.org/wiki/George_Heilmeier#Heilmeier.27s_Catechism http://en.wikipedia.org/wiki/George_Heilmeier#Heilmeier.27s_...
- mixmax 17y agoA complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system. this isn't always true. Basically you can do two kinds of products: evolutionary and revolutionary. Evolutionary products can start as something simple and evolve into something more complex. They are the ones we usually talk about because they are easy to do, and make up the bulk of all digital products. Revolutionary products are the ones that can't evolve from something simpler but have to be complex from the start to serve a meaningful purpose. The Apollo space program is a good example: It probably wouldn't have worked very well if they "launched early and launched often" and fixed problems as they went. It would also require too many suicidal astronauts ;-) It had to be perfect the first time. It's basically the same issue as irreducible complexity in evolution: All the intermediate steps have to be useful, or you won't ever get to the finished product. Incidentally this is also why you don't see moving parts such as wheels in biological organisms: The steps leading up to it are no good. Aeroplane manufacturing is the same thing: Either it works or it doesn't. The areticles advice pertains only to evolutionary products and startups.
- swombat 17y agoI'm not so sure you're interpreting that quote correctly. The Apollo space program didn't really start out with the declaration that "we're going to put a man on the moon", it started out with a bunch of rocket scientists in Germany trying to lob bombs onto London. And before that, of course, there were even simpler attempts to build rocket-like devices. Then, looking at the Apollo program itself, they didn't send someone straight to the moon. There were many simpler missions before they finally culminated in the moon landings. The point of that quote is that even something so monumentally complex as the Apollo space program started with something simpler that worked, and evolved up from there. I would suggest that revolutionary start-ups are precisely the ones that need to start simple, because it's not quite clear where they're going, so they need to figure out the simplest thing that works before making it more complex. Evolutionary start-ups, on the other hand, can probably afford to stand on the shoulders of previous attempts and start with something a little more complex, because they already know what works - but even that is risky.
- abi 17y agoI'm the author of the blogpost and I feel I didn't write enough about how I differentiate simple and complex. Here's a good but very software-specific example that might illustrate that. Imagine you told a programmer (or team of) to create a Digg clone. How many of them would build the entire system with all the features (submissions, comments, friends, profiles, media types, categories, etc.)? I'll wager that most people will attempt to do so. As a result, they'll probably fail. That entire Digg "system" is what I would call complex. On the other hand, when given such an assignment, you should try to write something simpler which would at once also be useful. In this case, write something like Hacker News (but take out comment threading, karma and a few other things)! Once you're done building that, you can slowly add profiles, categories or whatever would benefit the community the most. That's the meaning of "start simple, use a lot and evolve" Another thing, it's important to remember that what was complex yesterday is simple today as we move to a higher-level of abstraction.
- jzachary 17y agoIn the academic/applied research setting, I find sensor networks are the canonical example of this phenomenon. People jump off into "secure energy-efficient self-organizing" sensor network architectures, that they lose the ability to even articulate the problem they are ultimately trying to solve.