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.edudiamond@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.