Luke asks:

Do you have any plans on ever releasing your applications for purchase to be run internally at a company?

It would be highly unlikely that we’d sell installable software. This question is actually more about business than it is about software.

We’d be a different company

Here’s why: We would have to be a fundamentally different company to develop, sell, and distribute installable software. We probably couldn’t be as small, we certainly wouldn’t be as agile, and we definitely wouldn’t be as happy.

If we built installable software we’d have to spend a lot more of our time on technical support, write a lot more documentation, slow down our development process, and lose a fair bit of control over our customer experience. For some companies this wouldn’t be a big deal, but for us it would be a real drag.

Hosted = Controlled development and deployment environment

Software is hard enough to get right when you control the variables. With web-based software we have a single code base optimized for a single operating environment. We’re in charge of putting together the optimal software and hardware set-up to run our products. The significance of this can not be overstated.

Installable = Lots of room for things to go wrong

With desktop or remote server based software you may have a single code base (as long as you haven’t made custom versions for this, that, and the other customer), but you have to deal with endless operating environment variations that are out of your control. When something goes wrong it’s a lot harder to figure out why if you aren’t in control of the OS or the third party software or hardware that may be interfering with the install, upgrade, or general performance of your product. This is even more complicated with remote server installs when there may be different versions of Ruby, Rails, MYSQL, etc. at play.

Backward compatibility headaches

Further, when you sell installable software you have to deal with backward compatibility. If your latest version is 3.2, and a few thousand people are still running 3.0 instead of 3.1, what does that mean for your upgrade procedure? And what about those people still on 2.9 or 2.8.7? Maintaining backward compatibility is probably the biggest impediment to software progress.

Of course web-based hosted software has similar issues in regards to different browsers and different versions of those browsers, but this issue is the same for web-based installed software. This negative is a wash.

Upgrade cycles

Lastly, web-based software can be updated and improved instantly for every single customer at the same time with no effort on their part. We can update the software daily — or multiple times a day — without placing any burden on our customer base. Installable software usually has slower upgrade cycles because it makes more sense to group releases together so you don’t have ask people to download updates every day.

None of this is to say desktop or installable software is dead or uninteresting to us as consumers. But as far as building it goes, we think we’ll stick to what we love: Developing and selling web-based hosted software.