<?xml version="1.0"?>
<?xml-stylesheet href="/transform" type="text/xsl"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:bibo="http://purl.org/ontology/bibo/" xmlns:bs="http://purl.org/ontology/bibo/status/" xmlns:ci="https://vocab.methodandstructure.com/content-inventory#" xmlns:dct="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" lang="en" prefix="bibo: http://purl.org/ontology/bibo/ bs: http://purl.org/ontology/bibo/status/ ci: https://vocab.methodandstructure.com/content-inventory# dct: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# xhv: http://www.w3.org/1999/xhtml/vocab# xsd: http://www.w3.org/2001/XMLSchema#" vocab="http://www.w3.org/1999/xhtml/vocab#" xml:lang="en">
  <head>
    <title property="dct:title">Why Build Software When You Can Define It?</title>
    <base href="https://doriantaylor.com/why-build-software-when-you-can-define-it"/>
    <link href="document-stats#EbVznMF0MUWondCWbtJZEL" rev="ci:document"/>
    <link href="elsewhere" rel="alternate bookmark" title="Elsewhere"/>
    <link href="this-site" rel="alternate index" title="This Site"/>
    <link href="http://purl.org/ontology/bibo/status/published" rel="bibo:status"/>
    <link href="" rel="ci:canonical" title="Why Build Software When You Can Define It?"/>
    <link href="lexicon/#EzqXIsriaILFcWjXdS7FbI" rel="dct:audience" title="Software Developer"/>
    <link href="person/dorian-taylor#me" rel="dct:creator" title="Dorian Taylor"/>
    <link href="lexicon/#EAdohOSM0U6cjYu1rAG22K" rel="dct:subject" title="Software Development"/>
    <link href="person/dorian-taylor" rel="meta" title="Who I Am"/>
    <link about="./" href="3f36c30c-6096-454a-8a22-c062100ae41f" rel="alternate" type="application/atom+xml"/>
    <link about="./" href="f07f5044-01bc-472d-9079-9b07771b731c" rel="alternate" type="application/atom+xml"/>
    <link about="./" href="this-site" rel="alternate"/>
    <link about="./" href="elsewhere" rel="alternate"/>
    <link about="./" href="e341ca62-0387-4cea-b69a-cdabc7656871" rel="alternate" type="application/atom+xml"/>
    <link about="verso/" href="3f36c30c-6096-454a-8a22-c062100ae41f" rel="alternate" type="application/atom+xml"/>
    <link about="verso/" href="this-site" rel="alternate"/>
    <link about="verso/" href="elsewhere" rel="alternate"/>
    <meta content="why-build-software-when-you-can-define-it" datatype="xsd:token" property="ci:canonical-slug"/>
    <meta content="Using a construction metaphor for knowledge work invokes a feeling of labour &#x2014; if you just work hard enough you'll eventually get the job done. But for software or other knowledge products, the job will never be done until it's sufficiently correct &#x2014; and that isn't a function of labour." name="description" property="dct:abstract"/>
    <meta content="2008-06-13T02:41:35+00:00" datatype="xsd:dateTime" property="dct:created"/>
    <meta content="why-build-software-when-you-can-define-it" property="dct:identifier"/>
    <meta content="2008-06-13T04:26:57+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2008-06-17T17:08:35+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2008-06-17T19:43:04+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2008-06-18T05:47:27+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2008-10-10T13:21:53+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2009-03-04T00:43:00+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2009-03-20T19:03:18+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2009-08-14T20:07:32+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2022-05-31T04:18:52+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta about="person/dorian-taylor#me" content="Dorian Taylor" name="author" property="foaf:name"/>
    <meta content="summary" name="twitter:card"/>
    <meta content="@doriantaylor" name="twitter:site"/>
    <meta content="Why Build Software When You Can Define It?" name="twitter:title"/>
    <meta content="Using a construction metaphor for knowledge work invokes a feeling of labour &#x2014; if you just work hard enough you'll eventually get the job done. But for software or other knowledge products, the job will never be done until it's sufficiently correct &#x2014; and that isn't a function of labour." name="twitter:description"/>
    <object>
      <nav>
        <ul>
          <li>
            <a href="on-the-building-of-software-and-websites" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">On the &#x201C;Building&#x201D; of Software and Websites</span>
            </a>
          </li>
          <li>
            <a href="the-principle-of-one-degree" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">The Principle of One Degree</span>
            </a>
          </li>
          <li>
            <a href="this-whole-site-is-a-sketch" rev="dct:references" typeof="bibo:Note">
              <span property="dct:title">This Whole Site is a Sketch</span>
            </a>
          </li>
          <li>
            <a href="wants-and-needs" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Wants and Needs</span>
            </a>
          </li>
          <li>
            <a href="where-is-the-user-in-this-picture" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Where is the User in this Picture?</span>
            </a>
          </li>
          <li>
            <a href="working-against-the-kloc" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Working Against the KLOC</span>
            </a>
          </li>
          <li>
            <a href="document-stats#EbVznMF0MUWondCWbtJZEL" rev="ci:document" typeof="qb:Observation">
              <span>urn:uuid:6d5ce730-5d0c-4516-ba27-74259bb49644</span>
            </a>
          </li>
        </ul>
      </nav>
    </object>
  </head>
  <body about="" id="ETGUCPkHz1vLQJI09T2DgL" typeof="bibo:Article">
    <p><span title="The Royal We">We</span>  <span title="Contrast the epithet &quot;programmer&quot;, that denotes a specific career orientation.">who program computers</span> often invoke a <em>construction</em> metaphor when we refer to the process of writing code &#x2014; we say that we <em>build</em> software products. Or perhaps, if we subscribe to the more modern, iterative and so-called <q>agile</q> production models, we may use a <em>garden</em> analogy &#x2014; grooming and tilling the code, allowing the product to <em>emerge</em> and <em>bloom</em>.</p>
    <p>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 &#x2014; that it is made purely of <em>language</em>. By conjuring up notions of labour &#x2014; as these metaphors do &#x2014; it is easy to forget that the most important quality of a product made entirely of language is that it <em>says the right thing</em>. Correctness is something that the na&#xEF;ve application of labour can scarcely achieve.</p>
    <p>My favourite substitute for the word <em>construction</em> is <strong>acquisition</strong>, which I borrowed from Barry Boehm's <a type="application/pdf" href="http://www.computer.org/portal/cms_docs_computer/computer/homepage/misc/Boehm/r5061.pdf" title="A Spiral Model of Software Development and Enhancement &#x2014; Dr. Barry W. Boehm, 1988" rel="dct:references">Spiral Model</a> paper.</p>
    <p>The part I enjoy about the term is that it emphasizes the act of <em>getting</em> 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 <em>construction</em> paradigm.</p>
  </body>
</html>
