Wewho program computers often invoke a construction metaphor when we refer to the process of writing code — we say that we build software products. Or perhaps, if we subscribe to the more modern, iterative and so-called agile production models, we may use a garden analogy — grooming and tilling the code, allowing the product to emerge and bloom.

The thing I find the strangest about these metaphors is that they ignore what I consider to be one of the most fascinating and powerful aspects of software — that it is made purely of language. By conjuring up notions of labour — as these metaphors do — it is easy to forget that the most important quality of a product made entirely of language is that it says the right thing. Correctness is something that the naïve application of labour can scarcely achieve.

My favourite substitute for the word construction is acquisition, which I borrowed from Barry Boehm's Spiral Model paper.

The part I enjoy about the term is that it emphasizes the act of getting a thing without specifying the method of doing so, which I assert, at least for the software industry, is a necessary step in breaking free from the construction paradigm.