Every two years, leaders of the computer sciences community from universities and research labs come together in Snowbird, a ski and summer resort in Utah, for what has become known as the Snowbird conference. This year, I was invited to speak in the opening session. So, a few weeks ago, I got up very early on a Sunday morning and flew to Salt Lake City. I got there early enough to be able to go hiking with friends in the beautiful Snowbird mountains. I also tried rock climbing in a nostalgic, age-defying encounter with a climbing wall - something I have not done in close to forty years.
The following morning I gave my talk on Innovation in the Knowledge Economy. The theme of the talk was the evolution of IT-based systems to the incredibly complex systems we are dealing with today.
In the first part of the talk, I summarized the challenges. Driven by the advances in digital technologies, the Internet, globalization and other powerful technology and market forces, IT-based systems are becoming increasingly global and integrated; market facing and services oriented; and complex and unpredictable.
I then talked about three major initiatives that I am working on with colleagues at IBM, which illustrate this evolution toward complex IT-based systems: cloud computing; globally integrated business systems; and virtual worlds.
The third theme of my talk was, in my opinion, the most important for the audience at the Snowbird conference. Dealing with these incredibly complex systems requires highly-skilled people. There is no doubt that the value of a good education is more important than ever, given all the changes going on around us. But, to help prepare graduates to be innovation leaders in the complex world in which they will be living and working, the education needs to reflect the realities of that world.
Given the multidisciplinary nature of innovation in the knowledge economy, the proper education should ensure that those leaders combine a strong scientific and technical competence; with a good understanding of business, entrepreneurship and markets; as well as good communications and social skills. Just about every study that has looked at the requirements for technical education in the 21st century has come to a similar conclusion.
Through my talk, I kept pointing out that the more complex the systems around us, the stronger the need to learn how to develop well engineered systems, that is, systems that are well designed, reliable, efficient, secure, cost effective and so on. The flaws in a poorly engineered system will become increasingly apparent as the demands on the system increase and it grows to very large dimensions, until it become difficult to use and manage, unreliable, and too expensive to operate.
I asked the academic computer sciences leaders in the audience to consider how to evolve their educational programs to better teach students the kinds of engineering disciplines they will need to deal with such highly complex systems, especially to those students that will go on to jobs in industry and government where those skills are already in high demand. Given that software plays a particularly central role in IT-based complex systems, and computer sciences has been the academic discipline most closely associated with software matters, it seems to me that computer sciences departments can play a key research and education role in helping us better deal with complex systems.
I felt very good about my talk and ensuing dialog with the audience. But later, a friend pulled me aside and told me that I might have committed a kind of faux pas with this audience because of my repeated use of the "e" word - well engineered systems, engineering discipline, engineering tools and methods. Some computer scientists, my friend told me, do not like to view themselves as engineers and do not like to associate their discipline with engineering. They were therefore somewhat put off by my remarks about the potential links between engineering, complex systems and computer sciences. They did not disagree with my overall conclusions, my friend said, but they just felt that I should not have associated engineering with the evolution of their discipline to the extent I did.
I know that physicists, chemists, biologists, and other scientists have sometimes gone to great lengths to differentiate themselves from engineering. My own alma mater, the University of Chicago, has no engineering departments. Until recently, there has been something close to a prejudice, perhaps snobbishness, about anything having to do with engineering at the U of C. This is now changing, as Bob Zimmer, Chicago's very pragmatic president for the last two years has clearly articulated that being a great institution is more important than academic purity, and if some important problems are best studied as engineering disciplines - so be it.
In discussing my inadvertent faux pas at Snowbird, some colleagues reminded me that computer sciences departments vary widely depending on what part of the university they are associated with. Many are part of schools of engineering, sometimes combined with EE as Electrical Engineering and Computer Sciences (EECS) departments. Others are part of science divisions - usually when the computer sciences departments are more theoretical and math-like in nature. Some universities have started whole new schools of computing, as peers of their schools of engineering and science. So, they pointed out, not every computer sciences department is close to engineering. Perhaps my seemingly innocent remarks triggered memories of past university political battles in the minds of some that they did not want to relive in the future.
The most satisfying and elegant answer came from my MIT colleague and friend Joel Moses. Joel is not only one of the sharpest thinkers I have ever met, but having served as head of EECS, dean of engineering, acting director of the Engineering Systems Division and Provost in his long MIT career, he has been on all sides of these issues. Joel pointed out that when systems become very large and complex, it does not matter whether their individual components are atoms - as in physics, mechanical or civil engineering - or bits - as in complex IT-based systems and services-based organizational systems. The laws of very complex systems take over, and they are similar for atoms or bit based systems.
Systems can no longer be understood with well defined deterministic principles, but require more statistically oriented approaches - think of the difference between classical mechanics and quantum mechanics. Models of such complex systems require considerable, empirically based approximations - think of the difference between modeling a computer's processing unit and modeling the World Wide Web. Systems become unpredictable and can no longer be viewed as machines that you automate with computers. You need a combination of talented people and real time, information-based tools to deal with such complex, unpredictable systems.
Most scientists and engineers are used to this view of complex physical systems, and are thus comfortable transferring the view to complex digital systems. But pure mathematicians deal with different kinds of problems not subject to statistical approaches and approximations. Computer scientists span this spectrum, so depending on where in the spectrum they and their departments lie, they will have different reactions about the association of complex IT-based systems with skills normally associated with complex, physically engineered systems.
I suspect that the most effective model for research and education in complex systems will be interdisciplinary academic units like MIT’s Engineering Systems Division. Quite a number of universities have established similar interdisciplinary units. But regardless of how we do it, we need to prepare the next generation of leaders so they can better deal with the technical, market and organizational complexities that will continue to grow all around them.