04 November 2007

Making money with free software

Business model #1!

"Turning capital into code"

I believe there is a viable business to be had running a software company in a novel fashion. Each project to create a new or improved piece of open source software would be funded by multiple contracts with businesses who have a need for the software. The software business would be run as a partnership ala John Lewis, where the employees own the company.

You can stop reading now, that was it. Move a long, no more useful thoughts here.

Still here? Okay, if you insist I'll explain myself. I didn't have time to write you a short blog post, so I wrote you a long one.

I'm always interested in how business is done. And the more I see, the more I start to realize that business doesn't have to involve exploiting people (wanna buy a ringtone?), it is in fact more usually an agreement where both parties benefit.

Sure I could make a motorcar myself, but by the time I've finished tightening all the bolts in the mechano set it will probably have cost me fifty grand to make and do naught to sixty in pieces. Much better to buy a production car for fifteen grand and be happy that the manufacturer, sales person, mechanics etc take a percentage of my money as, shock horror (communists look away now) ... profit! Besides didn't my money come from charging someone enough to make a profit anyway?...

So, having alluded to the fact that I live in a capitalist society, I shall tell you what this has to do with open source / free software in my mind.

By trade and by choice I'm a software developer, turning my hand to whatever variant of software is needed at the time, and not afraid to set up systems and databases if the need arises.

I have for some time now been of the opinion that the open source method of development and distribution is superior to the proprietary (closed source) model, both as a user and as a developer. As a user, I find that community driven software generally does the things that are important well, and is significantly better supported due to the community that gathers around it. As a developer (though I have yet to run an open source project), I think that the direct, unfiltered feedback from users is better, the collaboration between developers is more effective, and there isn't a pressure to deviate from the correct solution to a problem into making pretty things that don't work. Having said all that, all software is written by humans, so some projects fair better than others. There are limited resources on both sides of the fence so each has its own areas of strength and weakness in terms of quality and completeness.

Okay, so I like open source software (OSS). So what?

impressive old glass roofWell, you or I can make money with proprietary software by creating something desirable, then charging people for using it ala Fog Creek. Which fits nicely in the capitalist world, and you can run your business as anything from evil empire (mention no names) to tree hugging near-as-damn-it open source and still turn a healthy profit. But that's never sat right with me because although I see the logic, you aren't really charging for the work you do, you are charging for an artificial restriction on redistribution. In other words I get enough investment together (time or money) to create the software in the first place, and get paid nothing for it. Then I sell it with virtually no overhead and hope to make up my initial investment, followed by a healthy profit. You can then use the healthy profit to improve the software, fund new software or attempt crush/buy the competition (maniacal laugh). Sure it works, but what if you could give your software away to the world once it has paid for itself? Wouldn't that make the world a better place? Well, that probably depends if you are creating restrictive crapware, but either way the way the answer is likely to be "Are you nuts?!! Throw away all that free profit?!".

There is another business model around that is working very nicely for some people and companies. The "you want it, you pay for creating it" approach. This comes in two flavours. Very common is hiring a contractor / employee to create exactly what you desire even if you have no idea how to create software. This can be used to give a business an edge over its competition, or even to allow it to do business at all. This is a very expensive way of creating software (for that company) but is sometimes the only way. Some open source companies are expert at negotiating contracts to create custom software for profit, that software may then join the world's supply of open source software.

Both of the above models fund a fair amount of the open source software available today, but I would like to see more money going into the creation of open source software, as it directly enriches all the people on this planet (money being simply a representation of all available resources, and open source being one of those resources).

It strikes me that there is a gap in between the two methods of funding software outlined above. On the one hand you take a punt that lots of people need something, create it and charge for the result, and on the other hand you find one person / company that needs something and charge them a handsome sum to create it (after which you can do as you please with the result, contract permitting). Given an imaginary need such as "software for tracking individual lumps of coal", what if there are not enough companies who want to track their coal in detail to make it worth taking a punt and using the packaged software model, but equally no individual company can justify paying the extortionate rates us technical mumbo jumbo types charge for such things? Well it just won't get created, and they'll just have to carry on using illegal immigrants to write on their coal with chalk.

At risk of getting to the point, we might find with the coal tracking software scenario that if we were to divide the cost of creating a coal tracker system (CTS) by the number of companies in need of such a system, then it would be a viable project. So maybe we could approach all these companies with a proposal to create a CTS (we love acronyms in IT, we even pretend to know what they mean), and get an agreement that they will jointly fund it. Okay so some won't go with it but the more that do the lower the cost per client.

What has this to do with open source? I figure that seeing as open source is a better development model anyway, it makes sense to run such a project as an open source project. This way, all clients get full control and visibility over the software they have paid for, and can benefit from others' additions. The world then becomes a slightly richer place for everyone (unless it's crapware!). This plan has the added bonus that it panders to my highly unprofitable desire not to charge for things that don't involve effort or materials.

There are many ways to approach getting contracts for such work (all of them hard no doubt). One could start with a single contract for the full price of the work, with the possibility of paying a lower price if more clients come on board. ie, contract one for 100% of the cost, but reduced to 60% if a second contract is found, with the second contract also paying 60%, giving a 120% income, continuing on this theme as more clients are found. Going for slightly higher than an equal division of costs gives an incentive to find more contracts and reduce the price for the original client. It might prove easier to start with say four contracts that state work and billing are dependent on finding four clients. I don't imagine for a minute this would be easy to swing, even with some of the more open minded companies out there, but I reckon all the worthwhile things in life require some effort (like flying helicopters of any size, for example). Perhaps with the right marketing spin it could happen, and the once it is proved to work, it might get easier to win the next contract.

So if this is a successful business in the waiting, why would you want run the business as a partnership and share all that juicy profit with mere employees?! Well the inspiration for this one comes from my favourite software business writer Joel Spolsky and his explanation in his article "Converting Capital Into Software That Works" that software companies' most valuable assets are the programmers. The long and short is that if programmers have financial buy in to the company they will care about the company, and if you are successful then the programmers will stick with you for the money. In fact I would go as far as taking the mission statement for such a business straight from the article, "turning capital into code".

I have one last point to cover before you turn off your set, tuck the cat up in bed, post to twitter what it just did and turn out the lights.

If this is such a killer business model, why on earth would I post the intellectual property (don't use this term, or the FSF will get you), er I mean information for some smart banana to beat me to it? Simple. Successful business is one percent inspiration, ninety-nine percent perspiration, and it is the successful execution of an idea that makes or breaks a business, much more so than the original idea. In fact I'm sure many businesses start with one idea, then discover the harsh realities of commerce and up doing something else anyway. And if someone does beat me to it, it will make the software world a richer place, so I in say earnest good luck to you.

The other side to releasing such information, is that I've seen what a positive effect openness has on the business of writing software, and I can see the potential positive effects for business run in an equally open fashion. Sure there are a few downsides, such as visibility for the competition, but I think as a rule they are massively overstated, and completely outweighed by the buy in and good will that you could gain from customers and potential customers from being completely open with them.

I'd love to hear of any ventures in this field, and any feedback, constructive or destructive is always welcome.

Thanks as always for your time. All the best from your host Tim Abell.


Tim Abell said...

Looks like someone beat me to it with Open Funding

Anonymous said...

Oh Tim....

If, as a business owner you come up with a softwar idea which will give you a competitive advantage will you seriously open-source it?
Would 4 out of the 5 coal companies in the world fund a project knowing the fifth will probably just use it for free?

Tim Abell said...

Hi Joel,

Thanks for reading, and I'm grateful for the comment.

I agree that there are large classes of software that companies will never fund as open source, however I'm convinced that there is a large body of unwritten software where there is value to be generated on both sides and a business benefit in using the open source model. Perhaps something which is broadly useful like project management software, or perhaps something sector specific which doesn't attract the major boxed software vendors. Likely it will be the kind of software that brings efficiency savings rather than that which allows venturing into new fields.

But really, I have no idea what would happen when put to the test. It's just an idea at the moment, and you can't beat asking for hard cash to discover how much an idea is worth!

The aim is to make a healthy profit, while persuing Richard Stallman style ideals, something which with a little thought and an absence of greed can often be achieved.


Anonymous said...

Yes, where open source really succeeds is in general-use tools/libraries etc.

This gives software companies an opportunity to use something proven and yet improve it where appropriate without shooting themselves in the foot. Afterall if I choose to use Postgres over Oracle I'm unlikely to be getting a direct competitive advantage due to features but I offset against cost-savings.

If my competitor uses Postgres what do I care - we're not competing on database backends. It's the implementation and the 'glue' that counts.

I can't foresee open-source ever being effective for industry-specific applications due to the competition angle. The only exception would maybe education or government where there doesn't really exist 'competition' in a commercial sense.