Rational Software Development Conference 2006 June 5 keynote, Part 1 Danny Sabbah, General Manager, IBM Rational ROGER OBERG (Conference Maestro): Here to give us a look forward at software development, the role of governance, and the convergence of several trends that make it essential, please welcome general manager of IBM Rational software, Dr. Danny Sabbah. [APPLAUSE] SABBAH: Good morning. First of all, welcome. Thank you for coming. What I'm going to do today is basically take a little bit of time and I'm going to bring some folks up here to help me after about 20 minutes or so of introducing a couple of concepts. And what we're going to talk about is some of the trends, some of the overriding trends that we see, that I see, frankly, from my frankly 30 years or so of experience in doing software development. And some of those trends are really going to start shaping what you see coming from the Rational Software brand and all of our products. So please pay attention from that particular perspective and we'll try and have and start a conversation on some of those trends and some of the resulting products. And I expect lots of feedback on these types of issues. So first thing, I will make a statement that really, the whole process, the whole notion of software development and its evolution to creating software solutions really must accelerate. Why? Well, because there's more and more pressure on businesses to change, to be agile, to be innovative today, especially with all the given shifts in globalization that we see. And frankly, previous generations of software and software development practice have really resulted in, to a certain extent basically a set of monolithic evolution that results in, for example, ERP implementation sometimes taking longer than building the actual plant. And in many ways basically it takes less time to integrate a parts supplier into a physical supply chain than it does into an overall IT supply chain. And we'll talk about some of the reasons for this; we'll talk about some of the directions that we need to implement in order to be able to get us all moving a little faster and a little more, if you'll pardon the expression, Roger, in concert. So we're talking about basically the trends that have essentially shaped this kind of shift, so things like mass adoption of computing, mass interconnection basically of the entire world through the Internet. Moore's Law, the availability of cheap pervasive connectivity that came out of the whole build up around the dot com. All of these trends basically are putting more and more of that kind of pressure from a technology perspective. From a pure technology perspective one of the ways that we're trying to deal with it is this whole notion of integration as well as abstraction, time honored things that we've done in computer science and software engineering. Unfortunately what's happening is that basically that kind of integration, that kind of abstraction, especially the continual abstraction that changes over time, is leading to forced complexity. And if you look finally at the Internet and what it's doing to businesses, what it's doing to the software that actually runs those particular businesses given all of that evolution basically it really is becoming an ugly development reality. Probably too early in the morning to use that word, but basically it is an ugly development reality. We'll talk a little bit about this. So how are we going to actually accelerate software development? How are we going to accelerate some of these notions, how are we going to deal with some of these issues? Well, what I'm going to try and talk about and introduce today, because these are really heavy duty topics, these are topics that require a certain amount of thinking and a certain amount of, really, integration into our own psyche. We'll talk a little bit about community, we'll talk about modularity, we'll talk about empowerment and innovation through what I call passive governance, which is essentially the integration of automation into what we do every day so that, in essence, governance doesn't become bureaucratic, so that governance doesn't become stultifying. So what we're trying to do really is really maximize value and flexibility in a knowledge-based workforce while we're controlling chaos. And once again, minimizing chaos and maximizing the ability for individuals to make the right decisions at the right place and time. So three major issues that we're going to discuss a little bit today. So let's take a look, once again. Technology, globalization, the advent of regulatory shifts and practices in competitive, extremely competitive, climates. They're all leading to this whole notion of basically shifts in business models. There's been a tremendous amount written about these particular topics; I'm not going to go through it this morning. But one of the major indicators that we see time and again, I kind of put up on the right here. If you look at that particular graph what it says is, it's the average lifetime of a company on the S&P 500 list. It's not the average lifetime of a company altogether, but it's essentially emergence on the S&P 500 list. And if you look at that trend basically, what's happening is that companies used to be on there for 30, 40 years. And now what's happening is their stay as one of the leaders in industry around the S&P 500 is shrinking to almost nothing. There are tremendous destabilizing forces that converge to significantly intensify global competition. And it's not just a matter of competition; it's really a matter of business regulatory drives. And it drives new needs. So what happens is that in essence when we start shifting business rules and we start thinking about trying to automate business processes, we have to start focusing on software development as a core element of that overall business process. And we're being forced to start thinking about it not just from an innovation standpoint but also from a regulation standpoint. We have no other choice. So I don't care what you do. I don't care if you're in the financial sector, I don't care if you're building out avionics in the aerospace industry. What happens is that you're affected by the FAA, you're affected by Sarbanes Oxley, you're affected by health, pharmaceutical regulations, you're affected globally by one or another of these particular types of shifts. And they're impacting how we work together in concert to create software and systems. So one of the things we need to understand is that these things will, along with the innovation drives, the business shifts, start to impact us more and more. Moore's Law. Many of you have heard that there is now the death of Moore's Law. It may be the death of the pure scaling aspects of Moore's Law, but if you look at the evolution of technology with multi core, with three dimensional packaging, with the additional low power, essentially low power types of technologies that are being created, we continue to cheapen the processor power that we use every single day, so this is not going to stop. In addition basically the notion of, quote unquote, free unlimited bandwidth continues whether it's wired, wireless, it's all coming together basically to make sure that we continue to get more and more connected as a bigger and bigger set of organizations, set of communities, set of essentially players, in a very, very large band or orchestra that has to more and more start thinking about how they're all essentially coming together and coordinating. So take the two, basically, the side effects, the combination can actually become a curse if we're not careful. It can become a curse to real innovation and information technology if we don't understand what's going on, if we don't understand the side effects of all of that bandwidth, all of that interconnection, all the technology in combination with all of the regulatory pressures and the pressures to innovate and compete on a global basis. Part of the reason is really that software architecture if we look at the real world now, software architecture is really a combination of a whole series of architectures, a whole series of technology. So whether or not you've got mainframe assets, whether or not you've got client/server assets, whether or not you've got Web 2.0 assets, Java assets, the code I wrote yesterday is tomorrow's legacy. And I mean that almost literally. So basically in contrast to that notion of physical computing where I can actually depreciate assets, throw them away in three or four years, in this particular case some of the software assets that run my business today, that run my organization today, will last 25, to 30, to 40 years. So whether or not we call it legacy, whether or not we call it an anchor around our neck, basically it has to live, it has to survive and it has to persist, and it has to help us. So one of the things that basically we like to think about and we need to understand is that notion of software evolution. It includes decades of legacy. And if we don't turn it to advantage we have to be able to figure out exactly what we want to rot and what we want to actually help us move forward. And that's where things like automation, abstraction, modularity, start to come in. And we'll talk a little bit more about that. But one of the things we want to stay away from is really that notion of chaos, where the chaos is not managed chaos, where we have multiple generations of captured intelligence, where we have mixed and new generation of assumptions in terms of everything in that layer, in that stack that actually runs it. And we don't know what we're doing, we don't know how to control it. Because once again, software evolution, software architecture, is now starting to incorporate a notion of software archeology where we have to kind of dig up the things that really have value and throw away the rest and let it rot. So if we look at the software engineering realities, we actually pulled this from a real customer. Some of you may have seen this chart. This is the interrelationships between the applications that they use, the business logic in essence that runs their particular organization. Usually when I show this chart a couple of people say, hey, that's me. The thing is that this is Page 1 of 4. And this is not even a large enterprise. Okay? Now, you could there and say, oh, my God, you know, I'm not going to deal with this. Well, basically what happens is that you have no other choice, you have to deal with this in many businesses, unless you're starting from scratch, and not everybody can start from scratch. Businesses need to evolve, they need to change, they need to essentially move forward. So the reality is that we need some accelerators. We need a set of enabling conditions. We need to deal with that set of inhibitors, and we need to harness those accelerators, break down the inhibitors and really keep it all straight. So what we're going to try to do is illustrate three trends, and then I'm going to ask some folks to get up here and help me to discuss those particular trends in their own real lives. So first trend, communities. Well, one of the things that we've been doing as a business in the last four or five years is we've actually been playing in open communities a lot more aggressively. Many of you I would suspect have heard of Eclipse. What we're doing and what we're learning through our experiences in things like Eclipse, Linux, you name it basically, Apache, is we're starting to understand the real power of social networking, the real power of building communities. And one of the things that we're starting to understand is that this notion of communities, through the evolution of Metcalf's Law, are really starting to shift how we think of doing software development, and I'll talk a little bit more about that. Modularity, another trend basically. Now, modularity has been around, well, certainly ever since I've been a developer, and I started in the early seventies, folks. So it's certainly not a new notion. But one of the things that we need to do is every once in a while we need to step back and start rethinking how we deal with modularity, and this is one of those times, because one of the things that we need to understand is that the notion of granularity needs to modernize itself to the pressures that we're feeling today, especially when you look at the shifts in technology and the shifts in competitive pressures that we're undergoing. We need to focus on granular decomposition around that software archaeology I talked about before, and we also need to start thinking about recomposition in the context of Web centric standards. We need to start rethinking how we recompose, how we modularly define elements of our overall architecture for increased flexibility, for increased speed of delivery of underlying solutions. And if you really want to spend some quality time basically I'm sure that as soon as Grady gets back and is healthy and is amongst us again, he'll start his evolution of software architecture which really starts to address some of these issues. Oh, and by the way, on the community thing, if you really want a good understanding of what we're doing in that particular space, I would encourage you to come tomorrow to some of the technical keynotes because [John Widden] and [Eric Arma] are going to give you a real treat in terms of understanding what it is that we're learning out of our participation in a development process which is quite nicely orchestrated and generates empowerment basically through open source. So don't miss that. So if you look at the third trend basically around empowerment what we're talking about really is trying to maximize the value of individual contributors, but maximize it in a coordinated context, maximize the individual decision rights but on the other hand basically making sure that it all starts to come together. And we as Rational need to start building the tools. We as a community frankly, around software development process, around software development understanding of life cycle and engineering, need to take all of those trends into account and start reacting to those particular trends, modernizing our products basically and making sure that we start delivering the ability to generate the type of empowerment that we're talking about. And that's what this whole conference will be about. So if we look at convergence and implications just for a second, one thing we've been talking about is really open computing. And one thing I've been emphasizing is what we're learning around open source and the creation of communities. But frankly in open computing in a global world, one, we are basically establishing standards in one particular place is not going to do it. Okay? Open standards have to be, guess what? Open. And everybody has to understand and play. Open architecture basically has to fundamentally increase flexibility and focus on loosely coupled architectures. Architectures and loose coupling basically need to become our key mantra, a key element of everything that we do. So if we move on to this notion of communities, this is a very interesting graph. Basically if you look at this notion of connections, as you increase the number of connections basically i.e., social networking, I can communicate with developers on an instantaneous basis... You get a tremendous increase in effectiveness. And we see that. We see that in the creation of open communities. We see that in the definition of what we're going to be starting to launch and create as gaited communities. And you'll see that going forward basically in everything that we do. Trying to understand that notion of a tipping point, try to understand the notion of acceleration, and then of course where it starts to tail off so that you can make intelligent decisions about how many people need to be involved in that particular community, how broad it needs to be, how gaited it needs to be, whether it needs to go to completely open source or move on. Modularity. You'll see us talking more and more about things like services and service oriented architectures. You've heard that time and time again, basically. But really what we're talking about is a modern notion of modularity -- modularity around Web centric and global standards... ...that actually reuse or start to incorporate the reuse of highly stable legacy code, allows new service suppliers to be brought online quickly, remember what I said before, we need to start the ability to integrate and evolve and basically once get predictable, secure services that gives us agility and quality at the end of the day. So what we're talking about here is really bringing the three together in a new governance model, one that enables empowerment to execute, one that enables greater efficiencies, one that enables clearly defined goals and metrics, and one that in those goals and metrics really gives us essentially greater line of sight to development efficiencies in order to be able to deal with the types of pressures and the environmental factors that we were just talking about. So just to give you a little bit of thinking time we thought we'd take a look at the evolution of another industry, the automobile industry basically. And if you look in 1927, these are published facts. In 1927, the Ford Motor Company, Rouge River Plant, their initial plant, basically, used to go from natural resources all the way to a single model car. A single model car. No options. Fifteen million feet of factory floor in one place. Man, speaking of vertically integrated; boy, is that vertically integrated, 120 miles of conveyors, 100 miles of railroad tracks and 16 locomotives moving things in and out. Everything from ore, to steel furnaces to coke ovens, to rolling mills, all part of the same definition of an enterprise. All controlled internally. Speaking of communities, boy, that was one heck of a close community. If you look at 2005 at the Ford Motor Company and frankly Ford is just one example, it doesn't matter, you can take any automotive company in the world today and they work in pretty much this way. 2,500 suppliers worldwide. It is a supply chain. It is an enterprise that is a supply chain basically, with focus on core competence of design of automobiles, not core competence of digging out iron ore. $70 billion in expenditure on parts, eight different brands, 61 models cars and trucks and thousands of variations to tailor to your needs in terms of bringing out different types of capabilities in cars. Look at the variability that you get out of this decomposition and recomposition using much larger communities, in this case, a physical supply chain. What we're talking about today is the emergence around the Internet of intellectual supply chains that are complimenting the construction of systems of all types that allow us to start gaining this type of speed to market and flexibility. We didn't even talk about speed to market in terms of overall design to turn over, basically, and generate new lines of cars. But basically it's there. So the whole automotive industry has been forced that way, and guess what? The software engineering and the software solutions industry is actually going to start moving in that particular direction. And so to start discussing some of these trends and some of the impacts, I'm going to ask a few friends to come up. We're going to do a little bit of a customer panel. So if I could ask Joe Bugajski from Visa to come up; Jan Roberts from Cisco, and Jay Cappy to come up and help me, from BearingPoint. [APPLAUSE, THEN GETTING SETTLED, BANTER, LAUGHTER] So basically, let's talk a little bit about this, this whole notion of supply chains, this whole notion of basically starting to think of intellectual property in ways that we haven't thought about it before outside the context of a single enterprise. How do you see it from a Visa perspective, Joe? JOE BUGAJSKI, VISA: That's a very good point, Danny. It's, in Visa's operations we start with the card, which is, which today is a machine that's programmable, we have over one billion of those. And we go to several hundred million terminals, also programmable, all of these things using software. So our software supply chain extends out as far as the billion cards, couple hundred million terminals, then into some 24 million plus merchants, and then from there, into some 20,000 of our banks, all of which when we exchange the information that causes a payment to go through in under a few seconds. That's all about keeping our software organized, keeping our software working together in a reliable and consistent way. The challenges that we face in that environment are two fold. First, what we really need to do is to be able to evolve in the presence of many different products and services. So our markets are changing. Things are happening very fast. The form factors are coming online very quickly such as the chip cards, such as the mobile payments, e commerce payments, recurring payments, commercial payments and the like, all of which really relate to the idea of the sedimentary architectures when as the guy that's supposed to keep that stuff working together... [LAUGHTER] We have all of that. And thanks to IBM, there's a bunch of that stuff in there. And all of it has to work in a reliable and a consistent way. Key to us now going forward to enable a broader set of products and services for the second part of the issue which is, in over 220 countries there are very different markets. They evolve very differently. And they don't actually evolve in the same way software does. They evolve at their own rates. The US market is different than the European market, is different than the Asian market, is different than the Middle Eastern market, is different than the African market and the like. All of those change and develop, so we need, at Visa, we are looking at ways of improving our ability to communicate using open standards: UML. We are very reliant on model driven architecture concepts. We're looking at SOA, the opportunities to build connectivity SOA and the like. And of course, to do that, we've had a good partner in Rational, who's helped us go through from the waterfall methodology to the object methodology and now to the SOA methodology and who knows where next. But the point is I think that all of that has to work together and without a community that believes in contributing to those open standards that actually all of us here bring the intelligence and the materials and the know how together with my colleagues on this panel with Rational, with all of you, we can make these systems grow. We can additional, we can add and improve and really do well in our marketplace. SABBAH: Thanks, Joe. That sounds great. Lots of the similar themes. Jan, if you look at it from a Cisco perspective, very different business basically. JAN ROBERTS, CISCO: Very different, yes. Cisco is... SABBAH: And you're building systems, you're trying to integrate a lot of hardware and software basically. JAN ROBERTS, CISCO: Yes, yes. SABBAH: What are the challenges from your perspective? [END OF PART 1]