David G. Wiseman

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.

Ha, ha, ha. Take me back to [ the alphabetic list ] [ the date-ordered list ].