Is the Apple JVM an "Extra Feature?"
The Agile Zone is brought to you in partnership with Hewlett Packard Enterprise. Discover how HP Agile enterprise solutions can help you achieve high predictability and quality in your development processes by knowing the status of your projects at any point in time.
I'd like to begin by asking the question, "Is the Apple JVM an extra feature?" I wrote about extra features in episode two of my series "The Seven Wastes of Software Development." "Extra features" is the mapping of the lean manufacturing waste "overproduction" into the software development space by Mary and Tom Poppendieck. Any and all features come with a cost and generate a certain amount of waste, and this is absolutely true of extra features as well. How do we determine whether or not a feature is extra?
Let's begin by referencing a Standish Group study  which states that almost 65% of software features are rarely or never used. Is this something that's true of Java on the Mac? Let's examine the situation. I have absolutely no statistics to back this up, but I think it's fair to say that the development of client-side applications targeting the Mac OS X platform flat-lined years ago. I challenge you to name one "killer app" for the Mac platform that is written in Java. With that said, the Mac remains a very popular platform on which to develop server-side Java applications. I and nearly every one of my colleagues on the No Fluff Just Stuff tour use a Mac laptop for developing JVM applications. But are we representative of the Java developer community as a whole?
My guess is that everyone would agree that the community of Java developers using Eclipse represents an reasonable cross section of the Java developer community as a whole. The Eclipse Foundation recently published the results of its 2010 Community Survey. The results of this survey indicated that usage of Mac OS X as a primary platform for software development topped out at 7.9%. More importantly, this means that 92.1% of Eclipse survey respondents rarely or never use Mac OS X as a software development platform. Now I know you can make statistics say anything you want (as I just did), but it is a startlingly high number nonetheless.
In his recent article entitled "Waste!" Hamlet D'Arcy tells us about another means of exposing extra features: economic models.
Create a currency based cost/benefit model for all new features. Estimate what revenues and income the new feature will likely produce, and what development costs it requires to create.
Being the profitable company that they are, it's quite likely that Apple does business this way. Given the financial success of the iPod, iPhone, and iPad platforms, Apple seems to be making the right decisions with respect to revenue and income, resulting in a 424.26% increase in share price over the last five years. With all of that said, even lacking a cost/benefit model, the Poppendiecks provide us with a simple litmus test for features:
If there isn’t a clear and present economic need for the feature, it should not be developed.
Or as D'Arcy states: "When in doubt, leave it out."
Is there a clear and present economic need from the perspective of Apple (and its shareholders) for the Apple JVM? The argument has been made that the increase in Apple hardware sales alone from Java developers should more than make up for the cost of the minimal resources that Apple invested in the Apple JVM . However, as a percentage of overall revenue generated by the company (think about all iPods, iPhones, iPads, iMacs, OS X licenses, App Store revenue, iTunes revenue, etc.), these sales probably still amount to a small blip on the radar. It stands to reason that there isn't a clear and present economic need to maintain these sales. And if developers represent the bulk of Apple JVM consumers, there is no other relevant source of economic need.
Are there holes in this analysis? Absolutely. I'm a software architect, not a financial analyst. With that said, I think its extremely likely that we can, from Apple's perspective as a profit-seeking entity, file the Apple JVM implementation under "extra features." Let the flame wars begin! :-)
 Jim Johnson, Standish Group. XP 2002 Conference Presentation
 Hamlet D'Arcy, "Waste." NFJS the Magazine, November 2010.
 Mary and Tom Poppendieck, Implementing Lean Software Development 2006
 The Java Posse, Episode 327: http://javaposse.com/java-posse-327-news-and-listener-feedback