At the recent Rational Software Development User Conference, IBM Fellow and IBM Rational Chief Scientist Grady Booch delivered a keynote on his predictions of the software development landscape circa 2032, the 50th anniversary of Rational. Following his keynote, Booch sat down with eWEEK Senior Writer Darryl K. Taft to discuss Rationals development strategy going forward and the new competition from Microsoft Corp., which will enter the application lifecycle development tools market next year with Visual Studio Team System. Booch, a co-creator of UML (Unified Modeling Language), also discussed why the language is so relevant to the tools space.
Meanwhile, in a candid, dueling interview, Rick LaPlante, general manager of Microsofts Visual Studio Team System, shared his views on the companys strategy for the new tool, competition with market leader Rational, and why Microsoft is not so keen on UML.
When you first heard about Microsoft Visual Studio Team System, what was your official thought?
I expected this was going to happen. It was just a matter of when. It was obvious Microsoft was going to have to pursue that strategy, and so it was just an issue of time for us. My other response is Im actually delighted they entered the marketplace because it legitimizes what Rational has been doing for years, saying that individual compilation tools arent enough—that the whole developer experience is one that requires a fusion of a lot of things. And they recognize what weve been doing for years.
Do you think Microsoft can catch up to Rational?
Well, let me expand the issue by looking at Borland, because they have pursued a similar strategy, first with the acquisition of Together and then lots of other things in that space. Rationals history and experience has been that its taken us a good seven-plus years to get a reasonable fusion of a variety of tools for the developer experience. Not because were stupid people, but its a fundamentally hard problem. Therefore, I respect the Microsoft and Borland teams, but our experience says this stuffs a lot harder to get right than you first realize.
Its easy to get some of the creature comforts right, but as one moves to the deeper semantics of connecting all the various artifacts and the various tools, that becomes much harder indeed. And it requires not only some deep architectural work to make right, but also a clear vision as to how we expect people to use these tools. One of the things that radically differentiates IBM Rational from the others pursuing this strategy is we have in place a process—the Rational Unified Process [RUP] —thats been well-tempered by time and customers. And so its not that its a dictatorial process, but it simply reflects back upon what we see are good practices, and our tools follow those practices. As opposed to the strategy of saying lets impose tools and force people to conform to those tools. That tends to fail.
Microsoft has stressed the importance of modeling, but theyve said not strictly UML and MDA (Model-Driven Architecture). But if they dont pursue that, at some point will their strategy peter out, or will they pave their own new way for the industry to follow?
Well, increasingly you see Microsoft, and I cant speak fully for them, but looking on the outside, increasingly theyre taking the non-standards/open standards route. Even the statements theyve made about not necessarily supporting UML is another stake in that direction. Is that a long-term sustainable strategy? Hard to say, except that IBM Rational is placing its bets on the open marketplace, primarily because in the kinds of systems people are building these days, there is a far greater need for interoperability, and that demands a common understanding of standards against which we build all sorts of things. So we think that kind of openness is necessary for the current and future generation of systems.
I wish Microsoft the best. That strategy Microsoft is pursuing is one that weve intentionally not because we view the openness to be far more important.
UML 25 years from
In your talk earlier you mentioned that you foresee UML still being around 25 years from now. Can you talk about that?
I do. No matter how you approach the problem of looking at modeling large systems, theres a body of semantics one has to address. And UML has made a particular stab at it. And there have been hundreds of individuals and tens of thousands of person hours of really bright people who have studied the problem of what are those right semantics. If you were to start from green field, our expectation is youre going to end up in a very similar place to where the UML is …
Was that a pun? [Jack Greenfield, an architect for enterprise frameworks and tools at Microsoft, formerly worked as an architect building Rationals UML-based tools.]
It probably was (laughter). I didnt realize.
But, youd end up probably in very same place. And so, the notation, I dont care to argue about that much. In fact the direction were seeing happen is that with the preservation of UML semantics, we actually embrace alternative notations that may speak to specific domain experts. But unifying all those different views by common kinds of semantics, starting from scratch youll end up in a very similar place to the UML.
So if we were to even trash the UML and start over again, what we come up with is going to look a lot like it. And thats why I view that the UML is probably something thats going to be around for a long, long time. Especially as we see greater emphasis being placed, and tools in place, for the automation of models into running systems and the extraction of those models from running systems themselves. Then we start seeing lots of legacy UML, which creates inertia for the standard itself, which is in fact something that will keep sustaining it.
There are areas … I know Microsoft in particular has focused upon this notion of domain-specific languages, and I respect their notion. I agree that that approach is where the world is headed. Where I disagree with them is that the UML is sufficient for expressing those domains of specific things.
One of the things that you and I have talked about before is my efforts to build this handbook of software architecture. And in systems that I have studied thus far, theres not a single one which Ive encountered for which I have found UML to be insufficient for describing their systems. So I certainly have personal evidence and Rational at large has evidence that this stuff seems to stick for just about every domain you can think of.
Will it work for the next generation of systems two or three decades out? Hard to say, because its hard to predict what those systems are going to look like. I mean theyll be more complex, theyll be more distributed, theyll be multilingual, but I think UML will keep changing along with it as well.
You also mentioned that you think well still have windows. Did you mean Microsoft Windows?
Not Microsoft Windows, but the windowing metaphor (laughter). And that seems to be the best one thats persisted over the years. If you couple that with huge displays, that changes the nature of windows, in that now 3-D models begin to make sense because I can have these things spread across the room in a virtual desk, wrap it up with me, and I can focus on particular pieces. Ultimately, its all windows and file cabinets. Like the guys who did “The Net” and had the special effects in that one where Sandra [Bullock] was moving files around. … I dont think theyre far off from reality. But ultimately its still a windowing metaphor.
As an aside, have you been tapped to consult on movies and such like that?
Uh, no, but I played Tom Cruises body double in a few flicks. The short answer is no. I have been drawn into the game industry quite a bit. Theres a tremendous amount of innovative software being built there. It turns out to be a driver for some of the grid stuff that IBM is doing. And you see the precursor of demands that are going to be happening in the enterprise space, which demand the presence of tools to fuse not just software pieces but lots of non-software pieces as well. The folks at Pixar and Industrial Light and Magic and the digital domain guys have fundamental configuration management problems, which are not unlike the kinds problems we find in software itself. They just happen to be non-software pieces.
You probably hear me talk a lot about movies and stuff because this is increasingly a software-intensive business. And it looks an awful lot like what enterprise development looked like 20 or 30 years ago, where you had lots of brilliant people innovating, yet there werent a lot of standard practices, best practices and architectures. But thats going to change over time.
Also, in your talk of the future [circa 2032, the 50th anniversary of Rational] you didnt say a whole lot about the tools of that era. What kinds of tools do you foresee?
I did a whole talk on the evolution of development environments at the first Eclipse conference. So I basically outlined the move from command line stuff to IDEs to what were calling XDEs to collaborative environments. And in the movie space you see things like Metrowerks IDE tends to be a dominant player, you find Maya, you find RenderMan, all these things kind of fit together. MASSIVE [Model Architecture and System for Spatial Interaction in Virtual Environments] is another one. And whats missing is sort of the fusion of those development environments that hasnt happened yet, but thatll happen over time.
So Ive talked to a few people recently—namely James Gosling and Graham Hamilton at Sun—about what we might see in terms of new languages. Do you have any ideas on what that language will be?
I think Java still has a lot of legs in it. As my talk pointed out, I think where the sweet spot is for the next generation of languages, whatever they might be, are those that are more systems-oriented. … Actually I see two classes of languages. Languages that allow me to glue systems together because we will have a lot of that and UML is certainly a candidate. And the other piece is domain-specific languages. So were going to see not just a single language, but probably a crop of languages pop up. Theyre probably going to be graphical or textual in nature, or a combination of the two, and I would hope have common semantics to them. That I think is the next generation of stuff that will pop up.
And its a co-evolution with the architectural patterns we see emerging. Look at many of the ISVs, and those who are taking the high ground are ones who are trying to harvest those architectural patterns and build upon them.
Verticalized tools in the
So are we in the near term going to see anything like “verticalized” tools for vertical markets?
Yeah, I think you will. And through the efforts of Grant Larsen, who is our patterns czar for the software group, driving a lot of the interesting stuff in that space, what we realized, especially with IBM aligning more and more of its field to specific verticals, is that there is such a domain-specific language and culture in those verticals that you can get middleware, which covers a lot of horizontal stuff. But now those verticals are where the action is happening. Because, frankly, J2EE [Java 2 Enterprise Edition] and .Net are still too complex for the average developer. So, yes, we see the growth of those particular vertical patterns in all those places.
Do you expect to deliver that?
Its certainly the plan of record for what were doing in the pattern space. In fact, if you go to the developerWorks site, the intent with the plan of record is to expose a number of those patterns because theyre there for the harvesting. IBM already has precedence in things like the Insurance Application Architecture, which is used by some 85 percent of that community.
Frankly, IBM failed in a project called San Francisco some years ago. And I think the primary reason they failed is A) they over-engineered it; and B) they produced those frameworks by creating them from whole cloth as opposed to harvesting. And our experience thus far is the best architectural patterns are extracted from the ashes of existing systems. And thats the effort that Grant has been leading, to do that kind of extraction.
And the MDA piece of it fits in as well, because then MDA represents the automation part of the patterns and now this represents the content piece of this one.
You just did a talk on software archeology. What is that all about?
There are three major points that I made. The first is especially in todays world of building consistently of all these systems, rarely do we start green field, but theres a tremendous amount of activity to look at existing systems and adapt them, reuse pieces of them into what we have. And oftentimes, too, people are parachuted into a system saying go fix this and not having a lot of context.
So there is emerging a body of knowledge about what it means to do an archeological dig, what processes are necessary for us to be launched into a system and intentionally seek out a reconstruction of its design. Because even though we may have the code, there is entropy at play. I have the design here, the codes here at this end, and theres a loss of information as I move it to code. So what can we do process-wise and tool-wise to re-create that kind of stuff. We know today sort of some macro processes how to do that. And thats what I described in my talk. There are some people who have looked at micro processes. Theres a great book called “Software Exorcism,” which sort of looks at the debugging and investigation process. So good stuff is happening in that space.
As we move to those kind of skills, we recognize theres still one gap, which we as an industry dont have a lot of tools to help us do those digs. As I showed in todays talk, we reverse-engineered the architecture of Eclipse. And it was easy in the sense that we had all the source code for it. Because in many cases you dont have all the source code. And yet there arent a lot of design documents for Eclipse that lie around.
Most enriching design information is in tribal memory—in the heads of people who actually wrote it. And they havent extracted it. So what we found in this process is we can reverse-engineer it, we can build some models, but extracting the patterns from those models is very, very hard and it requires human intervention. I think that there are opportunities for some degree of automation to identify patterns from that cacophony of classes. And thats an area of research that the industry needs to spend some focus on. The second point I made was actually mentioning the handbook project I talked about. My intent is to look at 100 different systems around the world and codify their architectures, because no such reference exists for software engineers these days. Architects have to learn by doing, and Im trying to provide a reference for them. So were looking at lots of different systems.
And the third point I made was an effort we have with the Computer History Museum to preserve classic software. So weve intentionally gone after a variety of seminal systems that, frankly, our industry has given much to the world; it would be sad if we lost a lot of those artifacts. So the intent is to capture the source code, capture the artifacts around it, interview the people who did it, so itll be preserved for future generations.
I actually went into some depth about MacPaint. Because the source code to MacPaint fell into my lap about a month ago. Tim OReilly has been involved in this effort; he had been talking to Andy Hertzfeld and Bill Atkinson and he mentioned it to them, and Bill and Andy got in touch with me and said: “Weve got the code.” And actually theres an interesting back story about how they got it, because it had been sitting in Bills garage on Lisa disks. And he didnt have a Lisa around, but the end of the story is Andy was able to deliver me a CD-ROM with the source code for MacPaint.
And about two or three weeks ago I did an interview with both Andy and Bill, and we have a video interview of this stuff. So its very cool. And we want to do this for many other systems. So thats a real instance of an archeological dig.
I have in my office the original source code to the Multics kernel. We have one of Bill Gates original tapes for his first BASIC program. Were looking at a whole bunch of stuff like that. Dan Bricklin weve been in touch with. Wed like to get the source code to VisiCalc.
Simplifying Rationals tool set
What is Rational doing to simplify its tool set?
Well, the essence of the problem is that software development is fundamentally and intrinsically hard, so there is a complexity that we cant cut through. Rational is advancing on two particular dimensions. The first is as we move toward more domain-specific languages, the efforts that we have right now in the area of business rules that I can express in UML and driving those in an implementation. Thats a classic example of where you have non-software types who need to embrace what were doing here. Its also the case that, and this goes back to the heart of what Microsoft and Borland face, getting a common conceptual model for the developer is really, really hard because there are so many moving parts in a system.
And what helps us is that the RUP has given us at least some guidance that we can apply into the tools themselves.
Now we havent been perfect in the bashing together of all of our tools. For example, on the ClearCase side, a lot of whats been driving the current ClearCase activity is that our first architectural assumption of the ClearCase system was people who use it will be all locked in behind the same firewall. The worlds very different. And now we have multiple users that say, “No, we want to use ClearCase in a multisite environment where we have different levels of security for each of them and they may go across protected firewalls.” That causes us to have a tremendous rearchitecting of some of the basics of ClearCase itself, and thats whats being driven a lot into our current releases.
And you dont know those things until you get into it. So knowing a priori would have been impossible for us until we had demanding customers apply what were doing. So increasingly we look at what our customers are asking for, and we try to simplify. Thats what UCM is about in fact, the Unified Configuration Management. Because ClearCase in its raw form you can do too much with it. So the desire is lets come up with the common best practices for applying it. Thats what we put into the RUP. We provide tool mentors that help you out so you can do all sorts of things, but at least we give you a path for doing the simple things easily.
Do you expect to have anything like the Express products that Microsoft announced?
You know, Im not the right person to answer that question because I just kind of invent new stuff. I dont worry about that kind of packaging. So I obviously dont know the answer to that question. Lee [Nackman, IBM Rationals CTO] and others would be better to answer that.
Visual Studio Team System
This is kind of a silly question, but its telling if you answer it. How responsible do you feel for Visual Studio Team System?
Me personally or Rational at large?
You because of UML and how that accelerated modeling, and Rational at large because some of the key folks involved came out of Rational.
Right, we did have a handful of folks move over there. I answer that question by saying Im not sure I feel responsible, but I feel flattered in the sense that imitation is the greatest flattery.
OK then, from what youve seen and heard and whatever other resources you may have, whats your thought on their technology? Are you impressed?
Well, great question. Historically, its hard to prejudge any Microsoft product like that because—and Im not the only one saying this—theres tremendous promise and then delayed releases and it get scaled back. So knowing what exists today and whatll exist tomorrow, it would be premature for me to say because I just dont know.
I do know that these guys are going to have to go down a very similar path to what Rational did, and it took us some years to get it even reasonably right. So …
But they have your experience to fall back on.
They do have our experience to fall back on, but they also have legacy they have to deal with as well, too.
You have a development organization inside Microsoft thats very code warrior-centric. But the problem theyre not trying to face with their team tools is addressing the orchestration of people who are not necessarily code warriors. And frankly Microsoft doesnt have a lot of experience in that space. Not to say that theyre stupid people. But thats just not their experience base.
Thats a very good point. But that also partly points to what Gates was talking about as to why theyre trying to make it simple.
Absolutely, but simple is not the only thing that one has to do. One has to deal with the different needs of those individual stakeholders and the weaving together of those concerns. This is why you see a lot of energy going on between us and Tivoli, for example. With our world view that you have continuously evolving systems, the notion of maintenance and development arent separate things anymore. So you release a system, it goes into operation, and you need to have that feedback from the system itself back into the system.
Microsofts not the place where they have tools across the lifecycle they can integrate with. So I see them beginning dealing with expanding the developer experience, but not necessarily the lifecycle experience. I mean the ability to see a running system, probe it, build tests against it, feed the results back into your change request system, thats incredibly powerful stuff. And its not something you can get a bunch of bright guys together and build in a weekend.
True, but theyre saying theyre going to partner with others and theres this ecosystem that will evolve around it.
Yes, well see where that heads up. Microsoft traditionally has had challenges with its partners.