April 22, 2010

Eclipse foundation launches SOA working group

The eclipse foundation just officially announced a new working group on SOA. At this occasion, a new release of the eclipse SOA platform is available.

The official annoucement can be read here:
http://www.prweb.com/releases/2010/04/prweb3901804.htm
http://www.eclipse.org/org/press-release/20100421_soaiwg.php

I am thrilled by this initiative because I foresee it will, in a near future, help to modernize information systems, in an appropriate and perennial way. We at Obeo will certainly work in that direction!

April 21, 2010

What is a legacy software?

Of course, it's not a new question.
Wikipedia tells us the following:
A legacy system is an old method, technology, computer system, or application program that continues to be used, typically because it still functions for the users' needs, even though newer technology or more efficient methods of performing a task are now available.
Since I'm a software engineer I'm not really concerned about legacy systems in general, just about legacy software.
Joel SPOLSKY gives another definition of the term "legacy" in the preface to the book "Micro-ISV: From Vision to Reality" by Bob WALSH, which can be read online (the preface, not the book) at this page of Joel's famous blog.
It’s like that other term, legacy, that Microsoft uses to refer to all non-Microsoft software. So when they refer to Google, say, as a “legacy search engine” they are trying to imply that Google is merely “an old, crappy search engine that you’re still using by historical accident, until you bow to the inevitable and switch to MSN.” Whatever.
What I like in this definition (beyond the humourous content) is that it clearly states a feeling which is strongly associated to the term "legacy" in the software industry: old and crappy.
Here we are.
How come software systems that are the result of years of hard work look like they're old, crappy, in short, boring?

Another commonly accepted definition is:
Software we don't know what to do with, but it's still performing a useful job (Faisal BIN BASHIR, 1998)
Well, this definition is not quite right: legacy software generally performs not just a useful but an indispensable job. And we know what to do with them, just let them run!
What we don't know is let newer software communicate with them. Such as, integrate them in this brand new portal of ours. Or offer some behavior as services...
Well, nothing new, really.
Nevertheless, I'll continue investigating here why the subject of software modernization keeps comings back as a pain in the... er... as a painful subject, even though the software industry keeps gaining experience and maturity.
Why is there no solution (isn't there, really?), and what could be done about it?
Because in my humble opinion, "legacy" is just the future of any valuable software...
By the way, why am I talking about this?
Well, my present position at Obeo consists in developing the software modernization activity at Obeo.
So I thought it might be interesting to talk about how we work on this problematics, the tools we use (among which Acceleo is of course our favorite code generator), and the methods we put in place.