⇥ Selling software in an open-source world
Last week, Zend’s marketing department saw fit to send me an e-mail—the third in so many weeks—touting the fact that the upcoming Zend Server 5 will support job queueing¹ to offload requests either to another process on the same server or to another server altogether.
Undoubtedly, this is a great feature, not the least because it begs a little bit of simple business analysis of how difficult it is to create a market for products in an open-source world.
First of all, a simple look at the economics of this feature reveals that, in itself, it cannot be a determinant in the purchase of Zend Server². The reasoning is fairly simple: a copy of the lowest-level subscription for Zend Server costs $1,195. You can, however, get queuing support from a variety of other sources—most notably Amazon Web Services, which sells queuing requests for $0.01 per 10,000 requests. In other words, you’d have to need to make more than 1,195,000,000 queuing requests in a year to justify the purchase of Zend Server if all you ever wanted was queuing support.
Therefore, queuing needs to be part of a larger set of features that, taken together, make Zend Server a compelling and unique product. However, none of its features do this—there is practically nothing in ZS that cannot be obtained elsewhere for a lower cost (or for no cost). What’s more, Zend cannot lock any new feature it adds to its products because it can be easily replicated by just about anybody else.
Case in point, on the very same day when I received Zend’s e-mail, Jonathan Wage tweeted about a library he built on top of Doctrine to manage message queues using a variety of different storage media. So here we have, in the same period of twenty-four hours, a company that is trying to sell me a solution that a person claims to have developed and is making available completely free of charge.
Of course, this comparison represents “all kinds of unfair” towards Zend—their solution could be better implemented, more reliable, or scale better.
Or, perhaps, I could point out that they are not, in fact, selling the software at all.
Software is worthless—service is everything
In an open-source world, the capital value of any piece of software tends towards zero—not only because you others get the software for free, but because vendors cannot lock in any feature that makes it impossible for anyone else to recreate the same functionality and give it away at no cost. Microsoft has proprietary control over Windows and can, therefore, decide which features it allows third parties to replicate. Zend has no exclusive control over PHP and, therefore, enjoy no such privilege with its products. Nor is this a problem that is specific to Zend—any other company that works in an open-source space has to deal with this particular issue in one form or another.
The only real product that a company like Zend can sell, therefore, is the peace of mind of knowing that there is someone that your organization can turn to for assistance when things stop working. Not being a Zend customer myself, I can’t say how well they do this, but I do find it interesting that they continue to define themselves as a product company and that they don’t seem to place any emphasis on their services.
I understand that the need to sell products is primarily one of scale—it’s difficult to convince an investor that they should give you their money unless you can show exponential growth, and a service-oriented organization simply cannot achieve that. However, when your product is, essentially, an extended form of support, you need to build an organization that has service at its core—it’s only through services that a company will gain acceptance for its products and achieve the scale its investors demand.
This is nothing new, of course—organizations as large as the largest software vendors in the world have highly developed service organizations that, while not representing a significant revenue centres, act as a springboard for the sale of the company’s products. This is true both in the open- and close-source markets—think about the size of Microsoft’s Consulting Services division or the importance that a company like Red Hat attaches to the creation of a holistic ecosystem for its products, from certification to training and consulting.
Educate, Penetrate, Accelerate
The importance of services can be best illustrated through the mantra educate, penetrate, accelerate.
Education is an essential part of driving the adoption of your products. It involves the cooperation of marketing, which raises awareness about your products, and training and certification, which promotes competence among your clients. The former without the latter leads to discontent, because your customers won’t be able to use your products. The latter without the former leads to poor adoption, because nobody will know about your products in the first place!
Penetration of the market can only be achieved by a well-tuned and aggressive consulting-services strategy. This is particularly true in the PHP market, which is trending towards a higher and higher level of abstraction in programming tasks—when people invest millions of dollars a year in content management systems, the only way that you can make your products relevant is to make them relevant to those systems. To offset the cost of providing services, a company needs to foster a competitive, but also active and rewarding, environment for its consulting partners, demanding high quality while providing excellent opportunities for profit by reducing some of the costs associates with customer acquisition.
A good service division will lead to acceptance of your products, which is where you can accelerate your growth by selling multiple licenses to your paid products to each client.
¹ I realize that I’m just being petty here, but Zend’s marketing need a severe visit from the Cluebat Fairy—if the best reason you can come up with for trying to sell me a queue management system is that I can eliminate “long-running PHP scripts,” you have failed miserably. To a developer (or, at least, to this developer), queuing has three important benefits: parallelization, prioritization and consistency. In other words, I want to know that I can push messages in the queue so that they can be processed by multiple workers, they can be assigned a specific priority if needed, and that they are not going to end up in some sort of black hole. Offline serving of complex tasks is a consequence of these features, rather than the feature itself—but I digress.
² Of course, you can download Zend Server for free, but that only reinforces the difficulty in creating products for the PHP market.
Photo credits: Girotondo by Luca Sartoni

Comments
Hi Marco,
There is pretty large market of companies who don’t have the right staff in-house to implement the open-source alternatives. It’s easier/more reliable/cheaper for that company to purchase a product than get one of their developers to implement and open-source solution. It sounds shocking that companies are not able to install APC on their own servers, but I’ve worked for ones where they hadn’t even heard of opcode caching.
I suppose it could be compared with food: we all have access to cheap raw ingredients that could be turned into delicious meals by a skilled chef… but often we take the easy route and buy the pre-prepared stuff.
@Richard: Absolutely—which is where the opportunity for adding value is in the OSS market. I’d even argue that the value proposition is huge if you consider that those companies don’t want to have to know what APC is or how to install it—they want to focus on solving their own business problems. You’re sort-of making my point there
The right way to go about job queueing is Gearman. Coincidentally, Cesar Rodas just wrote an article on the PHPClasses blog on how to use Gearman with PHP and implement queues of jobs that run on the background.
http://www.phpclasses.org/blog/post/108-Distributing-PHP-processing-with-Gearman.html
That said, I agree with you that many of Zend customers only pay those license fees for Zend server to have peace of mind regarding the eventual need of support to solve problems that they cannot figure.
However, I also think that many IT departments that buy products from Zend else and other similar IT suppliers do not have the time or experience to find Open Source solutions that exist and can even provide a much more reliable solution for certain problems, like Gearman provides.
Actually, you did not even mention Gearman as a solution for long running job queuing solution. I suppose even you were not aware that Gearman could be used for the same purpose as Zend job queueing.
That is all right, nobody knows everything. I just think that many of IT suppliers like Zend are taking advantage of the ignorance of many of their customers about alternative solutions. I see that as a marketing deficiency of Open Source project developers that did not invest enough to have their Open Source products as well known among the corporate IT clients.
Marco – I believe that we share exactly the same points here. The funny thing is that I use the free version of zend server mainly for the maintainability aspect for the system administrator team that I work at. Also the simplistic upgrades and everything that comes along with it. However, I do turn off any zend server feature that they have and replace them with all of the open source versions:
APC vs. Zend Cache / Zend Optimizer+
XDebug vs. Zend Debugger
As for just about any message queuing type solution, they are essentially wrapping additional software and then providing a GUI to this (at least I would hope so). Providing services is ultimately the goal that I foresee. Say I get the director of technology at my desk stating how can we ensure we have support from a company behind the language, the answer is simple, get Zend involved. However, asking me to use their IDE which only has a few simple things that I can get elsewhere and/or using the professional edition for several thousand a year when we already have most things configured idealistically is unreal. Being a service company on the other hand shows more potential value and reason to come on board with potential solutions.
Thanks for the article Marco!
Very nice analysis. It’s very hard to be a product company in an open source world, especially if the open source communities beat every feature that you’re trying to add. So far the only feature that is not available in a similar fashion is its integrated event monitoring. But for job queues, Gearman has quickly become a better alternative. (Amazon is not a valid alternative, it is not something you can easily integrate into an existing environment, it’s more useful if everything you do is on Amazon).
I think the power is not only in support, but also in the bundling; though you could argue that if that is the added value, then integrating open source solutions would be a better, cheaper alternative for Zend.
Regarding the marketing: I think Zend is trying to address the mass market. And the majority of PHP developers is not at a level whree queueing systems are well known or common practice. The majority of PHP developers struggle with simple problems such as performance, and the way Zend explains the Job Queue might be appealing to those not yet familiar with a message queue but vaguely aware that taking things out of the main dispatch loop of your application might improve performance. A conflict in their marketing efforts however is that its pricing is definitely not targeted at the masses. It’s an ‘enterprise product line’ and though their press releases support that claim, most enterprise users are fairly capable of installing and integrating the open source components.
Interesting challenge for them. Would be nice to get a response from their marketing or management team to get their views.