Skip to content

Introduction

This handbook covers software engineering, process, teamwork, engineering knowledge, requirements, specification, architecture, design, validation, and research and development. The chapters follow a linear sequence to show the shifting concerns of engineering work, as well as the judgments that are sustained throughout the process. Real engineering is less orderly. Requirements change as engineers learn, design can expose architectural problems, and validation can reopen earlier decisions.

In this handbook, I make one change to the usual sequence of engineering work. Research and development (R&D) typically occurs near the beginning, but we place it at the end. R&D asks engineers to decide where scarce effort should go when they do not yet know what is possible, whether an obstacle requires a genuinely new idea, and what evidence would establish an advance. These decisions are difficult to appreciate without some engineering experience. By the end of the handbook, the reader will have developed more of the judgment needed to understand them.

Under a heading reading Software Engineering, a full-width band names three sustained concerns: Process, Teamwork, and Engineering Knowledge. Below the band, a large box labeled Engineering judgment holds six judgment labels in a grid: Requirements, Specification, Architecture, Design, Validation, and R&D, with no connections among them. A double-headed arrow joins the judgment box to a peer box labeled The machine, and two opposing arrows join The machine to a tinted box labeled The world.