Tuesday, April 29, 2008

How to make software companies compete?

I don't think that it is too hard to conclude that software ecosystem is flawed. Just look at the history. I am not aware of any industry that led to such high market shares and monopolies in almost every segment you can think of (should I mention Windows, MS Office, Photoshop, Quark, AutoCAD).

I think that in the terms of market economy you can say that software competition is too expensive, and that market found an answer that optimal solution, under current conditions/limitations, is to have one dominant player. It is just too expensive to have several non-compatible platforms last for long time, and we all know that (Betamax and VHS couldn't live forever, HD-DVD and Blue-ray too).

Those software monopolies are however much different than those private-standard monopolies like VHS. It is because everyone can license VHS (including Sony, which was on Betamax side) and make his own player, which might even become best selling machine thanks to producer's further inventions and marketing. Of course, private standard owners will get their royalties, but they can't have everything just because they have the standard.

So, it turned out that one dominant player was short-term cost optimized solution, but in the long term it causes a lot of problems. As barriers to entry became very high, classical solution that new player will appear was not relevant - and those that tried usually failed. But market found one possible way to restore competition - support open-source movement. Generally speaking, it wouldn't be a healthy way for normal market to function as open-source, but in the terms of current conditions in software markets, it brings competition to market and thus improves its health.

And then, there come the patents. If you want Gmail like experience, you must use Google, as it only has patent on that. Even if everything else is flawed, you must stick to it. The same goes for iTunes, iPod and Apple. As companies seem to embrace patents much more now than they did before (Apple lost case to Microsoft because it relied on copyrights and not patents), this will make competition even harder - may I say that iPod market share would be standard to follow. On the other hand, I can't just say no to patents (just like some people do) - Apple took a lot of time, money, effort and employed best people to make iPod, and it is not OK that someone else can copy that with no sweat.

So, I want to return to one my idea that I had 15 years ago - software should not be sold as applications, but as features. Generally speaking, it means:
  • there are subapplication level standards that allow features to communicate - they should be made OS wide (for example, Mozilla search bar could take user input and translate it to URL and send it to any rendering engine);
  • probably there should be some non-profit organization that enacts standards to ensure this;
  • software producers would have to have price list that has price for every feature they sell;
  • people would buy software from something like OEMs - they would pack different features from different producers together and sell it (they would have discount from vendors which could form part of their profits);
  • one could buy features from different vendors and make his own suite, but most people won't do it;
  • if software producers had patents on something they must license it and cost of license cannot go beyond some percentage of listed price (e.g. 30%);
  • if someone builds patent upon someone's patent, he could took 30% from his selling price with his license cost deducted;
  • it would be nice to have site/sites which would sell certified software features.
I think that this would improve market condition in several ways:
  1. Consumers would buy only features they need.
    • Software producers must focus on exact consumer needs to increase their revenues
    • Software producers would get feedback if they develop something which is not valued by market and would cease such developments (which might not be the case now)
    • Consumers would pay more fair price - if one knows just to use several features of Microsoft Word, but he respects the speed of this program and wants to use it, he would pay less than some people that need more things

  2. There would be room for more market players
    • People wouldn't buy everything from one company - one company cannot be best in everything, and thus different company would find their smaller or bigger niches and would have stable revenues to finance further development.
    • Even small companies would have chance to invent something in the world of e.g. Office software. You wouldn't have to write Microsoft Office from scratch just to introduce one new feature.

  3. People would be able to get the best of the breed - as said before, no software company is best in everything. So, why would you use two programs of the same kind where one can do one thing good and other can do other thing good and constantly switch from one to another, when you could combine their features in one nifty application?

  4. People would be able to use best features across different applications. It is obvious that graphical programs usually fall behind in text editing to text processors. But why would you be limited to use features from those programs. If you like the way Microsoft introduced live preview of fonts, why you wouldn't be able to buy that feature, ask your computer to install it? It searches then all the places where font dialog appears, lists it, and ask you to confirm replacement.

  5. Patent owners would get fair prize for their work, but patents wouldn't stop competition and innovation from developing.
Of course, you can think of downsides of this approach:
  1. More administration/standardization may slow innovation - in general it is right, but in the long run it is the competition and reward that drives innovation, and I can't think of more competitive environment than this
  2. Things would become too complex for consumers - though it is true that things would be more complex, it is also true that you can chose among large number of options when you buy hardware, and it still works. Also, don't consumers feel nice when they can buy just one song on iTunes store or build compilation they like, instead of getting whatever is offered out of box and they don't need?
  3. Compatibility problems may occur - it is also truth for hardware. OEMs are there to resolve them. If you want to resolve them yourself, then you should know what you are doing.
Eventually, I see two possible solutions that would drive the world to this system:
  1. Government would realize that software competition is flawed and enact new system
  2. Consumers and competition to dominant players would response in an open-source fashion and make claims to build and use this system.
I hope that people that read this are aware that this is just an outline of idea and it is not solution for every single aspect of problem. I stumbled upon several things which made me think that it would make implementation impossible, but after some thinking I found how they can fit in.

Labels: , , ,