Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

The Nature of Order


August, 2005: The Nature of Order

Jacek has a Ph.D. in mathematics and has been working in software engineering for the last 10 years. His current research area includes adaptation of Alexander's theory to software development. He can be reached at [email protected].


The Phenomenon of Life: The Nature of Order, Book 1
Christopher Alexander
Center for Environmental Structure, 2003
476 pp., $75.00
ISBN 0972652914

The Process of Creating Life: The Nature of Order, Book 2
Christopher Alexander
Center for Environmental Structure, 2003
636 pp., $75.00
ISBN 0972652922

A Vision of a Living World: The Nature of Order, Book 3
Christopher Alexander
Center for Environmental Structure, 2004
690 pp., $75.00
ISBN 0972652930

The Luminous Ground: The Nature of Order, Book 4
Christopher Alexander
Center for Environmental Structure, 2003
356 pp., $75.00
ISBN 0972652949

The Nature of Order, the four-volume series by Christopher Alexander, is a good candidate to become one of the most important software-engineering books of the 21st century. Although it aims at the theoretical foundation of architecture, the series contains a general theory of order and of complex systems that's applicable to software development and, as some computer scientists have predicted, may change the way we develop software.

The Phenomenon of Life: The Nature of Order, Book 1 lays down the foundations of Alexander's theory—that human beings perceive everything as alive. For example, beautiful places in mountains are perceived as having more life than typical steel-and-glass office buildings. Traditional societies thought it obvious that clouds, trees, stones, and places were alive and personal. In modern times, however, this is not necessarily so. Alexander argues that, to some degree or another, life exists in every part of space and matter. That life is well defined, objectively existing, and measurable. That life depends on structural properties of objects. Alexander identifies 15 fundamental structural properties that appear again and again in things that have life. For software engineers, Alexander's concept of "life" is one of the more challenging (and often misunderstood) aspects of his theory, but it is of great importance for software development. Life, as Alexander understands it, is tightly connected with function. For example, the beauty of a flower is the result of paying attention to function at every step of development, not aesthetic considerations. In other words, life is the result of perfect adaptation of form to function.

For many developers, the most interesting of the four books in the series is probably The Process of Creating Life: The Nature of Order, Book 2. In this volume, Alexander examines the importance of process in building living structures. Only what Alexander calls "living processes" are capable of creating life. Such processes are commonly found in nature; for example, the development of embryos or the growth of flowers from seeds. Living processes are always generative. While this is probably the most important feature of living processes, generative processes are not currently used in software development to any great extent. It is worth noting that practically all successful complex systems are the result of generative processes, and complexity is one of the greatest challenges in software development. Features of generative processes include:

  • Generative processes always operate on the whole, such as in embryo development where the system is not composed from parts, but the whole unfolds from the very beginning.
  • This unfolding is through a sequence of transformations, which Alexander calls "structure-preserving transformations." Such transformation acts and elaborates on existing wholeness, preserving its structure, similar to what we see in software with refactoring, where transformation of the code preserves the function (but not the structure). Another example of a structure-preserving transformation is proper use of patterns.
  • Generative processes are highly adaptive. At each step, there is maximal adaptation to inner and outer forces.

There are a number of primitive structure-preserving transformations that other transformations are composed of. These primitive transformations correspond directly to the 15 fundamental properties of living structures—each primitive transformation introduces into the system one property.

Alexander has managed to define and successfully apply living processes to architectural projects, some of which are described in A Vision of a Living World: The Nature of Order, Book 3.

In The Luminous Ground: The Nature of Order, Book 4, the most philosophical book in the series, Alexander argues that his theory and collected data force both changes in our world view and the emergence of a new cosmology. In this new view, space and matter are alive and personal and this is an objective feature. It is a cosmology that places our experience of the self as the link that unites each individual with the whole, connecting consciousness and matter.

The Nature of Order is an abundant source of ideas and inspiration for software engineers, although for some people it may be difficult to grasp (both in size and in meaning). It has the deepest insights into software development that I have ever read, although meaningful adaptation to software engineering requires a lot of systematic effort. In any event, The Nature of Order is a must-read for architects, designers, and anyone interested in the development process.

DDJ


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.