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.
Very interesting post. I think there will continue to be plenty of work for the computer scientists and engineers who want to remain in the boxes they're used to. There are plenty of machines to be built and tested. But the great opportunities involves spreading into new disciplines, many of them involving life sciences, and many of those involving the complexities of the human brain and behavior. The possibilities are limitless for computer scientists (or whatever you want to call them) who can use their tools and science to help us understand ourselves, and to build services around this.
Posted by: stephen baker | August 04, 2008 at 10:16 AM
Having worked at IBM for a good many years, I notice that IBM's split between 'science' and 'engineering' is roughly as follows.
The scientists establish the principles that things work by. For example, in the days of IBM disk files, the scientists came up with the theories behind Giant Magnetoresistance, which mean we now have one-terabyte disk files rather than one-gigabyte disk files.
The engineers reduce the cost. It can be either reducing the manufacturing cost ... for example, arranging to use all the same size bolts in the disk file assembly rather than multiple different-size bolts; or reducing the warranty cost, for example by formulating and executing a software test plan, revising software before 'General Availiability' to reduce the defect count; or by developing the skills of the IBMers so that there will be sufficient availability of skilled personnel to resolve problems promptly for customers.
A number of businesses have commoditised, as far as IBM is concerned; instead of 'researching, developing, and selling', IBM buys whenever it needs. Personal Computers, hard disks, OS/2, SmartSuite, long-haul networking service, are examples from the last decade or so.
And that brings a requirement for new businesses to replace them; new fields, hopefully as high-growth as Personal Computers and Hard Disks were in the 1980's.
What are the new businesses ? Will they come from academic research scientists in universities, or from commercial research scientists in Yorktown and Almaden ?
Posted by: Chris Ward | August 04, 2008 at 03:26 PM
The Engineering aspect of CS has always been a fascinating one to me. Some schools I've attended always felt so strongly that CS was a Math discipline. Others, including my undergraduate school, treated it as part of EE--which probably informs my personal bias.
Not coincidentally, I was speaking with friend of mine who is being put into a responsible position for a Cambridge-based company and was bemoaning the lack of systems-engineering-based disciplines in some projects. So the lack of systems engineering seems (unfortunately) pervasive.
Best. Hope to run into you again one of these days.
Posted by: Gordon Haff | August 05, 2008 at 10:16 PM
Sorry. The pain of making the necessary sacrifices always hurts more than you think it's going to. I know. It sucks. That being said, doing something seriously creative is one of the most amazing experiences one can have, in this or any other lifetime. If you can pull it off, it's worth it. Even if you don't end up pulling it off, you'll learn many incredible, magical, valuable things. It's NOT doing it when you know you full well you HAD the opportunity- that hurts FAR more than any failure. Help me! I find sites on the topic: The airline ticket? Why can I find available flights online? Read more. I found only this - [url="http://cheapest-tickets.us/"]Airline Tickets[/url]. Based in the united states and offering visa support, accommodation bookings, and business travel assistance. Cheap flights to boston, chicago, new york, los angeles, miami. Waiting for a reply :cool:, Ackerley from Ecuador.
Posted by: Ackerley | March 23, 2009 at 07:41 AM