Before I start, I’d like to disclose that I’m currently working for one of the companies named in this post and that I also am a former employee of another one referred here too (sorry guys, enough clues for today). Also, for the shake of clarity, I’d like to repeat that what’s written here is not linked in any way to my employer, and that it’s my pure personal, independent view on the matters I’m going to discuss.
I want to talk about my view of why Sun went out of business and as a consequence was finally acquired. I’d also like to comment on some of the things I’ve been reading in the Internet about what happened after it that I consider wildly misinformed. I won’t be talking about Sun’s hardware business because I think it was at their Software strategy that Sun failed miserably. Of course, hardware never wouldn’t have never made it alone without the right sofware approach, but that’s another story I may talk about another time.
After a sound failure to get maket share with its software strategy and not managing to become a truly “systems” company, Sun decided to go the Opensource way with almost all of their software products. Their enterprise products then became a long list of Open Source products: OpenSSO, OpenDirectory Server, Liferay, OpenESB, Glassfish, OpenSolaris, DTrace, ZFS and a long etcetera. Their development and end user platform became open (Java, Netbeans, OpenOffice) and even their acquisition strategy went the MySQL way (remember Sun spent one billion dollars in it, one fifth of the price Oracle had to pay for the whole company). I’ve never seen a company so strongly commited to Open Source, and I think I never will. But you know, times are a-changing.
Despite of all this the community never quit ranting about Sun. I still remember long threads in Slashdot kicking Sun in the nuts for not being open enough. Like, they said, IBM or Google. Only after Sun hired community starlettes, gave them the evangelist status and was quite clear it was bleeding to death quarter after quarter the community came to support it. Meanwhile, Sun Software sales guys were working their asses off trying to make the most (a.k.a. selling) of such a model. Also, companies like Google bypassed Sun, the JCP, and the JME licensing that should’ve got Sun some much needed cash because they knew Sun wasn’t in a position to fight (yes, I’m talking about Android and the Java affair). Not that the community support would’ve saved Sun at all but, you know, some recognition eases the pain.
The truth is some members of the community (and I’m not talking about the engineers part of it that are employed by a vendor to work on a given project) don’t give a shit about understanding business requirements. They just care about code, technologies and features; the cooler, the better. And let’s face it: the enterprise world may not the coolest one, but it’s the one customers live in.
What about the revenue model based on getting the money from supporting OSS/free/Sun’s-dual-mode software then? Allow me to give you a real example of why this didn’t work as expected.
Let be a customer using a supported version of an enterprise software product that had, as was usual back then at Sun times, both the OpenSource and the supported flavors. The customer finds a bug; they report it. Turns out engineering tells the customer the bug is already fixed in the OpenSource version (by the same engineers working in both flavors) but that the supported version will have to wait until next release. This, of course, is because there is different dynamics in both worlds. There isn’t any commitment from the vendor as to the quality or stabilty of a community-driven nightly build so the bug can be quickly fixed without further checkin. But a supported, contract-bounded product is a different kind of animal. You’ve got to include the fix in a product cycle, run tests in different platforms and in general, follow a product cycle that any engineer in any other production sector knows quite well. But the image you’re projecting to your customer is this: “You are fixing a bug that I discovered for the people that’s not paying although I, your customer, am getting nothing back for the money I’m paying you”.
This is why I cannot disagree with releasing the Open Source version after, and not before, the supported one (and hence paid) is out. Because your customers should get something back for their loyalty, don’t you think? If you don’t want to be out of business and remain a innovation top dog (and that’s another interesting discussion), better do it this way too. Just ask youself this question: which one of the top software companies today is disclosing its core business code before they get any advantage from it?
Lately I’ve been hearing (well, mostly reading) a lot of moaning about Oracle being the new evil because of what is happening to some Sun former products under Oracle’s management, some of it from people that make a living with software, from people that were using the Open versions and never paid a single dollar in support nor contributed a single line of code or from people that never set a foot in a big company. And I’m fed up of it.
I think is fair and necessary to call a company evil for abusing the rules of the market, trying to bend the law to its interests, or because it claims something while it does just the opposite. But Oracle’s statement regarding Sun was cristal clear for anyone willing to hear it: they were going to get Sun business back to profitability, and that means making money. You may not like it for your own personal reasons, but if you’re in this world you should know better. So, now that even Microsoft seems not to have that role assigned anymore, stop moaning and looking for the Generic Corporate Evil To Hate that gives sense to your life. Black and white isn’t even in Disney movies anymore.
Notas