Bringing Design to Software
ed. by Terry Winograd

This fascinating book shows how to improve the practice of software design, i.e. the concepts, principles, rules, and choices that set the context for and direction of the programming tasks. The essays, contributed by prominent software and design professionals, apply lessons from other areas of design to the creation of software artifacts --in order to help us build software that truly works, i.e. that is both appropriate and efective for the end-users.

Brief profiles are interleaved with the 14 chapters; the profiles describe successful projects that concretize in practice the theme and insights developed throughout the book. The text is not a cookbook; it requires work on the part of the reader, who will have to consider if and how each question raised and advice offered is relevant and can be applied to his own activities and artifacts. This book is primarily for software developers, but it is also of interest for the broad community of people who conceive, develop, market, evaluate, and use software.

Until software design matures to the point where something akin to handbooks and cookbooks is practical as well as widely approved and established, the best we can do is to learn from the immediate past with the narrative help of design experts. This book is filled with gems and great lessons which can only benefit your activities as software designer.

Contains many illustrations, carefully selected references for further reading at the end of each chapter, and a detailed index. (321 pages, 1996)
Prices & orders: softcover ** ($30.25)

Invention by Design: How Engineers Get from Thought to Thing
by Henry Petroski

Petroski describes very clearly and succinctly the problems engineers face when they design radically new systems as well as when they seek to improve upon existing systems. He offers meticulously researched case studies of paper clips, pencil points, zippers, aluminum cans, fax machines, turbojets, waterworks, bridges, and skyscrapers.

The ten chapters demonstrate for instance that we can comprehend and improve artifacts by critical analysis of poor engineering and failure modes, that competing objectives are likely to lead to the constant evolution of multiple designs, that factors of safety result in more reliable structures, that the success of one product leads to the conception and development of many derivative ideas, and that the appreciation of failure modes improves our identification of engineering problems which must be "conceived and attacked."

If we value the engineering part of software engineering, we should pay serious attention to the nature of engineering and design. Contains a wealth of illustrations, an abundant bibliography, and a detailed index. (242 pages, 1996)
See also: Ada Home book review (May 1997)
Prices & orders: hardcover * ($17.47)

Page last modified: 1999-01-03