|
To Engineer is Human
Glancing through the book "To Engineer is Human" by Henry Petroski
(one of my favourites -- I had earlier quoted a passage from the book
which quoted from Herbert Hoover about the engineering profession's
hazards, I was once again reminded about the numerous parallels
between what the book describes (it emphasizes structural/civil
engineering, drawing examples from bridges, buses, materials, etc) and
software engineering. For instance, in chapter 4 "Engineering as
hypothesis", he describes the definition of structural engineering,
which The Structural Engineer, the official journal of the British
Institution of Structural Engineers, carries on its contents page:
Structural engineering is the science and art of designing and
making, with economy and elegance, buildings, bridges,
frameworks, and other similar structures so that they can
safely resist the forces to which they may be subjected
Each time I see that passage, I am struck by how close that
comes to defining software engineering - a few slight changes and we
could have
Software engineering is the science and art of designing and
writing, with economy and elegance, applications, libraries,
systems, and other similar programs so that they can
safely resist the forces to which they may be subjected
The book is strongly recommended reading. Petroski carefully analyzes
the problems of failure, and the lessons to be learnt. Some specific
details are obviously not relevant (but still interesting) eg. the
discussion on metal fatigue, but the overall perspective is relevant
to any profession involved in designing/building practical
contrivances. Other quotes:
Thus it is the essence of modern engineering not only to be
able to check one's own work, but also to have one's work
checked and to be able to check the work of others. In order
for this to be done, the work must follow certain conventions,
conform to certain standards, and be an understandable piece
of technical communication.
Success is foreseeing failure.
Economic constraints are often imposed by the demands of the
marketplace, but the requirement for elegance is ofte
self-imposed by the best in the profession in much the same
way as artists and scientists alike see elegance i the sparest
canvases and the most compact theories -- or in the axiom of
minimalist aesthetics and design, "less is more".
"Is it becoming easy to take on design work outside an
engineer's area of expertise simply because a software package
is available? How can civil engineers guarantee the accuracy
of the computer program and that the engineer is qualified to
use it properly?" - quote from the announcement for the Mead
Prize competition for the best paper on the topic "Should the
Computer be Registered" by the American Society of Civil
Engineers.
Bugs entered engineering calculations long before the
computer, and wondering whether he had thought of every
possible failure mode has kept many an engineer awake (at
night).
(He has a fascinating anecdote about his search to check the
antecedents of the famous quote "Those who cannot remember the
past are condemned to repeat it" from George Santayana's "The
Life of Reason". He also quotes Santayana "We must welcome the
future, remembering that it will soon be the past; and we must
respect the past, knowing that it was once all that was
humanly possible.)
Engineering, like poetry, is an attempt to approach
perfection. And engineers, like poets, are seldom completely
satisfied with their creations.
No one wants to learn by mistakes, but we cannot learn enough
from successes to go beyond the state of the art.
|