Grady Booch: A man of methods
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."