Tuesday, July 7, 2009

Grieving Over the Death of a Cash Cow

A sizable portion of the software cash cow herd is dying and our industry is learning to cope with grief, the natural expected response to death. Grief is painful, but absolutely necessary and completely unavoidable. Shock, anger, guilt, obsession, depression, confusion, and feelings of helplessness, emptiness, and loneliness are among grief's many facets. It's almost too much to bear.


Once upon a time, vast herds of carefully controlled cash cows were tended with loving care until some of the cows mutated and escaped. Actually, let's be frank, the cows were deliberately genetically engineered and then set lose with the disruptive intent, e.g., to undermine competing herds of cash cows. Those with the biggest herds were often in the best position to sacrifice a few cows and could draw attention to the virtue of their sacrificial offerings. Consider though how much it cost to develop what's at Eclipse today, i.e., hundreds of millions. No doubt this is dwarfed by commercial investments in Linux, i.e., multiple billions. Do these appear to be purely noble acts intended to build a grand public edifice?


Most certainly open source investment is generally not a selfless act; yes, it really does involve investment and yes, there is virtue in it as well. However, whenever a valuable resource is consumed, a return is expected. It is the economic way of the things. There can be no exceptions for long. So we must wonder, who will continue to tend the free cows and what return on investment do they expect? I.e., what is the emerging business model for our future software economy? In other words, how will Eike stock his bar so the goodness of CDO continues to flow?


I've already suggested that open source can act as a way of targeting competitors by undermining their cash flow thereby making them less of a competitive threat. Of course that tends to commoditize the domain so that no one makes money from it. A related strategy is to open source only part of the solution, just the basic frameworks and capabilities, and then provide value added software to drive revenue, i.e., a free cow complemented by a cash cow. In principle this can be quite effective because consumers love free things. From that perspective, open source software is almost like a coupon. If it could be contained to that, we'd not need a new business model, so this approach is a pinnacle of success and has shining appeal.


Another approach is to just open source everything. After all, we all know that free software still takes effort to install, learn, use effectively, and keep up-to-date, so there's still money to be made in the services around all this "free" software. Unfortunately, all this free software has produced a debilitating almost viral condition known as freetardation: the irrational belief that paying a dollar for anything software related is offensive in principle. How many organizations and individuals don't end up spending person weeks of time and effort doing poorly something they could have accomplished more effectively with appropriate technology or expert assistance at a small fraction of the real cost? The old penny wise pound foolish principle often rears its ugly head particularly when all the costs and benefits are not properly measured. The problem with the service model is that it's not a license to print money the same ways as is selling software. Software is practically infinitely scalable, i.e., just provide enough download bandwidth, while service generally requires more people, highly skilled people who are themselves expensive and in short supply. Still, it's also a proven model that's held up well.


A valuable aspect of open source software that's more easily overlooked is as protection against vendor lock-in. A few weeks ago at one of the banks it was explained to me that they're fed up with the products they're using. They're too expensive and provide little value over and above what's available in open source. What they're most frustrated with is that each year the salesmen show up with a laundry list of cool new features that justify the upgrade price and yet doesn't include a single feature they actually need. Open source provides better cost control and a better hedge against arbitrary future changes. Self service is even possible and while open source software too can change, there's always the option to fork. Decision makers are in a much better position these days to control their destiny.


I'm not really sure how this will all unfold in the longer term. I doubt anyone is, but the trend toward open source is clear. Probably some of the cash cows will survive, perhaps the value-add approach will work well, at least for those most skilled at riding the leading edge of the crashing wave, but most certainly the service model will survive regardless, because all the models rely on service. This should give committers pause for a bit of self reflection.


Personally I'm not grieving, at least not over the demise of software cash cows. Like other committers at Eclipse, I am a highly skilled expert, and that puts me and professionals like me in the driver's seat. We fit into the economic picture regardless of what business model prevails. If you think of software as content, much like a song, book, or movie is content, then we are the content producers. If you think of software as a service, we are the service providers. There is no software without us, and no, ten unskilled workers will not produce the same result as will one highly skilled individual. So while employers will be tempted to farm out your job to someone else if they think they can save a dollar, they're definitely going to need someone just like you. By being the best at what you do, you're in an excellent position to control your destiny because those in need of expertise will often be willing to pay top dollar to get the very best.

Thursday, July 2, 2009

Talking About Connected Data Objects

My personal Berlin tour guide, Eike Stepper, and I did a Galileo Series Podcast about CDO with James Sugrue the other day.


Eike and his rapidly growing team are doing some extremely cool things with CDO, so you might be interested to find out more.

Wednesday, June 24, 2009

Going Gaga Over Galileo

As a true friend of Eclipse, I had early access to Galileo and thanks to the fast friendly mirror, I downloaded the classic SDK in just over three minutes. A friend of mine who isn't a friend of Eclipse (and who shall remain nameless to protect the guilty) is finding his download will take an hour. Friendship is a bountiful font from which many good things flow and that brings a smile to my face.


Cloudsmith, my latest additional benefactor, is providing a cool community service that we've dubbed Galileo Plus. Projects like Teneo and CDO provide integration with LGPL libraries like Hibernate that can't be distributed by Eclipse. The p2 repository at http://download.cloudsmith.com/galileoplus/ is basically a clone of the Galileo repository with additional libraries such as Hibernate. Don't worry if your browser says the page for this link has forbidden access, there really is a p2 repository there and you can add it as a site in your installer like this:


Now clients of these modeling technologies have a p2 site with one-stop-shopping for their installation needs; you'll find additional categories like "Net4j Database Adapters" and "Third Party Libraries" among other things. We intend to grow this repository to include more missing bundles as well as other interesting additional bundles. If your project could benefit from this type of one-stop-shopping, send me a note and let the good times flow.


Goodbye Galileo, hello Helios.

Friday, June 12, 2009

Blow Away the Blues in Berlin

Blue is my favorite color, but being a bit blue bites badly. I remind myself frequently that life's colors are just as bright as they ever were, it's just my perception that's changed.


For this reason, I'm very much looking forward to blowing away my blues with a trip to Berlin next week. I've never been there before, and Eike Stepper will be my personal tour guide, so I'm totally stoked. The Eclipse Board of Directors meets June 17 and 18. As Mike mentioned, it's the first meeting of the board outside of the states and it's in Germany in recognition of the large number of German members who have been traveling across the planet for so many years; consider how far California is from Germany! I don't suppose it's very green regardless of where we have the meetings.


As a small part of my fun filled week, we're planning a modeling party on June 16th starting at 7:00PM at the Bavarium hosted by Eike and yours truly. We promise free beer and witty commentary. A professional photographer will attend. If you plan to partake, please register your intent. Well, I confess I've become a bit delusional; it's actually a "Meet the Board Members Stammtisch," but I'm a board member and you'll get to meet Eike and me, so that makes it a modeling party, in my humble opinion. See you there!

Monday, June 1, 2009

I Don't Care Much for Words of Doom

Likely it's mostly a reflection of personal sensitivity given my fluctuating moods of late, but it seems to me I've witnessed more negative navel gazing in the past few weeks than is entirely healthy. The balance between optimism and pessimism is always a challenge, but if you pay attention only to the rain brought on by life's dark clouds, you'll tend to miss the bright colors revealed when the sun peeks out, as it inevitably does.


It's best to be on guard against creeping negative attitudes because positive change flows only from constructive actions and those actions are nurtured by the feeling of empowerment.


In every problem lies an opportunity that's waiting for someone to take action. Of course there is value in identifying problems; the world if full of arm chair critics who excel at that. There is even more value in identifying solutions; there tends to be a plethora of those as well. But in the end, the greatest value lies in taking action. After all, grand designs don't build themselves.


One of the problems I see is a lack of leadership from many of Eclipse's largest commercial members. We could bemoan that situation at length, but I gave up on that approach last July; soon it will be a year since I threw my shackles away. It's best to view the current situation as an excellent opportunity for smaller players and even individuals to step in and take charge. Don't complain about the economic downturn either. Sure this presents a significant barrier to all the players large and small, but those who persist will prevail and those who whine will fail. We should feel empowered by the extent to which individuals are making a significant impact at Eclipse; history is rife with such individuals and ultimately they shape our world.


I don't care much for words of doom. We should look beyond problems toward solutions and then take the next step toward action. And don't look to others to take those actions, look to yourself. Are those imaginary shackles constraining you? Throw them off! If someone tells you it can't be done, prove them wrong. Your greatest feeling of accomplishment will come from overcoming the most daunting adversity, so embrace challenges with a vengeance.

Thursday, April 30, 2009

If Only it Were That Simple

Simplicity is a holy grail touted as an ideal for which to strive. Keep it simple stupid, KISS, is sacred doctrine. Yet is the world a simple place? Are the problems you are solving simple? Are Java or C++ simple languages? In fact, do simple things ever stay simple? After all, C evolved into C++, and Java too evolved to support generics and enumerations, and those clearly didn't make the languages simpler. Consider too why it is that a simple mind is not a good thing despite the fact that simplicity is such a good thing. The reason is simple: extremes are typically not optimal. In the end, there needs to be a delicate balance between simplicity and complexity. I certainly don't want my garden to be simple!


Consider for example a Turing machine. With an optimally simple set of symbols, i.e., only zeros and ones, it's effectively impossible to come up with a simpler computational model. So why don't we all flock to this simplicity? Because it's a mirage. The expression of our solution isn't helped by the simplicity of the Turing machine, rather it's hurt by the lack of expressiveness. It's for this very reason that I bristle when I hear people say that EMF is too complex. I'll argue that it's neither too simple nor too complex, it's a higher level abstraction and it's just right. If you can do better, make my day sunny.


So many people are so used to solving their problems with rocks and pointed sticks that the mere thought of more sophisticated technology scares them away. This situation is particularly ironic because these same people are typically working on foisting some synthesized technology of their own on their unsuspecting end users. Of course everything they produce is simple, right? It's always the other guy who produces complexity. After all, I understand my stuff, so therefore it's simple, right?


Here is what I consider to be the gist of rocks and pointy sticks argument. Why would I need to build a big fire with my pointy sticks, and smelt my rocks to render metal, just so I can make a better rock or pointy stick? It's such a complicated process and it's so much extra work given that I can just smack my problems with rocks and poke them with pointy sticks already. Well, guess what folks, some of us have seen a way to move beyond the stone age caves, but feel free to hang out in yours, if that's where you feel most comfortable.



I totally agree with Michael Scharf's blog about the problem of How to Explain EMF? How do you describe something that's both a floor wax and a dessert topping? It's just not that simple. The responses to his blog were very interesting too, and while there is underlying truth in them, they typically also miss the point a bit. Consider for example that given an XML Schema, or simply annotated Java interfaces, EMF will generate a fully functional Eclipse IDE or RCP application. You don't have to know much of anything about Eclipse, and poof, there you go, a running application. That's pretty simple. It takes about a minute. But then you start to dissect it and realize oh my goodness, there's a lot going on here and gosh but it all seems so complicated. That's right because it's a complicated problem, yet would it have been simpler to have spent the months it would have taken to learn how to get all that working from scratch? No it would not! But feel free to hang out in your cave chipping stones and sharpening sticks if that gives you a sense of purpose.


Even with modeling's layered architecture, people complain that all the layers are confusing. Granted very little of modeling is well documented, the marketing message is poor, and the web organization leaves much to be desired, but please people, is there an alternative to layered architecture? Don't forget too that EMF has a book. I think this really is Michael's fundamental point, i.e., poor marketing. Rather than polishing the technology, which as developers is what we (and most of all I) like best, we need to address this marketing problem with a higher level of priority.


There's even the premise that modeling is good but EMF, not so much. The argument is actually stronger than that: EMF stifles modeling and harms the ecosystem. I think the important point being missed here is the extreme value of "the one model to bind them all," i.e., Ecore/EMOF. The modeling ecosystem is rife with other meta models---gosh but I dislike using the word meta. For example, there's UML, BPMN, XML Schema, and so on. This reality is not the hallmark of a constrained ecosystem. In each case, the value of the model is enhanced by the fact that Ecore/EMOF is the underlying meta meta model---gosh, two metas in a row, I should be shot.


Here's a fundamental assertion I'm sure will never be proven wrong: if you tried to replace Ecore/EMOF and the rest of EMF's core with something better, you'd merely end up with another EMF; only if you're lucky (people care about what you've done) and highly skilled (you've learned from EMF's successes and mistakes) might it actually be relevant and a bit better. In any case, feel free to build another ecosystem if you're feeling lucky and skillful. Don't forget to take sociology into account; you're likely better off in an established ecosystem.


No doubt it's true that I'm way too steeped in this technology to understand the perspective of someone looking at it for the first time, but surely there have been plenty of people looking at it for the first time that just a few of them might have tried to help out the next guy with their fresh insights; kudos to Michael on that front! E.g., these are the five things that took me weeks to grasp and would have been nice to have realized up front. Ultimately, simplicity like beauty is in the eye of the beholder. May you always see simplicity where others see complexity so you can lead the way forward.

Thursday, April 16, 2009

A Truly Good Person

A great many people from the Eclipse community as well as close friends and family have helped me in countless ways over the past months, often in ways they may think small but collectively to me looms large. I want to express my appreciation for everyone's kinds thoughts, kind deeds, and what I'd characterize as goodness of spirit. Larry and I both appreciated it more than you might imagine. Instead of Ed the software engineer, I will pretend for just this one time to be Ed the poet. I'll express my thoughts in the form of a poem, and no, I won't give up my day job. Larry would be proud of that, I believe. He was most certainly a Truly Good Person.


The title of what I'll call the Truly Good Person poem resounds with the truth that underlies contradiction.

Goodness: The Eternally Transient Changing Constant

The goodness of spirit
and the spirit of goodness
are one and the same.

While theologians among us debate,
while rule followers and makers clash,
to all who behold,
it is clear when they look,
that goodness is manifest.
This is clear,
without faith,
without rules,
for there is manifest goodness wherever we look.

Be the manifestation of goodness,
and behold the manifestation of goodness in others.
Be the change that is good,
and behold the goodness of change.
Be the spirit of goodness,
the eternally transient, changing, constant.
Be a truly good person.

It's an important lesson for each of us: be a Truly Good Person for in doing so you will be loved and you will find peace. It's certainly clear to me that my social circle, which includes the Eclipse community, is rife with Truly Good People. You all know who you are and you should know that you are appreciated.