@andrewchen

New here? Check out my list of featured essays · Blogging roadmap · Ask me anything

The myth of the 7 day product

Recently, I wrote about the concept of building a product in 7 days. After writing it, I started on such a project and am now on day 6. In doing this, I learned a lot about a whole list of "Things Not To Do." Along the way, I’ve decided that there’s some mythology around the quick project, which I’ll give more detail on below.

A well executed 7 day project has the following components:

  • Basic idea or assumptions that have been mulled over for weeks
  • Very casual market testing by pitching it to friends over a drink or two
  • Spontaneous development over a weekend or two that leverages well-known libraries
  • If the libraries aren’t well known, perhaps you tinkered with them in the past, which perhaps even inspired the idea
  • 100% viral growth opportunity without major marketing required

A poorly executed 7 day month project looks like this:

  • Initially, an unknown market and an unknown target audience
  • Zero data on market potential – you’re just making assumptions about someone else
  • Significant planning and development that concretely incorporated misguided assumptions
  • Heavy of use of undocumented, complex 3rd party libraries that cause major debugging hassles
  • Marketing growth that involves significant business development and capital

Examples of quick projects done well
Under these specifications, well-understood closed-system websites are the best types to build. That’s why sites like Facebook, eBay, Craigslist, Digg, etc., are all fantastic projects to write quickly. You don’t have to build a significant amount of technology other than forms and database tables, and the mechanics to put in and remove data. You don’t depend on complex libraries to put things together – in some of those cases, something like PHP is the fast way to throw ideas together.

As soon as you start adding things like importing RSS, or transcoding video, or crawling the Internet for data, you enter a realm where you start incorporating potentially faulty libraries. And as many programmers know, you can easily spend a day trying out and throwing away lots of different libraries and hit bugs that really aren’t your fault. This chews up days in your schedule.

The role of audience in developing products
An especially hairy problem is when you are developing for a different audience than yourself. Then you run into a situation that you might spend the entire 7 days really trying to understand people, and never get to the point where you’re shipping product. You end up making assumptions, writing code, and then iterating over and over again, without really figuring out what people want. This is the most dangerous case because it’s "upstream" from everything else – you could do everything else right but still be required to rewrite the entire concept.

Like this post?
If you liked this post, please subscribe or follow me on Twitter. You can also find more essays here.

Written by Andrew Chen
April 10th, 2007 at 3:12 pm
  • Craig Hubley

    I’ll second the recommendation to choose your libraries extremely carefully and reduce their absolute number. “Re-usable” code usually is not, and unless it’s been substantially “re-used” by yourself a few dozen times you aren’t likely to debug it quickly. “The first step to reusability is re-use” I always used to say.

    Over 20 years ago I was working on a project on the Xerox Interlisp-D platform. Being basically a hotshot coder high on the astonishing power of that platform, and encouraged to be so by the nature of the (executive time management) problem, and the optimism of the R&D management (who were not coding – I was!) I discovered LOOPS, NoteCards and dozens of other amazing libraries. Put together it compared to today’s top end Java environments with some semantic web features and a lot better basic language.

    Predictably, by using all this stuff straight off the intranet from Xerox PARC, I rendered my initial project undebuggable and suitable only for rigged demo usage. Some library or other was always objecting to some data item or other. LISP being weakly typed, this wasn’t easy to debug, though I can’t blame LISP and I look down on any programmer that does. I’ve got to blame the programmer in this case, myself, and all programmers who get into the object-oriented mindset so much that they overlayer their code and render their feedback loops too obscure to ever debug.

    The project had some other characteristics you list.

    Successful short turnover projects in my experience are much as you outline, but I’d add the following:

    “Basic idea or assumptions that have been mulled over for weeks” and which you can justify as having some basis in (controversial maybe) sociological, economic, physics, or anthropologial thinking. That is, you are not fighting basic human nature as it is described in ALL social theories ever written, nor tied into “losing on every sale and making it up on volume”, nor trying to push so many bits you’ll explode users’ wires. I would note the failures of videoconference techologies and “push” technology in this category.

    “Very casual market testing by pitching it to friends over a drink or two” and getting them to commit to actually use the alpha and tell you what they think of it. Even tossing in bets that some things can’t be done, just for a challenge.

    “Spontaneous development over a weekend or two that leverages well-known libraries” as noted above. Maybe a few people over two or three weekends if it’s open source or otherwise not intended to be secret.

    “If the libraries aren’t well known, perhaps you tinkered with them in the past, which perhaps even inspired the idea” and ideally was anticipated in the libraries’ or tools’ design (what I was doing right by building on NoteCards for instance which was a semantic web basically for decision modelling, very similar to my application). However I hadn’t done my tinkering in advance…

    “100% viral growth opportunity without major marketing required” which almost always means giving someone a real incentive to forward your message to the people they talk to most so that they can communicate through your new medium, or those they want to deal with but can’t because they don’t trust current media’s commerce capabilities. If it isn’t really a way for people to communicate or gain an edge in buying or selling something, it probably is a short-term opportunitiy.

    No, I’m not in the ad business, but I did design a dating system once. Ads can be for people too! In the P2P era we need to be thinking about them that way.

Recent posts

Want more? Featured essays and book recommendations