Extremely Rapid Prototyping's lessons

13 Apr 2012

I have decided that I'm going to launch something, a new product or a new version of a previous product every week.

I've figured out that nobody really tries to ship 20 products within 6 months before. This is a worthy thing to try.

At least, what I will learn is how to build a good product in an extremely fast way. I hope, at the end of this crash course, I will be able to work with the speed of light and still produce a good product.

And I will get to work with various people and learn how to handle various kinds of people. What I did is talking to someone who:

  • Has an idea
  • Is serious about running it

Then, I help build the first prototype and get it off the ground, hopefully.

I shall take no stock, no equity, and no money. The other person owns the product 100%.

Yeah, I will work for free. I'm waiting to start at Twitter. I don't really need money. What I need are the skills; the coding skill that is god-like; the management skill that can finish a product in time with an acceptable quality; the skill to build great UI interactions; and, hopefully, one of them will get high traffic, and I will get to learn how to scale a server and a team.

Here is what I have learned during the last 2 weeks:

Wake up in the morning and spend all the attention to the work

I have tried this for 2 weeks, and it works really well. I am not stressful anymore because I feel that I have achieved so much during the day.

I work non-stop from 7:30am to 11:30am, go out for lunch, and then work from 1pm to 5pm.

No facebooking or tweeting, and no listening to music in the morning. Morning's attention is very pure. Don't contaminate it.

In the afternoon, you are allowed to slack off… it's ok.

After 5pm, I just relax.

Remember, Time without attention is worthless.

I'm trying to wake up at 6am though and work until noon. That will be a great way to work faster.

Build things vertically and build features that matter first – Don't go too much into detail

Don't try to support things horizontally, for example, several types of user authorization.

Prototyping is to prove that the concept works; Supporting things horizontally is for acquiring more users, not proving it works.

Don't try to take over the detail of the project – Let the other person be the owner.

Right now I try to pair with a person who will run the product (I build).

I have a very high tendency to take the ownership of the product and direct it toward the way I want.

I need to learn to let go. That person will run it. This means he/she is going to spend time with the product every day and night. It's a lot more encouraging if the product is theirs.

And another thing is I've built so many things that users don't want… so… maybe it's time to listen to other people.

Arrange the right layout at the first try – Leave the decoration for later

Try to place things at the right position in the first try. It makes me work so much faster.

And don't forget to leave all the decorations for later.

Force users to login to do things – It will simplify so many interactions

I used to, stupidly, make a website that allows user to post as a guest, a Facebook member, and as our own member.

The post's page is extremely complicated, and it takes a long time to do…

And don't support guest. Supporting both guest's and member's use cases is too complicated.

And it is not the point of the product anyway.

Leave it for later! much later!

Only do server validation

Don't do the validation of any form on the client side.

Performance is not concerned in the early prototypes.

You're not going to have 10,000 users (or even 1,000 users) that soon, trust me…

Researching stuffs, e.g. word-breaking, are hard problems – Don't try to solve it. It should be its own product.

With Qri, I was trying to build my own search technology. It took me like 6 hours to build a really really really bad one.

Two days later, I switched to Apache Solr.

Those are 6 hours I will never get back….

Researching stuffs are hard. They should be a separate product.