Tuesday, May 24, 2005

Rational Conference Report 3

Grady Booch

My paths have nearly crossed with Grady for about twenty years. A mutual friend promised to introduce me in the mid 1980s after my first book was published. In the 1990s, my colleagues at Texas Instruments Software were working on the UML specification with Rational, while I was busy with RM/ODP (early glimmers of service-oriented computing). Since I've been an industry analyst, I've had plenty of conversations with his colleagues, but somehow never got to speak to him.

So it was a personal delight for me to finally meet him yesterday, and present him with a copy of my latest book.

Today was his big keynote. Two main themes: innovation and software engineering.

Innovation

Software is a major driving force for innovation, and IBM is a major innovator. Grady quoted an October 2003 speech by Sam Palmisano, arguing that "innovation occurs at the intersection of invention and insight", and expanded on this theme with a quick survey of IBM's innovations past, present and future.

Software Engineering

As Grady has said before, software engineering is hard. Complexity is ugly and inescapable. We deal with this by moving up levels of abstraction.

(I'd like to add two observations to this, which provide further support for Grady's argument. Firstly, it is my observation that the quantity of complexity faced by software developers remains fairly constant over time. This is because the rate at which complexity is subtracted at the lower levels is roughly matched by the rate at which complexity is added at the higher levels. Secondly, I believe that most people - whatever their role - are constantly dealing with quantities of complexity that stretch their natural abilities. Complexity expands to fill the available space.)

Grady reminded us of some of the fundamental principles of engineering.

  • crisp and reliable abstractions
  • separation of concerns
  • balanced distribution of responsibilities

Inspired by Herb Simon and Stewart Brand, this leads us to a notion of good-enough, loosely-coupled, highly adaptive solutions, which can evolve on-demand. These software engineering principles are therefore at the core of SOA. And SOA is therefore more than just a passing fad, but a fundamental response to the demands of innovation.


Technorati Tags:

No comments: