Informix – and reuse within IBM

Written By:
Published:
Content Copyright © 2008 Bloor. All Rights Reserved.
Also posted on: The Norfolk Punt

Ah, before I forget, some news for the Informix fans out
there. It hasn’t escaped my attention that some ex-Informix people aren’t
entirely enthused by the IBM takeover and doubt
IBM’s real level of commitment to the
product.

My impression is that Informix is doing just fine with IBM
– and in support of this, I’ll mention that Steve Mills (senior VP and Group
Executive, IBM Software) used it as an
example of component reuse in IBM at his
RSDC 2008 keynote. Apparently, Informix IDS
technology has been reused and/or bundled with 39 other IBM
products, which seems to bode well for its future.

Steve was explaining that he runs a tight ship and has
outlawed the “reinvention of the wheel” at IBM.
Sounds like a great idea to me and I wish him luck.

However, one of the penalties of growing old in IT is constantly
seeing ideas and technologies that you’ve seen before trotted out again and
again. Often without reference to what went before (I have a horrible feeling
that things really are re-invented from scratch, with a new name, in many
cases) and without any attempt to address the issues that caused previous
efforts to fail. Only IT could turn wheel reinvention into a formal development
process.

OK, I exaggerate slightly but I’m now impressed by Steve’s
figures: WebSphere Application Server technology is apparently reused in or
bundled with 126 other products; DB2 scores 175 products; WebSphere Portal
scores 15; and Cloudscape database 253+. It’s not so much the absolute numbers
that impress me, but that he obviously has metrics for re-use and his developers
are expected to take notice of them. IBM has plenty of database technology already, for example; Steve doesn’t want to pay people to write any new databases for its new products.

I like reuse. It isn’t easy (unless you are a mature
metrics-focussed organisation that measures and rewards reuse, and even then,
it takes effort) and you need to invest in and design for reuse – accept a
short-term hit in exchange for long-term benefits.

But, managed properly reuse delivers productivity and
steadily improving quality, as reusable components bed down in production. Refactoring
reusable components to make them better is allowed, even encouraged; although
it helps if you can measure the improvement from refactoring against the effort
required.

However, back to reinventing wheels; or failing to learn from the past. I remember when Structured
Programming promised reuse some 30 years ago. It didn’t deliver, partly because people measured
development cost, not total lifecycle costs, so if you developed for reuse, you
came in over budget; while your fellow programmers got all the kudos from using
your components to come in under budget. However, another barrier to reuse was
the difficulty of actually finding reusable components just using their domain-specific
names; and the poor design of components which often packaged several functions
together, only one of which you needed when you came to reuse them.

Then along came Object Oriented Programming, which sold to
the Board of the bank I was working at because of the object reuse it promised.
That promise wasn’t delivered on either (although, since no-one was measuring reuse
much, how would anyone know). Once again, people weren’t rewarded for building
reusable objects because the focus was on delivery cost, not whole lifecycle
cost; object cohesion wasn’t generally very good – and no-one could find
objects outside of the system they were developed for anyway. Nevertheless, a
certain degree of localised object reuse was achieved and C++ libraries
represent reuse of a sort (although reuse of badly designed, inefficient, badly
partitioned objects produced a lot of the bloatware we now have).

Then along came component based development. And reusable
services. And a bit more reuse was achieved, but programmers still felt happier redeveloping everything from scratch, mostly for the same old reasons

And now IBM is measuring and
enforcing reuse of fundamental middleware and data access technologies. Good
for IBM – but this excellent idea of not
reinventing the wheel has been a long time coming….

Perhaps 2008 will be the year when reuse finally becomes the
accepted norm everywhere – but I’m not holding my breath.

Blog: IBMRSDC08

Twitter Hashtag: #RSDC