Tuesday, February 2, 2010

The #6 Reason that Sun has Set: Diddling with the Desktop

One of the most telling moments in my tenure at Sun happened when I was attending a quarterly sales training at JavaSoft back in the fall of 1999. Myself and the other members of the JavaSoft sales team had gathered to hear from our venerable marketing organization about what technologies we would have at our disposal to try to make our $100m Java licensing quota for that fiscal year. We all knew that the real money makers for the Java technology licensing business were going to be on devices (Java Micro Edition and its predecessors, PersonalJava and EmbeddedJava) and on big, enterprise-class servers (the Java Enterprise Edition technologies for application servers and content delivery systems). But personally, I was curious to hear about our plans for the desktop/web technology, a.k.a. Java Standard Edition. You know, the technology that basically launched the Java phenomena just a few short years earlier and had garnered all the developer interest and buzz amongst the industry pundits? The one that was going to give Microsoft's monopoly a good old fashioned butt-kicking? Would we actually, finally have a plan to eek some sort of revenue from Java SE? And if so, how? Maybe an App Store?

I was floored when the very first thing out of the mouth of our Marketing Director during her presentation of the roadmap for Java SE was "Microsoft has won the desktop". I was floored not because I had never heard this statement before or even because I thought it was in error, but rather because it seemed like a rather silly place to start from. Of course Microsoft had won the desktop - making this statement was as useless as stating that IBM had won the mainframe market. It was the biggest "no duh" moment I'd ever experienced. But at that time, Sun was not supposed to be about who had "won" a market - it was supposed to be about how Sun would challenge the winner and kick their butt. Clearly, something was happening to our competitive spirit.

As the presentation continued, we were told the "desktop" strategy for Java was to focus on having developers target Java EE, using server-side technologies such as Enterprise Java Beans, Java Servlets and Java Server Pages, to simply deliver standard HTML to the browser for the user interface. "Sun's not abandoning Java SE" we were told because it was the "foundation of Java EE" and "very important to developers". But "Rich User Interface" applications (like anything that used graphics, animation, video/audio, etc.) were not important to Sun's "customers" - i.e. those companies who bought big servers from Sun to handle large, mission critical applications for their enterprise - and so would not be the focus of our technology development. Besides, with the legal hassles facing us with the Microsoft breach of contract lawsuit and the difficulties in getting the Java Plug-In distributed and working, desktop developers were complaining it was too hard to write meaningful desktop apps in Java (our own internal development efforts being a prime example - any ex-Sun folks remember SunTEA?). "Rich User Interfaces" for Java were all going to have to be for smaller devices running Java ME - the idea being that Sun could do an "end run" around the desktop by embracing the "next wave" (more on that later).

The good news is that, over time, Sun did eventually focus on desktop "Rich User Interface" technologies like Java 2D, Java 3D, Java Web Start, Java FX, etc., but it took time. Too much time. By the time we delivered on the best of our desktop technology, Macromedia/Adobe Flash and browser-based enhanced HTML interfaces like AJAX had run away with most of the web/desktop developer mindshare. And Microsoft was not far behind with Silverlight, to say nothing of where Apple has landed with the iPhone/iPad and where Google is headed with Android (notice their moves on devices, but also on the desktop).

The experience with Java SE was really part of a larger identity crisis facing Sun in the late 90's and early 2000's. Our revenue all came from the "big iron" of the datacenter, but all our media buzz and developer traction came from our "cool" technologies like Java and Jini. Time and time again, Sun flirted with cool desktop technologies, only to eventually either abandon or subvert them as they strayed too far from Sun's core business - enterprise servers. And Sun never came at these technologies as a business, but rather as a marketing program to keep people talking about Sun while we tried to sell them enterprise servers. The idea that you can make money off the client was never seriously considered - clients were just there to drive transactions for servers.

It's easy to understand why most of our development efforts needed to go where the overwhelming majority of our revenue came from, but the harder lesson was to realize that even for our server business, the developer drove demand and the desktop drove the developer. Sun's abandonment of our desktop workstation business left a hole not only for desktop developers, but also for our ability to get early market validation of Solaris on SPARC processors, something that has impacted efforts on server development. In the end, the lack of a compelling desktop stifled Sun's ability to diversify its business and allowed competitors to monetize where Sun failed to do so. When hard times hit both Sun and Sun's customers in 2001-2003, we had nowhere to go but to double-down on the business that was in trouble. This is classic "Innovator's Dilemma" and, in a classic response, Sun failed to re-think its business model and products to adapt.

Was there ever really a business for Java SE, Applets, StarOffice productivity tools, thin clients or any of the other desktop products or technologies Sun has recently provided? The question, unfortunately, remains unanswered. It is not clear that under Oracle there will be a resurgence of desktop technologies or simply a token investment to appease loyal Sun customers and not much else. But with a stronger and earlier focus on desktops in general and Java SE in particular, I believe Sun would have been positioned to make many of the product moves that have helped turn around Apple, at least in terms of applications, games, media and online services (we would have had to partner for the actual consumer devices). Many in the media criticized Sun for investing too much in desktop technologies that seemed to have no place in Sun's product portfolio. I believe we invested too little too late.

Monday, February 1, 2010

The #7 Reason that Sun is Setting: Running away from Linux

There has been much written about Sun and its various responses to the Linux market phenomena over the past decade or so. Clearly, Linux was one of the primary challenges to Sun's traditional product offering of proprietary Unix systems on proprietary hardware. Sun had built up the Solaris market by competing toe-to-toe with IBM's AIX and HP's HP-UX (as well as a host of other Unix variants) and the strategy that had always worked for Sun was that of "the best defense is a good offense".

The problem with the Linux phenomena, however, was that it was incubated in the same primordial soup that gave rise to Solaris (and its direct ancestor, BSD). Specifically, both Solaris and Linux were born from a "free and open" backlash against proprietary Unix offerings from the primary players of the day. Since Sun had grown up as the David against the Goliaths of DEC, IBM and AT&T, it put the company in an awkward position to have to defend itself as a Goliath against the up and coming David that was Linux. And it didn't help that Sun's traditional competitors were investing in Linux and using it to attack Sun's install base of customers.

All of these factors, along with the fact that many (perhaps most) of Sun's own developers were at least fans (if not out-right supporters) of the Linux phenomena, resulted in constant tension in Sun's strategic plans. To embrace Linux was to feed the growing monster nibbling away at the low end of the market, while ignoring it made Sun look out of touch with a significant trend in the industry. Internally, pro-Linux camps were sprouting up and taking on the traditional Solaris establishment, much to the chagrin of the Solaris development team. After a prolonged internal battle, the Solaris establishment won out, but not without having to dedicate itself to a Linux lifestyle. Such was the birth, in 2005, of OpenSolaris.org. But up until that point, Sun's primary strategy with regard to Linux was largely to run away from it and hope it would go away.

Let's not forget that long before OpenSolaris, Sun had invested in porting and supporting Solaris on x86 (Intel and AMD) platforms, having acquired the Intel/Unix assets of Eastman Kodak (Interactive Systems) in 1991. But Sun really wanted to keep Solaris x86 in as small a box as possible. The real focus was on providing a developer playground where development could incubate while allowing for fast and easy recompilation for deployment on SPARC. Very few people, especially inside Sun, really considered Solaris x86 as a deployment platform until Sun itself launched x86-based products in 2002 and by then, some would say, it was really too late.

By the time OpenSolaris was a reality three years later in 2005, the Linux phenomena was already entrenched in the market, even in some of Sun's previously unassailable markets such as telco and financial services. With OpenSolaris, Sun's strategy was to market Solaris x86 as a better Linux and try to blunt all the market momentum that was moving away from Sun's core hardware systems (both SPARC and x86). OpenSolaris, the thinking went, had all the open source benefits of Linux, but the both the superior reliability that comes with decades of mission critical deployments and valuable new features like ZFS and DTrace that would take the Linux world years to emulate. In truth, Solaris x86 really was a "better Linux" and it should have pushed Linux back into the primordial soup from whence it came and re-established Sun as the King of the Enterprise. But it didn't.

I like to imagine a different history. I like to imagine that Sun created a robust market for Solaris x86 back around 1999 (we in the Software OEM team were pushing for this at the time) and went whole-heartedly after the Windows NT/Novell Netware market with Solaris. I like to imagine that by doing so, we completely sucked the air out of the nascent Linux market and established ourselves as the alternative to Windows in the PC server space. And I like to imagine that all of the innovations we introduced in Solaris worked either better or exclusively on SPARC hardware. It's not that hard to imagine, is it? And imagine if Sun had used Solaris x86 to promote Sun's growth in the low-end x86 market - not necessarily to replace SPARC, but to augment Sun and Solaris.

Barring an investment in Solaris x86, the only real alternative for Sun (circa 2000-2001) would have been to create our own distribution of Linux (which was tried as part of the Cobalt acquisition and the short-lived Sun Linux 5.0 distribution). A robust Linux distribution from Sun was one of Red Hat's (and later Novell's) marketing nightmares. They told me as much. As one of the sole IP-clean owners of Unix copyrights and patents, Sun was uniquely positioned not only to create such a thing but to defend it against legal challenges from within and without the Linux community.

There were many at Sun who believed in the Solaris x86 and/or Linux vision, but in the internal Sun Linux wars, they did not prevail. The rest, as they say, is history.