How to build a software product on the cheap: Open Source + Usability

Joe Krause recently wrote that “Its a great time to be an entrepreneur“. Yes, it is. Joe talks about cheap hardware, free infrastructure software, cheap global labor markets, and search engine marketing. There is another reason that its a great time to be an entrepreneur – an excellent example of which is Joel Spolsky’s latest project: CoPilot.

Take a good open source software. Something really useful. Something well built, that solves a real problem. Something like VNC. You can take your pick from the many flavors of VNC – Tight VNC, Real VNC, Ultra VNC …- . There is no better way to share your screen with someone – if you are willing to deal with the usability problems that come with it.

In search for the perfect collaboration tool with our India team – we have tried many types of VNC. All of them share one characteristic – really hard to use. (We gave up and bought a subscription to “GoToMeeting“.)

But there, you have your ingredient No 1. An incredibly useful, but hard to use open source product.

Next, layer on a business model. Find a task that people have tried to use VNC for. Something that was important or cumbersome enough that screen sharing would bring real benefits. Something people would have been willing to pay for. Joel came up with – informal tech support or people helping their family/friends with computer problems. Yes, we have all tried that. I have done it over international phone lines (that was before Skype), and wished for an easy way to see someone’s screen.

That’s your ingredient Number 2.

Next, wrap it up in an easy to use interface. Make installation dead easy. Don’t require people to even think about firewalls, config files, or become aware of their existence. Don’t ask for passwords. Make sure it passes the grandmother test with flying colors. Just make it easy.

That’s ingredient Number 3.

As any experienced software engineer will tell you – it’s better to reuse code than write your own. Look around the open source world. There is some great software with terrible usability. It was only a matter of time before some savvy entrepreneur realized that layering on a great user experience to an open source software is a strong foundation for a product, built on the cheap (Joel only has four interns working on this).

This also ties in with my oft-repeated theme about usability of open-source software. While I still continue to advocate that, lets admit it – open source software is a long way from embracing usability. The other way is an entrepreneur who understands design/usability using open-source software as the kernel.

And just in case, you are not convinced yet: Mac OSX is built on top of BSD-UNIX. And Steve Jobs is a man with an eye for design.

4 responses to “How to build a software product on the cheap: Open Source + Usability

  1. He rashmi,

    this is an interesting model, have you seen any examples or thought of a a business model where a software company releases it’s core technology such as the vnc part as open source and keeps the slick interfaces, APIs, maybe docs private? Our company eBusiness Applications, develops AJAX UI controls, but I think the it’s the integration with different frameworks such as .net and java that give us a competitive edge….open sourcing our javascript or using OS javascript for future components may be an interesting business model.

  2. Andre,

    I am not an expert on this topic, but I think that Joel is planning to contribute the TightVNC related code back – thats the way it sounds from this discussion (look towards the bottom of this discussion).

    Another related discussion on the topic at Joel on Software message boards.

    Jon wrote about this issue on his blog.

  3. Remote access to a computer-whether someone else’s via screen-sharing, or to a remote machine, is quite useful and cool. Our company (a href=””>Surgient builds products which use, among other things, open-source VNC (and its MSFT sibling RDP) controls. And yes, our focus is largely on delivering those “remote experiences” to users in a usable and quick way.

    Now, I’m waiting for someone to figure out a way to build a usable commercial offering on top of CVS. Version-control is such a powerful concept–there’s got to be some way to offer its basic value in a straightforward, friendly way.

  4. A great example of a tool with an open source core and a proprietary user interface is Apple’s MacOS X, which is based on the open source FreeBSD.