Grady Booch: A man of methods
From his method to a unified methodBooch's ideas on object-oriented design, with its notions of visualization of the relationships of objects, eventually came to be considered an essential methodology for advanced software development: "the Booch method."
"It was really an evolution from the first paper I wrote in 1984... But this method didn't really reach fruition until my Object Analysis and Design book, which came out in 1991."
The early Nineties saw a veritable explosion of object-oriented programming methods. Technologists such as Stephen Mellor and Sally Shlaer, Peter Coad and Ed Yourdon, Ivar Jacobsen, and James Rumbaugh were all struggling to find a comprehensive way of meeting the challenge of effective object modeling.
"There was a tremendous amount of market fragmentation at the time. If you look at a variety of reports by Gartner Group, around the '92-'93 time-frame, the overwhelmingly most-used method worldwide was anarchy, and I don't mean that as an acronym."
Booch realized that a single modeling method could lead to a practical business opportunity for someone.
"Around '94, Rational was making the strategic move that Ada was still an important business for us, but by no means was it a sustainable business for us to be a billion dollar company. And yet, the things we had learned in helping organizations, tools and services, build large projects, highly complex evolutionary systems, would apply to these other emerging languages. But the market fragmentation didn't help us."
So he contacted Rumbaugh, whose approach was known as the Object Modeling Technique (OMT) or Rumbaugh method, about joining forces.
"Jim and I, in particular, although we were working independently, had begun to cross-fertilize our ideas. He developed a series of papers around '92-'93, didn't change his book, but evolved the method a little bit, in what he called OMT 2. That produced a second edition of my book, which came out in '93, and adopted some of his ideas and some of Ivar's ideas."
Booch persuaded Devlin and Levy this time to eliminate the fragmentation in the OOP marketplace by simply hiring Rumbaugh in 1994 and Jacobsen the next year.
"So here we were in the fall of '95 with the three original authors of the three leading methods all together in one company. And that's what spawned UML [the Unified Modeling Language]."
The three immediately set out to "bash our methods together," which led to the UML 0.9 spec in June of 1996.
"A very curious thing happened. We found that we had reached critical mass in the industry, and there were organizations coming to us saying, 'You guys are doing the right thing, we want to join you in a partnership here, to help you bring the UML to a pervasive standard.' The very first company that approached us was Microsoft.
"Now one is always leery when you are approached by Microsoft. Why were they interested in the UML? Well, at that time, they had their own proprietary language, which they were thinking about in their research labs for modeling this kind of stuff. But practically, the problem they appeared to be facing was their release of Visual Basic, which was forthcoming, introduced three-tier architectures, which for their customers, was a very radically different way of looking at modeling, looking at systems. They had ways in their existing tools, which was what became Visual Studio, to visualize the GUI-side and the database-side, but their was no clear way to visualize the business rules.
"So the UML represented for them, a standard way to add value to their programming tools that would assist their customers in building systems for the enterprise. They decided to join us as a partner, they contributed to the work by introducing us to this notion of how one visualizes interfaces. The UML always had ideas of components, so these fit just wonderfully with it."
The initial working group was joined shortly thereafter by Hewlett-Packard, Oracle, IBM and about a dozen other organizations.
"The amazing thing is that, if you look at the list, we had Oracle and IBM and Microsoft all agreeing upon something. That itself should be cause for celebration."
The partners group worked together to release UML 1.0 in January 1997. In November of that year, the Object Management Group adopted UML into its Object Management Architecture (OMA) standard.
From C++ to JavaOne of his company's latest products is a version of Rational Rose for working with Java. What does Booch think about the network programming language in general?
"Java is a wonderful language. Indeed, we are using it increasingly more inside our organization. I wrote a paper, probably three years ago, titled 'Software Development of the Web, by the Web, and for the Web,' because it was clear, even at that time, that there were some opportunities for Web-based development to shatter the way we build architectures.
"Steve Jobs had a delightful interview in Wired, around the same time, in which he commented on the three stages in the evolution of a mature Web-based project. The first one, and I'm using my own words, were projects that basically used the Web for eye candy, no compelling business need, but 'boy, you could build some wonderful dancing-head craplets'. There's still a lot of that out there.
"The second level was people taking existing client-server systems and putting screen-scrapers on top of them, and that made them Web-enabled. Then you finally had the business reason for doing so, and that has moved many an organization to the Web.
"The third, is where we're trying to think, 'What kinds of new and novel architectures can one build upon the Web that exploit its pervasive distribution and its pervasive degree of concurrency.' We see some organizations struggling with that, and Java is a wonderful language for doing so.
"The challenge is not so much the language but simply the maturity of the tools and the libraries. Trying to de-bug a current distributed system is wicked, and you're not going to do it with basic tools. You're not going to do it with just emacs."
From now to the futureWhat does this software visionary see as the major challenges and opportunities of the Web for application developers?
"It certainly does make an opportunity for radically different kinds of architectures. One of my pet projects is to understand and track organizations that are trying to build some very complex Web-based systems. Architecture and patterns have been my focus since finishing up the UML. Web-specific architectures are obviously some of the low-hanging fruit. Building those kinds of systems to scale, because not enough people have done them, and not enough people have done them successfully and there is so much technology churn, we have right now not just the language wars but also the platform wars and the middleware wars.
"Is it DNA versus Enterprise Java Beans? Unfortunately, the lowly application developer is caught in the middle between these two warring factions. Until they achieve some degree of peace, I think it will be a stable yet hostile coexistence for a while. Until then, though, it will still be a tumultuous domain in which to build."
And where does he see software development, in general, headed?
"The nature of software development is very disorienting, in the kind of systems and architectures we can build. It's disorienting to the kinds of practices people were deploying two to three years ago. The best prediction I can offer is to say that software development is going to continue to be a wicked problem. And social and technological and economic forces will lead us to building more and more complex systems. Frankly, I don't think the problems are going to get any easier.
"The two major platform vendors, whose names shall remain nameless, spar at each other both in court and in public. I think both underestimate the difficulty in building quality systems in a sustainable way for those kinds of architectures. That will remain a wicked problem."
However, Booch sees two exciting trends looming in the near future.
"The first is component-based development. I really believe that the presence of COM+ as well as Enterprise Java Beans sort of raises the level of abstraction as to which application developers can put together applications. I've seen it time and time again, where you can build evolutionary systems out of components, slap them together, and throw them together in different ways. And so component-based development is very much a reality.
"The second, and this one's a little bit fuzzier topic, is the increasing importance of the 'soft practices' of architecture. In particular, I mean those who are working in the area of architectural patterns and design patterns. I'm trying to do similar things, from my domain, mostly architectural patterns, 'How does one really approach large-scale architectures?' I think having these kinds of canonical frameworks, they can manifest themselves in Rose models, or components, or whatever provide some interesting libraries for large organizations who want to try to deploy these really wicked and large systems."
Not a legend in his own mindBooch says that his hobbies are traveling and reading, which work and leisure time afford him plenty of opportunities, often in the company of his wife, who he says "is my best friend." He is also an avid musician.
"That is a passion for me. I sing. In fact, I'm working with a vocal coach. I play the Celtic harp, the guitar, keyboard, bowed psaltry, and the hammered dulcimer, a stringed instrument. And I love Renaissance-era music, as well as contemporary Christian music."
As a man of many interests, one of these is not taking his reputation too seriously. Asked a question whispered behind his back by hard-core types -- whether he does any "real programming" anymore -- Booch just laughs.
"I do actually. The latest thing I have been doing, is... I can't exactly tell you the latest things I've been doing, but I have been doing some stuff in Java. As part of a mainstream project that actually has to deliver things on a weekly basis, the answer is no. But on the other hand, I do pound out my own code as I try to capture some of these architectures. I'm not a code warrior, but it's not like I don't get my hands dirty from it, either."
About the authorKieron Murphy is the editorial manager for EarthWeb. He has previously written for The Java Report, JavaWorld, and IEEE Potentials, among other publications. He can be contacted at: email@example.com.
Page 2 of 2