Keith Harrison-Broninski

Open source and the short-term memory of the IT industry

Just back from speaking at Javapolis - a conference I can recommend to any readers with an interest in Java development. Extremely well organized by the Belgian Java User Group (no wonder Brussels is the administrative capital of Europe), multiple tracks all full of solid content, and enough sponsorship to be very reasonably priced. I should think that the value of the freebies and meals provided to attendees must be close to the registration cost of 200 Euros. Book early for next year, as the venue is getting too small for the 3000-odd attendees, so in future it may be first come first served.

My personal reflections after the conference focused on open source. Regular readers of this blog will be expecting the third instalment in the current series on the real-world business issues of SOA. However, it's the week before Christmas, so I will defer the heavy stuff until the New Year, and instead share with you some thoughts on what is happening at the leading edge of software production. And these thoughts are appropriate for the time of year, Christmas being a traditional time to take stock of how some things change and other things stay the same.

I am now aged 43, and have been working in the software industry for nearly 20 years. Many people who enter the industry as developers have moved on by this stage into less technically-oriented roles - consultancy, management, or writing, for example. In fact, I have played such roles myself for a long time now, but make sure also to periodically return to the coal face to refresh my development skills and actually build software, as I am doing at present. However, this is actually quite unusual - by their mid-forties, most people who started out by programming are no longer developing software in their daily work.

The result of this is that developers have, as a community, quite a short memory - and so tend to be unaware of long-term cycles in best practice. For instance, few developers now remember why the 1980s saw a general move away from procedural programming towards object-oriented programming. Hence, they are unaware of the deficiencies in the procedural programming techniques underpinning SOA and BPM, as evinced by languages such as BPEL. Similarly, few developers now seem aware of potential issues with weakly-typed programming languages such as Javascript, or consider the implications of using an old-fashioned mainframe client-server programming model such as AJAX.

Further, a corollary of the youth of programmers is that they tend to take little account of such warnings, when issued by greybeards! This is healthy in some ways, but it is also worth remembering Santayana's famous words on how those who don't remember history are condemned to repeat it.

An interesting example of such cycles is the current stir around open source software. During the Javapolis conference I met and talked with various people engaged in producing and/or using open source software. And it was fascinating to hear not only their evangelical enthusiasm for open source, but also their concerns. These concerns centred around issues such as the following:

Growing and retaining a developer team

Growing and retaining a user base

Maintaining code consistency and quality

Preventing feature cherry-picking by competitors

Monetizing products

Retaining control over products

Sound familiar? There is nothing at all in the above list to differentiate open from closed source. All software vendors have these issues. And therefore, by association, so do their customers.

Many people seem to view open sourcing software as a solution in itself - both a solution for vendors (to gain a community) and a solution for customers (to lower costs). I don't see this happening. In every area of life, you get what you pay for, and enterprise software is no exception. Complex issues of software development and use don't magically go away - they just pop up in slightly different forms.

In fact, the discussions I had at Javapolis made me wonder even what it means to say software is "open source". Is it just about access to program code? Hardly. Enterprise customers of commercial software vendors have always been able to get hold of program source code if/when they need it, either by licensing it or by arranging for it to be held in escrow against the supplier going out of business. Further, most enterprise customers view access to the source of third party applications as a last-ditch option they hope and pray never to need.

So is it about price? Well, again no. Free software may well be closed source. Further, enterprises always have to pay for any software they use, if only in service costs - which have always been been far greater than license costs, as Eric Raymond pointed out so clearly in his seminal work on open source, "The Cathedral and the Bazaar".

How about licensing? A tricky one. There are many variants of open source license, and much debate. However, it is fair to say that most producers of commercially significant open source code are very careful about the license they use - and about the way in which their software is released into the marketplace. Of the concerns listed above, the number one (it seemed to me) was retaining control. Few people really want to let go of their baby, especially if you have invested serious time into it, and that baby is now worth serious money.

Finally, is it about a difference in the way software is written and/or released? Here again, I see no real difference any more. Most significant open source projects and commercial software packages are gravitating towards a halfway house between the agile coder's "release early, release often" mantra and the "seasonal release, periodic patch" approach characteristic of traditional closed source. It is in neither the supplier's nor the customer's interests to adopt either extreme. OK, you can download a nightly drop of Eclipse, but only the diehards will install and try using this for their daily work - and very few people indeed would do so with an unstable release of JBoss application server.

In fact, I would argue that what "open source" is (or was) truly about is the community model of development, in which people from outside the boundary of a single organization actively contribute to the application, and engage with the developers to test it. This model is what I now see breaking down. Most successful open source applications these days are entirely controlled by a single commercial vendor - Sun (Java), IBM (Eclipse), RedHat (JBoss), and so on. Nearly all, if not all, "committers" to such open source projects work for the company concerned. So how are such applications genuinely different from Windows or WebSphere?

I think we may be over halfway through a long-term cycle. The pendulum is already swinging back, away from open source and back towards more old-fashioned models of software production. It is quite possible that as we go forward, it will mean less and less to label a software application as "open source".

Just some seasonal reflections - no TAKE AWAY section this week! Your comments are welcome as always. And have a very Merry Christmas.

2 Comments

I don't subscribe to your definition of what open source is all about. I don't thing the 'community model of development' is what open source is all about.

For me, open source is all about the license. Software is open source when it is free to use and when the source code is available. That what it is all about. The rest is implications, consequences, pros and cons. In perspective, i think it's the distribution model that changes the most.

I DO subscribe to your observation that most of the successful communities are lead by one company/vendor. (Linux is of course the biggest exception)

Central lead open source is not surprising. Brand name is the only link between the open source project and the company that develops and tries to monetize its project. So for open source projects, brand name is even more important then for closed source counterparts.

I think you should all be looking at how developers collaborate to build GPL PHP software for a minute.
Check out projects like Joomla.org for example. That kind of Open-Source has quite nothing in common with Eclipse and it is widely used as well.

Keith Harrison-Broninski cuts through the hype in his hands-on guide to where enterprise IT is really going

Keith Harrison-Broninski

Keith Harrison-Broninski is a researcher, writer, keynote speaker, software architect and consultant working at the forefront of the IT and business worlds.

Keith is the CTO of Role Modellers Ltd, whose company mission is to develop understanding and support of collaborative human work processes across industry, a field that Keith has pioneered with his work on Human Interaction Management. Role Modellers' software, HumanEdj, is the reference implementation of a Human Interaction Management System.

He is the author of "Human Interactions: The Heart and Soul Of Business Process Management", (Meghan Kiffer Press, 2005) described by a BPTrends review as "the overarching framework for 21st century business technology," and by the BPM Group as "a must-read for process professionals and systems analysts alike." Keith is also a contributing thought leader to "In Search Of BPM Excellence" (Meghan-Kiffer Press, 2005) and to the "International Handbook of BPM" (Springer, 2009).