23 Nov 2011
What I have found during the years is the problem so called “Delusional Boundary”. I am almost always wrong at a judgement call at something.
One example is when we started building Gamling.org. The 2-days-built website has become so famous with its 30k unique users in its fifth day. Anyway, we were talking about building mobile applications for various platforms. I have shot down the idea immediately because I thought it would take weeks to do it (since we didn't know how to build apps on iPhone nor Android).
Last week, I suddenly felt confident that I could finish the mobile applications within a few days. And as it turned out, I spent 3 days on iPhone app and 3 days on Android app. I had been totally delusional about the hours that I would spend.
What a mistake! Mobile apps are crucial to Gamling.org as it enables users to submit news through their mobile phones.
Performance delusion is another problem that I have. 2 years ago, I was building a POS system. It generally has only 5 clients or at most 30 clients. I was so delusional that I was trying to build the server with C++.
After a week, I realized that C++ just overkills. Still, I built it with C# with clients store data locally to increase performance and percevied speed.
That makes the clients super complicated because I had to design and integrate a synchronization mechanism between server and clients.
The mistake was that I didn't do the benchmark.
I just did it today and found out that a HTTP-connection round trip takes about 2 seconds to complete, while a TCP-connection round trip takes only 200ms.
It is fast enough to just pull data everytime a client want and diminish the need of synchronization.
The lesson to learn here is to always do a benchmark because my feeling is probably either wrong, inprecise, or inaccurate.