Rational pursues liberation for application development teams

Liberation and freedom may be philosophical themes typically considered larger than pursuits such as application development, but not to Grady Booch, chief scientist at independent programming company Rational Software Corp. Booch and his staff are working to free developers from the chains that inhibit creativity. Booch knows there is a fine balance between unbridled creativity and the direction and forethought needed for writing code, particularly for large, enterprise-class projects. In an interview, Booch discusses how chief technology officers can help development shops achieve that balance, how the Unified Modeling Language (UML) is progressing, and how he expects software creation to change in the next three to five years.

Q: What is Rational up to these days?

A: We are really talking about liberating development teams. Software development is fundamentally hard. We at Rational have tools and techniques and principals and services to give you -- the aspirin to remove some of that pain and the vitamins to make it better and better over the years. So we're talking about aspirin and vitamins, to put it in medical terms.

Q: When you talk about freedom to create, or liberation, what exactly are you liberating developers from?

A: Ultimately, your code warriors are the ones [who] do the heavy lifting. On the one hand, you want to keep them unconstrained so that they can go off and create great things. On the other hand, you have these economic pressures of needing a return on investment on what you're doing in software [development], and you've got to build things that are intentionally valuable for your organization. So there is this healthy tension that exists. And I call it "healthy" and a "tension" because there are two [kinds of] goals: economic [goals] as well as very artistic and technical [goals]. But you have to reconcile those in a healthy way to deliver tangible artifacts of value to an organization. A lot of what goes on within the freedom to create is the need to have a reconciliation of those two tensions. An analogy often used by my wife, who is an artist, is that the hardest thing to deal with is a blank page because there are no constraints whatsoever, and so it can be hard to begin. There is value in a structure and [in] standards because they can help channel the energy of creative folks. There [needs to be] a balance. You want to get the greatest people you have within your organization to produce wonderful stuff, but the problem is throwing great people into a room and feeding them Jolt and pizza is not necessarily predictable, nor is it repeatable. The challenge is taking the best practices of what we know works and channeling those through tools to make those best practices invisible, part of the atmosphere [that] people work in, so that [on] the one [hand] they can be creative but at the same time they can be very intentional and directed.

Q: That borders on the notion of modeling and UML, specifically. How does UML fit into that reaping of best practices?

A: One of the cool things about the presence of the UML is that it offers a common language for so many different stakeholders -- some of whom know absolutely nothing about software -- to communicate their intent and desires for systems to those people who are actually going off and doing the heavy lifting of building the code. In many enterprise systems, you've got these experts [who] know the details of the domain in and out, and the last thing you want to do is take somebody who is expert in currency, or something like that, and make them a programmer. So you raise the platform up to their level of abstraction, so there is less of an impedance mismatch of how they articulate and view the world and communicate that to the developers themselves. There are elements to UML that make that possible.

I'm pleasantly surprised to see the UML being pushed in directions we never anticipated. I've talked to people who are using it to design bits of systems for which they may not make the decision of whether it's hardware or software until much later in the life cycle. For instance, there is a large ship contract to build a next-generation naval vessel for which UML is being used to articulate the design of the destroyer itself as well as the software subsystems within it.

Q: What is Rational's role in UML?

A: Our initial goals were very modest because we were simply trying to defragment the market. But then we made the decision to say there would be tremendous value in unifying the different modeling methods because there are such commonalities to them. Almost in harmony with that, the Object Management Group set off on a path to standardize a language for object-oriented development. The first member of that [group] was, amazingly, Microsoft, because those were the days they were dealing with COM and COM+ and they wanted to have a mechanism to help raise the level of abstraction for their customers and that would make it easier to build systems on top of the Windows platform. Shortly thereafter, IBM joined the fold, Sun joined the fold -- of course, that is an amazing thing in and of itself, to get those three on the same page without killing one another -- then Unisys and Oracle and about 20 other companies joined the consortium. Rational's role today is one among many in the current UML work. We are the original authors for it, but in order to preserve the fidelity of the standard itself, and to not make it a proprietary standard, it had to be turned over to the OMG [Object Management Group].

Q: What is the current status of the UML specification?

A: We are actively working on UML 2.0, and we anticipate the spec will be done by the end of this year and up for discussion around the end of this year or early next year.

Q: What will be new to UML 2.0?

A: UML 2.0 exists to take the years of experience the community has had on 1.x and bring that into UML, as well as to simplify UML where we can. A lot of what is happening in [Version] 2.0 will actually be utterly invisible to most developers. But a lot is happening under the surface to make it easier for tools vendors to move in the direction of model-driven development. The idea of bringing the UML as a higher-level language that transcends most of our textual languages enables us to do both very good code generation as well as reverse-engineering and perhaps even [brings us] to the point of direct executability in some UML models. The direction of UML 2.0 is such that we'd like to be able to do that even more so.

Q: What is the time frame for UML 2.0?

A: Our current schedule is to release the specification proposal sometime this fall. There are other groups that are submitting 2.0 submissions, but they're -- how do I say this politely? -- they're much smaller activities than the current UML consortium [in] which Rational and Oracle and others are members. There will be a process discussion as there is with any standards project, starting late this year.

Q: How do you see application development changing in the next year or so?

A: For the next several months or a year, what I see happening is the fusing of what used to be technologies for the analyst and architect and a moving down into the realm of the code warrior. Thus, [we'll see] things like bringing modeling to the code warrior. All of a sudden as you start laying out code, the perspective is not that you're going to stare at this bit of Java and hack away at the level of text, but now there is another view at [the code warriors'] level where they can start looking at it graphically. So there are people sitting inside an [integrated development environment], maybe having a hard time understanding a bit of code, but they can generate a model from the existing code and navigate about and reason it out another way. Having done that, one can take that code and imprint a model on it, then drive that model back to the code itself. It's very much like what James Gosling [a fellow at Sun and the man widely credited with creating Java] has been talking about with the Jackpot project within Sun. He noted that if you look at complex Java systems, it's really hard to understand and reason about them unless you start looking at higher levels of abstraction, and what a better way to do that than looking at it through some visualization and models. I think James has even been thinking in that direction as well.

Also, the major platforms, I think, will continue to entrench themselves. .Net and J2EE [Java 2 Enterprise Edition] will continue to grow in importance within enterprises, but the reality is there is still the semantic gap between what those platforms provide and what many enterprises must then indeed deliver. I think over the coming months the importance of patterns, the importance of modeling [will] come closer to the code warrior, because now all of a sudden there are mechanisms they can build on top of those platforms, build on higher levels of abstraction to generate better software faster.

Q: Can the gap that exists between J2EE and .Net be bridged?

A: There is a religious gap between .Net and J2EE, and not even the pope could bridge that. Better yet, let's bring in [former Secretary of State] Henry Kissinger and wage some peace here. There are differences between those platforms that are pretty fundamental. Rational is in this interesting position of being agnostic, aggressively agnostic. We deeply believe in both of those platforms and our tools support both of those platforms because, quite frankly, there are very few organizations in the world that are entirely J2EE or entirely .Net because the world is far more heterogeneous. If you look at what one can do with the UML, it is possible to express elements of the architecture that are flatly independent of those particular platforms upon which you build. No doubt as one gets closer and closer to the iron, those platforms do loom large, but there are things one can do that transcend those two particular platforms. Things like testing and requirements are elements of projects that transcend individual platforms.

Q: Getting back to how you see application development changing, what about beyond the next year or so?

A: As chief scientist at Rational, I worry about the future. My time horizon is three to five years, so I have got this network of other chief scientists and researchers and academics around the world that I stay in touch with to keep my eye on where software is going and where we can help to invent that future. As I look beyond the next year or two, I have my eye on concepts like model-driven development. As UML 2.0 becomes more and more mature, the opportunity to drive executability from models is there. In fact, if you take a look at NeuVis, who we recently acquired, they are doing some very interesting things in that direction of being able to drive models to executable stuff. That's very much in our trajectory.

Even further out, I have my eye on some interesting technology from Gregor Kiczales at Xerox PARC and Charles Simonyi at Microsoft Research. Charles these days is working on a thing called "intentional programming." That is very similar to what Gregor is doing -- a thing called "aspect-oriented programming." The problem being, if you look at a complex system, there is no single view that is sufficient to capture its interesting bits, and so you have many stakeholders: analysts, testers, security people [and] business experts. How do I articulate their world view and weave it with others? The problem with aspect-oriented programming is one of weaving aspects, and I think there's some interesting technology that is happening in that space in the next three to five years. Beyond that, I cannot tell you. The only thing I can say is that software becomes a more important part of every organization, for every way of doing business. We live in interesting times, and we will continue to live in interesting times for software.

This story, "Rational pursues liberation for application development teams" was originally published by InfoWorld.

Copyright © 2002 IDG Communications, Inc.

  
Shop Tech Products at Amazon