Building Part 5 - Like Building a House

  • erik
  • on 9/4/07, 9:37 AM.

I learned a very important lesson about how to build websites when I purchased my first home a few years ago! My wife and I bought a home from a private builder while it was stil in the middle of construction. The foundations were done, the wood frames were up, and most of the electrical and plumming was finished. But there was still a lot of work left. We were very anxious to have the house completed on time so that we time our rental agreement and mortgage papers perfectly. So time was urgent. At the same time, this was our first home, and I wanted it to be perfect.

Frequently I would come and visit the home to check the progress. I would come in and see that work was "completed" in one room and they had moved on. So I would look at the "finished" room, and I would find a huge list of problems. The wood trim doesn't finish perfectly in that corner, the paint bled onto the window frame, there is a small bump in the carpet over here, etc. I would feel so irritated about it that I would make them stop working on the other room to come back and finish that other room "perfectly". This happened over and over, and the deadline to move in came and went and I was frustrated, the builder was frustrated, and the situation was terrible. 

The builder finally explained to me something I haven't forgotten: the 80/20 rule. Basically, 80% of the value can be created with 20% of the effort. The remaining 20% of value is created with 80% of the effort. In context of the house, you get it "almost there" with regular effort, but to make it perfect takes a disproportionately large amount of time.

This rule is especially true in web development! Let's say it take 200 hours to build a basic new feature. That basic new feature will satisfy 80% of the people. Then somebody comes along and says "why don't you do this!?". Then we have to calculate how large of an impact that will make and how long it will take. Some of them are obvious to do: they are quick and they have huge impact. Others take a HUGE amount of time to do, and will only affect a small number of people. For example: people said the forums needed better navigation tools to track what had been read and what had not. Calculation: that will take 30 hours to do and will benefit almost everyone on the site in a big way. Ok - let's do it. Another example: some people have asked for greasemonkey scripts for move notification. Calculation: it will take an unknown number of hours (because we don't have experience in this - maybe 20 hours??) and it will benefit less than 1% of the people on this site. Then we have to think: we have limited time and resources - should we spend those 20 hours on greasemonkey scripts (which IS a good idea!), or should we spend those 20 hours on getting Live Chess done? And so we choose to put all of these great suggestions and ideas on the "future projects list" while we work on the big stuff like Live Chess and other things we can do to create huge value with less resources.

If I had been smarter when working with my home builder I would have quietly made a list of things that needed to be touched up or refined and then had those things done AFTER we moved in. This site is no different! We could have waited and waited and worked on the site until we thought it was perfect and then opened it up to the public... some time in the year 2010! But instead we have opened it up to you in an unfinished state. Many things are missing and still need to be done. But we hope that you will decide to move in and make your home anyway, despite the paint drips on the window and the missing dishwasher :)

There is one other interesting thing about this analogy: with a website you can build features that work perfectly in a small test environment, but you never know how they will work out when you have thousands of people simultaneously using it. Yesterday we released some new code and a new little feature where you see a hand moving a chesspiece in the header near your name if you have a waiting game. Seems simple enough, but that query (a query is a little piece of code that searches the database) that looks for your next ready game wasn't fully optimized and the effect was that thousands of people were on the site and the servers were totally maxed out just running that silly little query. That little piece of code was causing the entire site to buckle and act like a horse stuck in mud. It was something we just couldn't predict. 

Anyway, the point of all this is that we are working hard to make every chess players' home and while were working hard and doing our best, things won't be perfect and we hope you will understand when our site acts up for a few hours, and you will forgive us when the feature you suggest ends up being sacrificed so we can work on something different. 


- Erik 

p.s. We hit 25,000 members yesterday! Wow! 

3185 reads 16 comments
One Vote
more Misc


  • 9 years ago


    This is a great site Erik
  • 9 years ago


    This site Rocks.

  • 9 years ago


    being a developer myself i completely understand where you are coming from. Coding sites (especially big sites) takes a hell of a lot of time, and you do need to prioritise feautres with the amount of users. Also good luck with Live Chess, can't wait for it.
  • 9 years ago


    Thank you Erik! like your editorial on the trials and tribulations on building  You and team behind you are doing wonders with this site.

    But I get used to the site slowing up from time to time and now I know why, Although it get frustrating sometimes but it must really get more frustrating for you and your team.  But now I know why it happens, helps me  understand the reason for the slow down.

  • 9 years ago


    Keep the good work up Erik!

    You all are building a GREAT site! :D 

    Just too good to be true.. ;) 

  • 9 years ago


    thanks for another great article Erik. count me in!
  • 9 years ago


    I like all the 5 parts of Building Chess.Com and hope many more will follow.  I feel involved though I don't even know what a code is supposed to look like.  The site is great and when I sit down in front of it with a sandwich and a coffee there is nowhere else in the world that I would really care to be in except  Its a complete home.  So thanks and keep building! 
  • 9 years ago


    ya keep up the good work!!:)
  • 9 years ago


     All of your efforts and diligent work is appreciated.  Keep up the good works. 

    Thank you and yours for all of your efforts.
  • 9 years ago


    Hey! Thank YOU for saying thanks to me. :)  I try to stay up on a lot of the user feedback, and its awesome hearing how much people are enjoying the site. That's what really keeps me going. I'm definitely more of a behind the scenes guy, and Erik is the frontrunner in all of this, but I appreciate the remark.
  • 9 years ago


    Thanks a lot for sharing the trials and tribulations related to launching, managing and growing a very successful web site/app... I wished more web sites would include something of that so we can learn both in the technical stuff and in the soft aspects of creating a web property...

     keep up the good work and please thank Jay for the amazing work he is doing with QCodo and

  • 9 years ago


    It is so interesting to hear the view points of the creator in an editorial. I thank you for an insight to your mind.
  • 9 years ago


    I like the analogy of building a house. Good effort here! =)
  • 9 years ago


    I understand completely, and I know that you and all the others put a lot of time and effort into this site, and I am very grateful. This site is a true work of art; a masterpiece.Smile
  • 9 years ago


    Very good story about the trials and tribulations of building and developing the site. Great stuff, keep up the good work!
Back to Top

Post your reply: