Hacker News new | comments | show | ask | jobs | submit login
Build a system, not a product (opportunitycloud.com)
36 points by erikstarck on Dec 5, 2009 | hide | past | web | favorite | 12 comments

I don't think I've discovered anything as profound or fundamental to the way I think about business than when I (not so long ago) started trying to build systems instead of products.

Your business is a money making machine. There are many components. Absolutely all of the components are hot swappable. Make each component work until the entire machine does. If one component fails, swap it out with something entirely different if you have to. As long as it keeps the machine working, it doesn't really matter what it looks like.

Become attached only to the machine as a whole, not the individual components it's made of.

That sort of implies that all companies should gradually "become" whatever is the most profitable kind of company, though. If it turns out that, say, spam is the most profitable thing a company can do, then your todo-list app, or even your brick-and-mortar home-and-garden store, would gradually swap out parts (including employees and even founders) until it has become an online spamming service!

No. Don't fix it if it works. On the other side if your brick-and-mortar company doesn't work then you better try something else.

Very, very true. Just as no battle plan survives contact with the enemy, no product idea survives contact with the customers. From the ground up you need to plan for change, keeping your development cycle flexible so that you can adapt and adjust to feedback from the customer.

It is like the difference between writing code with configuration variables embedded in hundreds of places in the code or building it with a user interface to allow the customer to adjust the settings.

My largest problem with the "release early, release often" cycle, as well as being adaptable, is that it's hard to release a product that I feel isn't complete. I have to fight the compulsion to cram features in that I feel are killer features (despite whether they really are or not).

It seems like big products have huge releases. How can we prevent people from quitting our application if they don't like the big first release?

Good words;

As an serial entrepreneur I would say that startups are not but organisms, but organism that need bootstrapping (no not the ”business bootstrapping” – shoestring budget model – but… ) the original sense of the word, a system need to initial criticai mass and parameters to start working like an organism…

That is what the entrepreneur does, force the catch-22’s into a critical mass that starts growing like an organism.

Cheers, NIcolai

Pithy and true. Easier said than done of course.

Building products that function within an adaptable system seems to be the gist of this parable. People don't really buy systems; they buy products. When the seamlessness between product and system becomes transparent enough, the product is essentially a system of interchangeable parts.

maybe learning isn't equivalent to getting rich, and maybe people are motivated by the latter.

The point of the blog post is not that _you_ should be learning, it is that your _startup_ should be learning.

A startup is almost by definition in an exploring phase. Key to success (and infinite richness of course) is to acknowledge this fact and build your startup as a learning entity.

The consequence of this insight is that it's counter-productive to keep things secret or wait too long until launch.

This should be added to the Tao of programming.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact