Wednesday, March 19, 2014

Hosted software

Quite a number of times I have heard someone opine that they wished a particular piece of software was not free, so that they could have some expectation of it sticking around for a while. I think if taken with the right nuance, this is actually a valid idea. However, I have heard this idea offered as a panacea, with no nuance in sight.

Let’s get one thing out of the way at the start. Companies that offer software for free make lots of money. Gobs and gobs of money. I mean some of them do. And the ones that don’t have a not-utterly-inconceivable ambition of joining the club. Yes, the number of companies that ultimately receive that billion-dollar acquisition without ever charging their darling users a dime is quite small. But the number of humans who resonate with the saying “go big or go home” is not small.

Now, neither am I defending the software-paid-for-by-advertising model of the Facebooks, the Twitters, the Googles. What I am saying is that it makes economical sense. It works. It employes a large number of programmers. But I don’t like the affect it is having on the industry. If there’s another way forward besides code-plus-ads, I hope we find can it. Because it’s the worst.

I’m not here to pull a rabbit out of my hat. If we aren’t going to give software away for free, we are going to have to charge for it. The point I want to make is that for an individual product that is offered for free, we don’t have any reason to believe that the company could stick around longer if they charged money for it.

The fact is that there are products that are technically feasible, and useful to someone, yet economically infeasible. I mean we have discovered a ton of such products. Startups fail every day, and while I’m sure all of them made mistakes of execution, I think it’s reasonable to point to them as examples of unsupportable products. To be precise, I mean that there are potential products where someone wants the product, but there aren’t enough people willing to pay enough for the product for the software to be maintained.

I suppose there is also the situation where a product is viable, and people love it, but the company changes it in some way that makes it more profitable, but some of the users love it less. But the additional profit is more than what those disgruntled users would have been willing to pay to prevent the change. They simply cannot afford the thing that they want.

I realize that I am basically focusing on the hobbyists here. People like myself, who are trying to assemble a robust computer workflow for their lives. The average user may complain about a Facebook redesign, but they would not begin to think about why they cannot pay for the Facebook they want.

All of this is a long way around saying that I’ve come to the realization that when web applications shift power away from users toward the vendor, the users really do lose something. I remarked recently that on the scale of software freedom, hosted software is far worse than commercial desktop software. You don’t have the ability to keep using an old version. You don’t have the ability to keep using the software at all if the company’s business model turns out to be unsustainable. And, fundamentally, paying for hosted software does not alter this situation.

I’m not saying that it doesn’t make any difference. Certainly it feels better to be a patron rather than just a pair of eyeballs to be sold at auction. I hate ads. But it doesn’t change the fact that you are basically surrendering all control. The fact that you paid them money does not mean that they will evolve the program in a direction that you like, or that they will even stick around for another year. You’ll hopefully get a refund if they decide to truncate your subscription.

The massive advantage of hosted software in terms of user convenience is uncontested. But if your highest value is convenience, it’s hard to argue with free. Certainly having functionality taken away from you without warning is inconvenient, if one takes a longer view. The much-remarked advantages of hosted software are weighted toward the short term.

I am well aware that this kind of thinking leads down the road to Gnu and Free Software (not just open source). But deep, deep down I have the heart of a moderate. I think people like RMS have a point, but I don’t think entrenched absolutism is very helpful.

One question that comes to my mind is why don’t more SaaS companies open up their codebases when they fail? Of course there may be legal implications, but it seems like if you planned for this eventuality in the beginning, it would be possible. Even if they did, I suspect it would not be very easy to make use of the code. The more code in the open the better, in some ways, but you couldn’t expect people to just start hosting the product for themselves.

The code would be designed around the specific infrastructure the company was using, which in turn would be designed to meet specific usage patterns. So out of the box you’d need documentation of the whole cluster. Certainly if enough people cared you could rally around the codebase and update it to be a bit more portable.

But I would also expect the quality of the code to be pretty bad. It wouldn’t have been built for people to look at. The late-binding nature of web development is lauded as a boon for developers, and indeed it is. But by making it easier to fix to bugs, it has also made it less important to prevent bugs going into production. Both by being deployed in a controlled environment, and by being fundamentally temporary—easily updated and not expected to outlive the company—hosted software is inherently of lower quality than desktop software. This doesn’t matter very much while the company is alive (and is maintaining the app in a way that you approve), but it would certainly matter if you tried to continue to use the software without the company.

Well, now I’ve gotten a bit afield of what I wanted to say. There is certainly a way of building a business that aims for sustainability, and a different way that aims to go big or go home. When people say they wish a company would charge for its service, I guess they mean they wish they would aim for sustainability. I totally agree. But I am skeptical that building for sustainability is as simple as slapping on a price tag.

One bit of complexity here is whether we are talking about the sustainability of the program itself, or the company behind it. In a lot of ways these are synonymous, but not in every way. If I buy a desktop application and the company goes bankrupt, I can continue using the application. I won’t get support or further updates, and if I continue to upgrade my OS and my hardware it will eventually stop working. But I could continue using it for much longer than a web application in the same circumstances, and I can use that interim time to plan my transition to a different tool. However, it may be that if the same company had built a web application rather than a desktop application it would have been more marketable, or less expensive to maintain, or whatever, and the company itself could have survived.

In the current environment, with web applications being shut down all the time, it is easy for me to assume that desktop software is inherently more sustainable, but I don’t think this is absolutely the case. A similar dynamic exists with free vs. commercial software. In general I would expect free software to last longer in a usable form than commercial software that serves a similarly small niche. However, I would reverse this expectation if I were thinking of business-critical software rather than personal use.