wtwolfe@hubcap.clemson.edu (Bill Wolfe) (09/10/89)
The following letter appears in the September 1989 issue of the _Communications of the ACM_, and is presented for general discussion: INFORMATION SYSTEMS IS AN ENGINEERING DISCIPLINE The industrialized world is in the process of significantly enhancing its information system infrastructure. New information systems are being designed and built in such diverse areas as: air traffic control, funds transfer, military command and control, stock transactions, manufacturing, and engineering. During the next decade and beyond, the lives and safety of our citizens as well as the competitiveness of our country will depend on the correct functioning and efficiency of these new systems. It should be self evident that the specification, design, implementation, and validation of such systems is an engineering project of considerable difficulty. Information systems must meet exacting standards of performance and must be constructed within strict time and budget constraints. Many contain hundreds of thousands, even millions, of lines of code. Indeed the complexity of some of these systems rivals that of any artifact ever constructed by man. By any reasonable definition, information systems is an engineering discipline. The question I would like to raise is: who is going to be responsible for building these new systems that are so important to our national economy? To make the issue specific, suppose you were a manager responsible for developing one of these systems. Suppose your boss reminds you that the proposed system will operate in an environment in which human lives and property are at stake. He also reminds you of the many failures of such development projects -- systems that are late, grossly over budget, or never really work correctly. Your career as a manager is on the line. What professional would you select to be the manager of the system development project? A computer scientist? Not likely. By and large, the computer science community has ignored the entire area of information systems. Most computer scientists view people who implement information systems as rather low-tech COBOL programmers who were not smart enough to get a computer science degree. Many academic computer science departments actively brainwash their undergraduates that it is below their professional dignity to work in the information systems area. If you could find a computer scientist willing to undertake the job, you might find that he has the technical skills to design and implement the internals of the system -- the database, algorithms, communications, etc. -- but is weak in the engineering skills required to plan, organize, and manage the project. Most computer science departments simply do not consider it part of their job to instill in their graduates the engineering approach and engineering ethic that are part of the educational process in other engineering disciplines. The required software engineering course or senior project hardly makes up for four years of being immersed in a non-engineering culture. Indeed sometimes the computer science culture is actually anti-engineering. Instead of "If a bridge you design ever falls down, it is a personal blot on your professional career," we hear: "Everyone knows software has bugs in it when it is released." An electrical engineer? Quite likely, if the application is in military or engineering systems. You might find that the engineer has technical knowledge in the application area (for example, radar systems), the ability to design and build to specifications, and, if a senior engineer, the skills to plan, organize, and manage the project. However, you might also find that the engineer is weak in the computer science skills to design and implement the system internals. Thus, the project might be completed on time and budget, but might not employ up-to-date computer science technology (a situation that occurs all too often in military systems). An information systems professional? Quite likely, if the application is in business or management information systems. Unfortunately, you might well find that the information systems professional -- particularly one educated in one of the existing academic information systems programs -- is weak in both technical and engineering skills. As evidence for the last statement, I turn to the most recent report of the ACM Curriculum Committee on Information Systems, which proposes goals and a curriculum for academic information systems programs. Of the many possible quotes from that report, I include one that compares the information systems and computer science curricula: The IS curriculum differs from the computer science curriculum in the environment in which the program is taught, the employment environment for the graduate, and the depth of the technical environment required. 1. The IS curriculum teaches information systems concepts and processes within two contexts, organization knowledge and management knowledge and technical information systems knowledge, whereas computer science tends to be taught within an environment of mathematics, algorithms, and engineering technology. 2. The IS graduate is expected to work within the environment of an organization and to interact with both organizational functions and computer technology. The computer science graduate has less interaction with organization functions and more interaction with hardware and software technology. 3. In technical expertise, the IS curriculum places substantial emphasis on the ability to develop an information system structure for an organization and to design and implement applications. There is less emphasis on in depth skills in hardware and software design. The computer science graduate typically has less exposure to information requirement analysis and organization considerations but obtains greater expertise in algorithm development, programming, and system software and hardware. I interpret this quote as saying that the graduate of an information systems program may well have a good understanding of management and business applications, but is highly likely to be weak in both the technical and engineering skills referred to above. I can hear the criticism of the last remark: "Sure, you might need technical people down in the trenches doing the actual implementation, but the manager of the project does not need detailed technical and engineering skills." That view is succinctly expressed in a recent _Business Week_ article discussing failed information systems projects. Among the advice given is: Put senior, nontechnical management in charge of the project to help ensure that it is finished on time and within budget. Rubbish! Managing a large information system development project is a professional skill requiring significant technical and engineering background. The overwhelming body of experience shows that successful system development projects are managed by people who have both project management skills and technical knowledge in the application area. Projects fail, not because they are managed by technical people, but because they are managed by *incompetent* technical people who lack the necessary engineering skills and experience. Who then would you select to manage your information systems development project? In the broader context, which technical discipline will take the lead in designing and building the complex information systems our country needs to support its information infrastructure? Unfortunately, no academic discipline is providing the education and training needed to produce the people who will be the technical leaders in this important area: (1) Computer science departments do not view information systems as within their charter and produce graduates which lack the required engineering orientation and skills. (2) Electrical engineering departments produce graduates with an engineering orientation but without the required computer science skills. (3) Information systems departments do not view building information systems as an engineering task and produce graduates which lack both the required engineering and technical skills. One reason why academia is not producing information systems professionals with the required skills is that many of the businesses that employ their graduates also do not realize that building an information system is a highly technical, engineering endeavor. I include one additional quote from a recent article in _Datamation_ by a corporate personnel director describing the type of information system people he is seeking: We are going after the business graduate with a computer science minor, if we can get it. Business skills are more important than technical skills, which we can teach ourselves. We only require that candidates have one COBOL course. Then we put them through a six-week training course, and they receive additional training as their job requires it. This particular company is willing to entrust its information system development to people with no technical training whatsoever! One source of confusion is the name "information systems" itself. The academic and industrial information systems community commonly uses the term information systems in a rather narrow sense to refer only to management or business information systems. Yet the technology underlying information systems has applications in a large number of other fields; a military command and control systems is not unlike a factory management system, and an air traffic control system is the ultimate material tracking system. In the past, there have been significant differences in scale; business information systems were often relatively small (systems that could be built by a person who had taken only one COBOL course), while military and related systems were significantly larger, sometimes requiring millions of lines of code. That scale difference, however, is disappearing. Many modern business information systems are quite large and rival in complexity their military counterparts. If we want to attract bright engineering-oriented professionals to build these complex information systems, for business as well as military and related applications, we have to broaden our perspective as to what constitutes an information system. Information systems should be viewed as an engineering discipline that can be applied to a large number of application areas, including business information systems and military command and control systems, to name just two. It is much easier to state the problem than to propose a solution. Ideally an information system professional should have the technical knowledge of a computer scientist, the engineering skills of an electrical engineer, and the application knowledge of an information systems graduate (but for a wider range of applications than just business systems). An appropriate course of study might be taught within a computer science department, an electrical engineering department, or an information systems department, although the orientation and content of the curriculum would have to be quite different than that of most present departments. I believe that many of the most successful programs will be housed within a school or college of engineering. Information systems is an engineering discipline; engineers are the professionals in our society who build useful systems that are implemented on time and on budget; and engineering schools provide the educational environment in which future engineers are imbued over a four year period with the culture, the ethic, and the sense of professional responsibility that shape their entire professional lives and enable them to perform the engineering function. If we want our information systems to work correctly and reliably and be useful to real people, if we want them to be built within budgetary constraints, we have no choice but to place the responsibility for their development in the hands of people who have the necessary technical skills, but even more important, the engineering skills and orientation to get the job done -- and within our present university system, these kinds of people receive their education in schools of engineering. Although I believe that engineering schools are an appropriate place to house such programs, the issues go beyond any organizational entity within the university. My concerns can be summarized in two statements: (1) A large part of the information systems community, both academic and industrial, does not appear to understand the self evident fact that building a large information system is an engineering endeavor requiring significant technical and engineering skills. (2) No academic discipline views it as their job to educate technically trained, engineering oriented, information systems professionals. We say we are moving toward an information-based economy. Who is going to build our information systems infrastructure? Author: Philip M. Lewis Department of Computer Science State University of New York Stony Brook, NY 11794-4400 ARPA: pml@sbcs.sunysb.edu
diamond@csl.sony.co.jp (Norman Diamond) (09/13/89)
_Business Week_ writes: > Put senior, nontechnical management in charge of the project to > help ensure that it is finished on time and within budget. In article <6429@hubcap.clemson.edu> wtwolfe@hubcap.clemson.edu (Bill Wolfe) writes: > Rubbish! Managing a large information system development project is > a professional skill requiring significant technical and engineering > background. Absolutely true. Business Week's advice results in products that don't work. It is important to produce the wrong answer as quickly AND as cheaply as possible, eh? This kind of practice is the reason why the U.S. (and especially Canada) now fall behind industrialized countries' economies. (In private industry, people get fired for expressing Mr. Wolfe's opinion, or mine.) -- -- Norman Diamond, Sony Corporation (diamond@ws.sony.junet) The above opinions are inherited by your machine's init process (pid 1), after being disowned and orphaned. However, if you see this at Waterloo or Anterior, then their administrators must have approved of these opinions.