If you are reading this blog, chances are that you describe yourself as a technology enthusiast. But all these things could be preventing you from building. Like many of you, I face the problem of being overimmersed in tech culture. My RSS reader has me reading 12 different tech blogs daily and I've probably played around with every reasonably stable development tools released in the last 2 years. But at one point, this quickly became a problem.
To me, technology itself became something inherently wondrous and beautiful. Products were amazing because they implemented the latest and greatest tech, not because they did anything particularly profound. Futhermore, my empathy toward other developers was clouding my judgement. I forgave that clunkiness and quirks of the web-apps I saw being posted all over the internet; after all, I knew how much effort it must have taken them and it wouldn't be fair to judge them too harshly.
What resulted was a sense of disconnection from what technology means to most people. I realized it when I was showing my best friend in Massachusetts a web app I created for a hackfest. There seemed to be a fundamental difference between what I what I thought was important to present to her and what she cared to hear about. This was true among the others I showed it to as well.
I don't mean to exaggerate the divergence between the techies and the regular people. Even those who frequent tech blogs have a sense of what is resonable, and the general populace does have a sense of fascination with fancy tech. But with Slashdot, Hackernews and other tech sites, we have created an industry-wide hype machine that distorts our perception of what makes good products.
Here's some tough love to keep you from becoming overimmersed:
- Make sure you're not just building a tech demo. While building the first webapp that uses Clojure to program a Hadoop cluster that processes data from Facebook's Graph API may get you tweeted about, your end user only cares about what the product can do for him. No bleeding-edge technology is going to make up for the lack of a compelling set of features. Conversely, no one is going to stay away from a killer application even if it was programmed in VBscript.
- Don't build a Swiss Army knife. Geeks love LOTS of little features. The most popular sites making rounds on the blogosphere have SMS integration, Twitter, a Firefox plugin, etc. However, real users prefer to look back at the big picture and see whether your app provides a cohesive experience. Its not about the features themselves but rather how they work together to provide value.
- Prepare to be underappreciated. You know that polishing a product take months and that even trivial applications take hundreds of lines of code. But they don't. People simply expect computer technology to do amazing things out of the box and become better over time. If your product is not significantly better than what your users were using 6 months ago, there is no reason for them to switch. Very few people outside the techie crowd are used to using fly-by-night Web 2.0 applications. When the average person sees your site, they will likely compare it to polished, mature products like Gmail. Make sure you have the same "WOW" factor.