Chapter 31. Programming Is an Act of Design

Einar Landre is a practicing software professional with 25 years' experience as a developer, architect, manager, consultant, and author/presenter.

Currently for StatoilHydro's Business Application Services, he engages in business-critical application development, architecture reviews, and software process improvement activities, specializing in SOA, domain-driven design, use of multi-agents and design of large-scale, networked, software-intensive systems.

Einar Landre
image with no caption

KRISTEN NYGAARD, FATHER OF OBJECT-ORIENTED PROGRAMMING and the Simula programming language, used to say programming is learning. Accepting the fact that programming—or more precisely, software development—is a processes of discovery and learning, not a process of engineering and construction, is fundamental to bringing software practices forward. Applying the concepts of traditional engineering and construction on software development does not work. The problems have been documented and commented upon by leading software thinkers for more than 30 years. As an example, in 1987 Fredric Brooks, Jr., stated in the "Report of the Defense Science Board Task Force on Military Software" that the document-driven, specify-then-build approach lies at the heart of many software problems.

So where should the software industry look to improve its practices? What about the industries involved ...

Get 97 Things Every Software Architect Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.