One of the most crucial skills any successful entrepreneur can possess is the ability to know when their baby project is ugly. Not just visually, but the project as a whole. My goal with projects is to search out the high-impact ones. And that requires me to be very prolific. Ugly baby projects are projects that are interesting to the person but ultimately serves a very narrow niche with low revenue potential and requires a high, on-going maintenance cost. If you don’t know that your baby project is ugly, you will waste a lot of resources pursuing it, rather than moving onto a new project. It’s like quicksand for an entrepreneur. Avoid at all costs.
I’ve worked on numerous projects with many successes and a few failures. Here’s a quick story of the process I went through with one ugly baby over a 4-week period. I’ll also break it down into detail for the tech oriented.
In April ’10, I had just received the newly announced iPad. Being a home theater buff, I immediately saw the potential of the iPad as a control device. There were so many remotes in my living room – for the HDTV, the audio system, the cable system, several remotes for the HTPC (a PC built to be connected to the TV), DVD/BluRay, etc. Why not consolidate on the iPad?
A couple weeks later, I began a project called Intellimote. Its aim was to be the single, central control point for the living room. It would leverage all the capabilities of the iPad – graphics engine, internet access, local storage, etc. It would allow you to control your home theater through a gorgeous interface, show you information about the shows you’re watching, and let you take and play the content on the iPad itself when you’re on the go — the smartest remote control. With US Home Entertainment spending hitting $20 billion in 2009, this is a lucrative market.
As luck would have it, the Google TV initiative was announced about the same time I started this project. Google wanted to leapfrog Apple from smart phones directly to TV before Apple could get there. I could ride the smart TV wave!
To begin, I had to figure out what the market strategy would be. This would dictate the approach to product development, marketing, etc. I decided to initially focus on the HTPC market — TV’s that had a PC hooked up to it. I would capture the entire HTPC market for remote controls and get the market trained and used to my software. I would then leverage that initial core base until consumer adoption of the Smart TVs were the norm, and then I could hook Intellimote into all the platforms — Google TV’s, Samsung’s, LG’s, etc.
I convinced myself this was good because I could set a standard now and then push harder when the Smart TV wave became a tsunami.
To test out the theory, I spent a day creating and launching the intellimote.com website to gauge demand. Then, I discussed the idea in HTPC forums. The people there seemed stoked about the concept and wanted to be involved. Through the website, I started getting email addresses interested in the private beta.
I knew that I had to move quickly because the iPad was the latest hot gadget and soon there would be many remote control software. So I began development immediately. I wrote a listener service for the HTPC, and then wrote a client for the iPad that connected to it.
Here’s a very short 20-second video of the media browsing interface of the client:
Of course, the control interface itself had to be gorgeous to fit with Apple’s design ideology. The client I ended up with, as you can see above, used beautiful 3D effects, reflections, and animations to display the media options (watch the video). I didn’t get a chance to optimize for speed so the touch response is a little slow. One challenge was that the original iPad only had 256MB of memory. (To get around the memory issue, the client had to rapidly unload images from memory that were off the screen and pre-load new ones in both directions, depending on what it thought the user wanted.)
The iPad client understood what was on the screen and if a video was playing, it would turn into media control mode. It also supported themes, so I played around with a few that would ship with the product. During testing, the designs above worked out well since you could control without needing to really look down at the iPad.
For the listener service, it needed to be intelligent and handle vastly different functions. Without getting into the nitty gritty, the server was broken down to essentially five components: API (JSON) for client-server communication, SQLite Database for relational data storage, HTPC control layer for media control, Media Scanner for metadata gathering, and an embedded WebServer as a foundation for client-server. I wrote most of it in Delphi.
One obstacle was the capability to take the media on the go with you, which was one of the coolest features of Intellimote. For instance, if you were watching something on your TV and then had to run to a meeting, you could literally continue watching it from the TV to the iPad without interruption! To accomplish this, I had to solve some issues.
The iPad only plays H.264 video through its HTTP Live Streaming protocol. So, I had to make the listener service transcode the media being played into H.264 and split up the video into 8 second chunks. Then it would continuously update the .m3u8 index file, which alerted the iPad of the new chunks as the transcoder created them. This was done very quickly (about 500-1000 milliseconds – up to 720p resolution), which allowed for a seamless experience and instant-on streaming from the device.
In May ’10, I had created and launched the Intellimote.com website, built the server with all the different components, and wrote the client that communicated with the server and had nifty 3D effects as the user interface. It had taken about 4 weeks, but finally, it was ready for beta. People were sending me emails asking me if they could test it. All I had to do was upload the software and go beta.
Before I did that, I assessed the project and came to a few conclusions:
- Lack of Demand: I was getting only about 10 sign-ups a day from the web site, not nearly what I had originally expected.
- Development intensive: This project required constant maintenance on multiple fronts – iPad, server, different HTPC configurations, multimedia players, metadata providers like imdb, etc
- Wave became a ripple: Google TV had some launch partners – Sony, Logitech, etc. But, early reviews were not great. The experience was fragmented and traction was not great. Google’s approach did not solve the living room problem (yet).
- Market Fragmentation: If the only serious industry consolidator, Google, was having a rough time, it meant Smart TVs in general was going to be fragmented for awhile. More TVs need the ability to load software directly into the panel instead of using external boxes.
That’s when I had the realization — my baby was ugly! If I released this project, it would serve a super niche market at this time, and I would have to incur the maintenance costs of the project — my time, energy, focus, capital, etc. I had to recognize that this was a toy and write it off as a failed project.
You might hear from people that “It’s not ugly; it’s just not good enough. You should keep going.” So, how do you know whether to stop or keep going? For me, it came down to the impact that I expect from the projects I’m involved with. The equation just didn’t work out for me personally:
This was not a case of build it and they will come — this was a case of build it and you’ll have a small private party.
Yes, I dedicated resources to develop this. But to continue forward with this project because I was already invested is digging myself deeper into the hole. Had I not killed the project, I would have been shackled to it through support, maintenance, and adding new features asked by the users. I would not have had the time to explore new projects, like this successful side project that I wrote about a little while back. Your time, focus, and energy is way too valuable when you are doing projects and knowing which ones to pursue gives you a huge advantage.
This problem has probably happened to many of you. Entire projects or even just “this amazing new feature” of a project fall prey. It’s very easy to want to do more. The important thing is to know when to say “No, let’s not continue with this.” It’s hard and you’ll need to swallow your pride. Then cut your losses. It can be the best for you, your product, and your customers. Google killed Google Wave because it was an ugly baby. Assess your project like I did above. Then ask yourself, do you have an ugly baby project?
On that note, I am now working on another project that has high impact and the market seems just right. When it’s ready, I’ll write another post on how to know when your baby is gorgeous 😉
Thanks to Antonio Rodriguez (Matrix Partners), Joe Medved (Softbank Capital), Ty Danco (Angel Investor), Roy Rodenstein (Going.com/AOL), Sean Lindsay (Viximo), Chris Keller (FollowUp.cc), Bilal Zuberi (General Catalyst), Aaron White (Proxlet), Charles Huang (Spark Capital), and Fan Bi (Blank Label), for reviewing drafts and giving feedback.