This is an updated version of my original post; thanks go to David Bernstein, Iain Gavin, and Eric Schurr for their feedback.
By the way, I know I've left out names in the following missive: the old guard included Dave Stevenson, Rich Reitman, Joe Marasco, Jack Tilford, Jim Archer, Danny Shifman, Bob Bond, Nick Berens, Kevin Haar, Kevin Kernan, Adam Frankl, Walker Royce, Doug Earl, Jon Hopkins, Carmen Facciobene, Sunny Gupta, Phil Levy, John Lambert, Jerry Rudisin, Hajime Saito, Hugh Scandrett, Tom Smith, Gary Sward, Howard Larsen, Rob Dickerson, Adam Frankl, Pamela Roussos, Robert Gersten, Buton Goldfield, Tom Schultz, John Lovitt, Dave Bernstein, Lisa Browsword, Lucian Beebe, TQ, Eric Schurr, Philippe Kruchten, Dean Leffingwell, Brett Bachman, Iain Gavin, Walker Royce, and many, many others. Rational started with two people and before the acquisition by IBM grew to almost 4,000 people world wide, with sales starting to edge close to $1 billion per year. It is to these colleagues that I dedicate the following, for without them, Rational would have been a far lesser company.
You'll find a brief history of Rational on Wikipedia; I take full responsibility for the memories that follow. I do hope I got the basics of this history right, but if I didn't or if I left out mention of some important event or person, please do email me.
Mike Devlin, Paul Levy, and I graduated from the US Air Force Academy in 1977. Paul was one of my roommates while we were both in 21st squadron, and Mike and I were both computer science majors. After graduation, I was assigned to the Space and Missile Test Center at Vandenberg Air Force Base and Mike and Paul were assigned to the Satellite Control Facility in Sunnyvale. Along the way, I picked up my masters at the University of California at Santa Barbara, and Mike and Paul attended Stanford. As my first assignment was drawing to a close and I was looking around for my next position, i had a conversation with Larry Druffel, a former instructor of both Mike and I at USAFA, who spoke of the DoD's early efforts to define a common high order language; Bill Whitaker had started the High Order Language Working Group, a group that eventually transmorgified into the Ada Joint Program Office (AJPO), first headed by Larry. Larry noted that one of the first projects that would attempt to use Ada was at the Satellite Control Facility, and that I should get in touch with Mike and also consider a role I might play in the emerging new language. I called Mike, made my way up to Sunnyvale, and found out more about the project. Along the way, Mike sat me down in his living room and noted that "Paul and I have this idea for a new company for when our commitments are up." I then moved back to USAFA as an instructor, where along with Dick Bolz we developed a course about applying modern software engineering techniques to Ada, a course that we taught all over the United States (including to the contractor for the Sunnyvale system). Meanwhile, in their spare time, Mike and Paul continued their efforts to form a company (Rational Machines), to build a machine that was optimized to run Ada. After securing some venture capital, they were able to hire a number of developers, primarily from Stanford, to begin development.
I recall riding in Mike's Jeep, going with Paul to pick up some of Rational's first blank checks, taking them to Frys and buying some memory chips, after which we celebrated with a gourmet meal at Burger King.
By then, Rational Machines had a small office and had obtained two PDP 20s (named Door and Window) running the ADAS compiler, written in Lisp and developed at Stanford. These machines were replaced by a 2060 to bootstrap development of the Rational Environment development, only later to be replaced by Data General minicomputers for the next increment of bootstrapping. Before those machines, we were using Apple IIs - and I still have mine. Back then, ordering a water cooler was a memorable event. Jump forward to the summer of 1982, and Mike, Paul, and I had completed our commitment. Just to be clear, I'm not a founder: I didn't mortgage my cat to begin the company, but Mike and Paul put their all into the company. I've just been along for the ride since the beginning.
I choose to live in Colorado, and in 1983 finished my first book, Software Engineering with Ada. Around that time, as development of Rational's first product (the R1000) proceeded, I would fly from Denver to San Jose on Monday morning, work pretty much all day and night, then fly home on Friday. For an entire year, I had a car at an airport parking lot somewhere in the world. Finally, in 1985, we release the Rational Environment running on a custom machine we ourselves built, the R1000. The Rational Environment brought to the commercial market tools that today we take for granted: a syntax directed editor, integrated debuggers, build and release tools, all in a windowing environment designed for teams. We built the first commercially validated Ada compiler, which was released through Rolm Corporation. As Dave reported to me, we choose to validate our compiler in order to "disprove the theory that Ada was so complicated that no practical compiler could be built and to prod DEC into productizing their VAX compiler." Around that time, there were serious concerns in the industry that Ada was impractical to implement, and so, as Dave further notes, "we did it to keep Ada from being written off." I didn't do any of the heavy lifting of software development, but I did write the I/O package for the compiler and contributed to the testing effort. Traveling so much, I had my first laptop around 1983, a Grid.
The R1000 was a horizontally microprogrammed machine with a 67 bit single level virtual address space. This machine was in essence a dual stack-based processor, with computation done on one path and type checking on another. The R1000 was effectively a DIANA machine (DIANA being the Descriptive Intermediate Attributed Notation for Ada, a formal intermediate representation for the language). We didn't store source code: source code was simply a pretty-printing of the DIANA tree. Using DIANA with hardware acceleration made it possible to do incremental compilation (unheard of at the time, for strongly typed languages), easy refactoring (though that word had not yet been invented), and incredibly fast integration (essential for the large systems that we being built with Ada).
Given that embedded systems were important in the Ada market , we built a sophisticated host/target compilation system (RCF, the Remove Compilation Facility) which used compilers on the target system. Much later, we partnered with Tartan Laboratories to build cross platform code generators and debuggers. If memory serves me correctly, we sold our first machine - at $1 million per - to Lockheed Corporation. IBM Federal Systems was also a large early customer: IBM really did believe in us from the very beginning. We grew our field organization - I was tech rep #1 - and stated the model of having each team lead by one account representative together with a handful of really technical software engineers. Using the Rational Environment - and Ada - effectively was not just a matter of banging out code, but really did require the proper use of abstraction and information hiding, concepts that we not in the mainstream. Egads, waterfall processes dominated as well (and were even institutionalized in government regulations) and we have to educate our customers about incremental and iterative practices. In 1987, I published my second book, Software Components with Ada, which I liked to call Knuth-in-a-box: I'd written a set of Ada components that codified all the classic data structures and algorithms, just as an exercise to show what good abstraction looked like.
Speaking of Rational's tech reps, Iain reminded me of the Sheep, a semi-regularly published newsletter for the field, full of tips, tricks, and irreverent humor. Iain recalled that "folk lore has it that [the tech rep who started the Sheep] had never seen a sheep in his life and was taken by this strange woolly creature on on of his field visits to Ferranti in Cwmbran, Wales.
By 1990, we had dominated the Ada marketplace and were well-respected for our ability to help customers be successful in developing many complex systems around the world. However, it was also clear that building our own custom hardware didn't make much sense any more. Joe Marasco was then tasked to lead our Apex project, which was a re-engineering of the Rational Environment designed to run on Unix workstations developed by Sun and IBM. Somewhat later, we took that same environment and targeted it to a new language, C++.
And then there was Rose. In 1992, I published my third book, Object-Oriented Design with Applications, which offered a notation and process for building object-oriented software. This work was a continuation of my Ada methodological work, honed from experience with all these large Ada systems. This was a particularly dynamic time in the industry: object-oriented languages abounded, the industry was needing to transition from structured methods to more modern ones, ones that were better suited to the complexity of systems then underway, the Intenet was well-entrenched but Tim Berners-Lee World Wide Web was only then starting to gain traction. I was getting bored of Ada, and because of my book found myself being drawn away from Rational's traditional DoD market into the commercial world. About this time, I did a lecture series with Bjarne Stroustrup. I started toying with some ideas of tooling for my method, the first being what I called the Ada Illustrator, an application that walked over an Ada system and drew what today we'd call an implementation diagram. The server was an R1000 - Dave wrote the code that walked over an applications Diana tree and then passed the structure over a serial link - and the client was a Macintosh (I'd used Apple's MPW as my development environment). That prototype was sufficiently interesting such that I built another prototype, this time in Smaltalk on a laptop. Oh, that reminds me, I gave a demo of the prototype to some IBM executives at the time, literally programming minutes before they arrived. When I started the demo, their first question was "why are you not using an IBM laptop?" I still get asked that question, for I use a Mac PowerBook. My usual response is that "I prefer to use a real operating system." Anyway, that prototype led to Rose (Rational Object-Oriented Software Engineering), our first modeling tool, running on Unix. Rose 1.0 had some serious performance problems, plus the market was rapidly shifting to Windows. We acquired Palladio and retooled their work, such that Rose 2.0 was dominant in the market, supporting both Ada and C++ and running on both Windows and Unix platforms.
In 1994, we acquired Verdix, a move that led to our coming out as public company. I remember around that time a bit of a palace coup with Paul. We had met in the a meeting room at the Red Carpet Club at the old Denver airport, where Mike and Paul began talking about their plans to invest more in the embedded market; I recall politely nodding, but then remarking something to the effect that I thought that was a Really Stupid Idea, and that the real growth opportunity was in the commercial sector. By then - much to the chagrin of Kevin Haar who had taken me on a sales call in New York, I'd publicaly observed that Ada was moribund, and that C++ was going to dominate. Anyway, in that meeting, I suggested we go our separate ways. Mike and Paul talked me off the ledge, and, well, I'm still here.
By 1995, the object-oriented method wars were in full force. We made the strategic move to wage peace by unifying the leading methods. We were already supporting the Booch method, so then we hired Jim Rumbaugh and then one year later, acquired Objectory, Ivar Jacobson's company. Jim, Ivar, and I then worked for another year, culminating in the release of the UML 0.9 spec. The Unified Modeling Language 1.0 specification was submitted to the Object Management Group in January 1997, by the consortium led by Rational but including IBM, DEC, HP i-Logix, IntelliCorp, IBM, MCI, Microsoft, Oracle, and Texas Instruments. To this day I'm utterly amazed at the how we managed to bring together such a diverse group and create such a useful standard. The first really stable version of the UML spec, 1.1, as finally adopted in 1997.
In parallel with the notation and tools work, Philippe Kruchten led a project to deliver the Rational Unified Process.
The presence of Rose changed our position in the market place; among other things, this led to our partnership with Microsoft, which opened our eyes to the PC market. Flush with cash and our growing dominance, Mike and Paul set out on an acquisition strategy to complete their vision of a full-lifecycle set of products. Within a few years, we acquired Requisite, SQA, Performance Awareness, Pure, Atria, and ObjectTime. One other bit of trivia: Reed Hastings, who founded Netflix, had earlier founded Pure (he Rational DNA is strong indeed). In 1999, Rational released Rational Suite, an integrated development for teams. In 2001, Rational formed a new company, Catapulse, with the goal of delivering hosted development services.
Rational's revenue peaked in 2001, flush with cash (over half a billion) and very much a dominant player in the industry. For a number of reasons, Rational's leadership began looking for a buyer, and in 2002, IBM announced its intent to purchase Rational for slightly over $2 billion. The acquisition was consumated exactly five years ago to this day, 20 February 2003.
In those five years as part of the IBM Software Group, Rational has grown stronger. Our business has grown by 40%; we lead the market in application development and project management; our reach is worldwide; our thought leadership continues to drive the industry.
I'm honored to have been and to continue to be a part of Rational.
Quote of the day: