Booch is undoubtedly a legend in the field of advanced software design. His latest book, The Unified Modeling Language User Guide, is a
Xerox Corp. Chief Technology Officer Alan F. Nugent has said of him, “Few individuals have done more for the software development community than Grady Booch.”
Legends, though, are nowhere near as interesting as the people behind them. With that in mind, we offer you a personal look at Grady Booch, who spoke with us recently by phone from his home in Denver, where he maintains his office as the chief scientist of Rational Software, a $300-million a year company based in Santa Clara, Calif.
Building a better birdhouseGrady Booch (pronounced bootch’) grew up in Amarillo, Texas, where as a high-schooler in the early Seventies, he managed to convince his shop teacher that he really didn’t want to work on “some birdhouse or something” but instead wanted to build a computer.
Fascinated by the new sciences of artificial intelligence and cybernetics, he assembled an electromagnetic machine based on a design he had seen in a magazine.
“I was doing a science-fair project, tenth grade, and I wanted to do something on the derivation of Einstein’s relativity equations. A simple topic for high school, right? I had taken some advanced calculus classes at that time, and I thought ‘it’s amazing what you can do with these symbols.’ And then I decided, wouldn’t it be neat, as part of this project, to show a simulation of the energy released if you had a particle and an anti-particle collide with one another. So I said ‘how would you do a simulation?’ Well, you’d write a program.”
The sophomore called the local IBM office. “A very nice fellow mailed me a programming manual for Fortran IV. I still have it. And he managed to find me time on one of the local bank’s computers. He went in with me, after hours, and let me write this program. I enlisted some of my friends to help me type up the punch-cards, wrote the program, it was not a sophisticated one, by any means. He helped me de-bug it, and that was my very first program. I still have that set of punch cards.”
As the Viet Nam War was drawing to a close, Booch enrolled in the U.S. Air Force Academy. “In that time, there were few computer classes offered, because those were the days when large iron ruled the earth. I chose the Air Force Academy because they had a very good undergraduate program. Plus when I graduated, it was clear that I would be involved in really cool software projects, which indeed proved to be correct.”
There he met a pair of classmates that would change his life.
From Uncle Sam to RationalBooch graduated from the military academy in 1977 and was assigned to Vandenberg Air Force Base, where he worked first as a project engineer and then a manager on a variety of ground-support missions for the space shuttle and other strategic initiatives.
He helped build an “enormous Fortran system which in today’s terms you would call a ‘real-time data fusion problem.'” It involved bringing in telemetry and radar data from about 40 different radars around the globe in real-time, displaying it to the flight-control officer.
“Prior to that time, they had used the vertical pen-and-ink plotboards, with very ancient technology. We were using one of the very first Evans & Sutherland picture systems, in fact it was color, to provide a new kind of GUI. We were doing some interesting pioneering things in GUI, as well as data fusion, as well as distributed real-time operating systems. None of those existed, so the team had to create them from scratch.”
While at Vandenberg, Booch picked up an MSEE from the University of California at Santa Barbara. “This is around the time when some of the cool theories for VLSI [very large system integration] design were coming out. They had a really neat program, one of the earliest for VLSI design. I sort of dove in to computer hardware architecture.” After he graduated with his master’s and finished his tour at Vandenberg, he went back to the Air Force Academy as an instructor with the rank of captain for nearly two years.
He had not fallen out of touch with two old USAF buddies, though.
“My roommate at the academy in my last year was a fellow by the name of Paul Levy, and we had a friend named Mike Devlin. The three of us all graduated, I think, in the top twenty of our class, so statistically, it was an interesting cluster.”
Booch, at Vandenberg, caught up with Devlin and Levy at the Air Force’s San Francisco-area satellite control facility.
“Mike said Paul and I have this idea for a company, why don’t you come up and talk to us about it? So I did. We sat down in Mike’s living room and outlined this plan for what they then called Rational Machines Incorporated. The idea was to build a language-specific computer architecture. This seemed right down my alley. So I said great, ‘let me join you.’ Of course, the three of us were in a five-year commitment, so the company was started prior to leaving our Air Force careers. But once I left the Air Force, I went straight to Rational, and I’ve been with them ever since.”
Devlin and Levy founded Rational in 1980, Booch signed on the next year. “Paul became the president of Rational, and Mike is the chief executive officer. I’ve known these guys way back since college.” The three formed the core of the company’s now 2,000 employees.
From Ada Lovelace to Bjarne StroustrupNaturally, the nascent Rational aimed itself squarely at the defense industry software market. In the Eighties, it was the most lucrative technology field the world had ever known — the go-go era of SDI Star Wars. And in those days, this meant they would have to work almost exclusively in the military’s latest infatuation, the Ada programming language for command, control, and communications systems.
Named after a Nineteenth Century British aristocrat who is credited with writing the first computer program (for Charles Babbage’s “analytical engine”), Ada was the hottest environment of the day, as it was well-suited for the development of large-scale programs.
While in the Air Force, Booch had become involved in the Ada Joint Program Office, which released Ada in 1979. As few of his colleagues wanted to pursue pure research, he took their hours and spent his time helping the Ada team figure out “How one should use this really cool language.”
“That immediately got me involved in the issues of scale, because here we were talking about mission-critical defense systems that rivaled the complexity of anything done commercially. Even the real-time system we were building was pushing the limits of what the hardware and software could do for us. So Ada certainly seemed like a very promising language, in the sense that it really embraced what we then knew to be modern software engineering techniques.”
His superiors assigned Booch to recommend an official methodology for working with the language.
“That eventually led to probably the first paper I wrote, which was published in 1984, titled simply, ‘Object-Oriented Design.’ It was some of my earliest ideas for how one applies methodological techniques to exploit languages such as Ada.”
His writing led to an acquaintance with another researcher publishing in the days’ technical journals, AT&T Bell Labs’ Bjarne Stroustrup, who was creating a new object-oriented programming language.
“He had written an article on C with classes, it wasn’t even C++ then. I found myself increasingly being drawn into the commercial sector, even though I was doing a lot of work for Ada projects. I didn’t really seek it out, but I found that there were a number of commercial organizations, most notably banks and financial institutions, that had been looking at my writings, at this time I had two books out, Software Engineering with Ada and Software Components with Ada, and they said, “These ideas are directly applicable to us, in C and Smalltalk.”
So Booch dove into the Smalltalk and C languages with the same passion he had for Ada. “But this was diverging me from Rational. So frankly, I said to them, ‘I want to explore these ideas of applying [object-oriented] techniques to other languages. So basically, I took a sabbatical for about a year, from Rational, where I was sitting back, figuring out ‘what are the ways to apply these to these emerging languages?’ This could mean a whole new business for us.”
That generated my third book, Object-oriented Analysis and Design with Applications. I came back to Rational and said, “I see where your business is going, if you guys go this way, let’s shake hands and be friends, but I’m out of here. But here’s this other business that I believe we should go after: the commercial business, which involves applying our O-O techniques to these other emerging languages.”
Devlin and Levy took him up on his ideas and changed the company’s direction. Their first commercial product, Rational Rose, which Booch designed, came out in 1984.
“These were the early days of C++, and much like it is today with Java, the tools and libraries were very unstable. So there was a delightful community of people who were all struggling in the same way. We all, well, I’m certainly not one of the inner circle by any means, but we stayed in touch with the people who had written the language, who had been struggling with these same kind of things. That put me in touch with Bjarne directly who I found to be a delightful fellow. We started sharing one another’s writings, came to realize that the way he approached design was very similar to the way I approached design, and vice versa.”
The two were invited by SIGS Publications, a New York technical publishing firm to make the lecture-circuit rounds.
“So Bjarne and I went to four or five cities around the country, and he would pitch the C++ language, which had not really emerged as big-time yet, and I was pitching O-O design methods, which was very complementary, because we basically said, ‘These go hand-in-hand. C++ is a cool language, but you’re really going to exploit it only if you apply it in the right way.’ That is, it’s not just C, it’s something else.”
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.”
- Grady Booch, Chief Scientist
- The Unified Modeling Language User Guide from Rational Software Author Ranked Best-selling Computer and Internet Book by Amazon.com
- “Java,” by Grady Booch
- The Best of Booch
- Booch Publications
- UML Resource Center: Unified Modeling Language, Standard Software Notation
- Software Methods & Tools Discussion Groups — UML
- Object-Oriented Analysis and Design Methods
- The First Church of Grady Booch
- Stroustrup, Bjarne