<?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">On the &#x201C;Building&#x201D; of Software and Websites</title>
    <base href="https://doriantaylor.com/on-the-building-of-software-and-websites"/>
    <link href="document-stats#EdVUNcudv6XCTI1nwtpR7J" 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="On the &#x201C;Building&#x201D; of Software and Websites"/>
    <link href="lexicon/#E-ZY5i7K1cqzfT0p1L9ajJ" rel="dct:audience" title="Digital Media Practitioner"/>
    <link href="lexicon/#Er25AsP7lDnL8trRRAsODJ" rel="dct:audience" title="Digital Media Theorist"/>
    <link href="person/dorian-taylor#me" rel="dct:creator" title="Dorian Taylor"/>
    <link href="file/a-graph-is-not-a-tree" rel="dct:hasPart"/>
    <link href="file/a-tree-is-a-kind-of-graph" rel="dct:hasPart"/>
    <link href="file/brownian-motion" rel="dct:hasPart"/>
    <link href="file/prescription-vs-overrun" rel="dct:hasPart"/>
    <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="on-the-building-of-software-and-websites" datatype="xsd:token" property="ci:canonical-slug"/>
    <meta content="I have long believed that software the Web are a poor fit for the archetypal construction project, but I always imagined they could be brought into alignment. Now I'm pretty sure they can't." name="description" property="dct:abstract"/>
    <meta content="2012-02-03T18:05:36+00:00" datatype="xsd:dateTime" property="dct:created"/>
    <meta content="on-the-building-of-software-and-websites" property="dct:identifier"/>
    <meta content="2012-02-07T08:21:53+00:00" datatype="xsd:dateTime" property="dct:issued"/>
    <meta content="2012-02-06T19:41:43+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2012-02-07T08:29:42+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2012-02-19T07:30:20+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2012-03-16T21:37:40+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2015-09-26T22:29:42+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2018-07-01T05:18:15+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2021-07-24T21:42:43+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2022-05-31T04:18:52+00:00" datatype="xsd:dateTime" property="dct:modified"/>
    <meta content="2022-05-31T15:10:50+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_large_image" name="twitter:card"/>
    <meta content="@doriantaylor" name="twitter:site"/>
    <meta content="On the &#x201C;Building&#x201D; of Software and Websites" name="twitter:title"/>
    <meta content="I have long believed that software the Web are a poor fit for the archetypal construction project, but I always imagined they could be brought into alignment. Now I'm pretty sure they can't." name="twitter:description"/>
    <meta content="https://doriantaylor.com/file/prescription-vs-overrun;scale=450,450" name="twitter:image"/>
    <object>
      <nav>
        <ul>
          <li>
            <a href="an-anatomy-of-information-space" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">An Anatomy of Information Space</span>
            </a>
          </li>
          <li>
            <a href="deliverables-simple-and-complex" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Deliverables, Simple and Complex</span>
            </a>
          </li>
          <li>
            <a href="giant-conf-2014-dissolving-the-redesign" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">GIANT Conf 2014: Dissolving the Redesign</span>
            </a>
          </li>
          <li>
            <a href="interview-with-lara-fedoroff-for-ux-radio" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Interview With Lara Fedoroff for UX Radio</span>
            </a>
          </li>
          <li>
            <a href="la-forme-de-flaner" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">La Forme de Fl&#xE2;ner</span>
            </a>
          </li>
          <li>
            <a href="life-after-forecasting" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Life After Forecasting</span>
            </a>
          </li>
          <li>
            <a href="lowering-the-risk-of-web-development" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Lowering the Risk of Web Development</span>
            </a>
          </li>
          <li>
            <a href="my-work-at-the-ia-institute-an-anthology" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">My Work at the IA Institute: An Anthology</span>
            </a>
          </li>
          <li>
            <a href="http://contentsmagazine.com/articles/no-longer-no-sense-of-an-ending/" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">No Longer No Sense of an Ending</span>
            </a>
          </li>
          <li>
            <a href="reluctant-management-consultant" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Reluctant Management Consultant</span>
            </a>
          </li>
          <li>
            <a href="softwares-ailing-mythology" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Software's Ailing Mythology</span>
            </a>
          </li>
          <li>
            <a href="the-hundred-year-infrastructure" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">The Hundred-Year Infrastructure</span>
            </a>
          </li>
          <li>
            <a href="the-roi-of-a-solved-problem" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">The ROI of a Solved Problem</span>
            </a>
          </li>
          <li>
            <a href="the-redesign-dissolved" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">The Redesign, Dissolved</span>
            </a>
          </li>
          <li>
            <a href="website-change-diary" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">Website Change Diary</span>
            </a>
          </li>
          <li>
            <a href="what-we-mean-when-we-say-website" rev="dct:references" typeof="bibo:Article">
              <span property="dct:title">What We Mean When We Say &#x201C;Website&#x201D;</span>
            </a>
          </li>
          <li>
            <a href="document-stats#EdVUNcudv6XCTI1nwtpR7J" rev="ci:document" typeof="qb:Observation">
              <span>urn:uuid:75550d72-e76f-4e97-9093-2359f0b6947b</span>
            </a>
          </li>
        </ul>
      </nav>
    </object>
  </head>
  <body about="" id="EATXiorGK6Kx4kX5ZNKHWJ" typeof="bibo:Article">
    <p>I only worked at an agency once, and it was a very long time ago. But until recently I never thought to question the business model: a fixed-bid contract to <em>build</em> a website, or app or whatever. <a href="why-build-software-when-you-can-define-it" title="Why Build Software When You Can Define It?" rel="dct:references">I've considered this topic before</a>, but never with enough conviction to <a href="information-infrastructure-as-a-process" title="Information Infrastructure as a Process" rel="dct:references">fully convince myself</a>. I'm beginning to suspect, though, that software, and more conspicuously the Web, is fundamentally <em>the wrong shape</em> for the archetype of the construction project.</p>
    <p>People have been constructing buildings for thousands of years, so it's a pretty familiar metaphor. Business managers love this model because it's easy to understand: a capital asset in trade for a capital asset. They can do <abbr title="Return on Investment">ROI</abbr> calculations and everything. Agencies like it because it's well-defined. The model is so popular that it's used internally in established businesses (through procurement processes), as well as startups (by way of the various flavours of venture finance).</p>
    <p>But anybody who has tried this model can tell you that it glazes over enormous risk, which has to be hedged somehow. Despite the construction project's veneration, even building contractors have trouble with it, and they have an advantage. One, they have a mile-long spec to work against; two, they have building materials they can <a href="http://en.wikipedia.org/wiki/Arbitrage" title="Arbitrage &#x2014; Wikipedia" rel="dct:references">arbitrage</a>; three, everybody knows what progress on a building looks like.</p>
    <p>But we've heard all these arguments before. They haven't been enough to sway the practice. Even members of the vanguard are apparently not <em>Agile</em> enough to get away from the construction project metaphor, ostensibly because it's the only language many businesspeople understand.</p>
    <h2><a href="http://en.wikipedia.org/wiki/Douglas_Adams#cite_ref-16" title="I love deadlines&#x2026;" rel="dct:references">I Like the Whooshing Noise They Make As They Fly By</a></h2>
    <p>When you sign the contract for the construction project, you are agreeing to make a <em>Thing</em>&#x2014;app, website, whatever. And you will have agreed to deliver this Thing on a certain date, also known as a <dfn>deadline</dfn>. From this point forward, the goals of shipping the Thing on time and actually solving the client's problem will be in competition with each other.</p>
    <p>Now, I understand deadlines. I understand that the plane will take off whether or not I'm on it, or the importance of beating the holiday retail rush, or that <q>the show must go on</q>. It is perfectly clear to me how people use timekeeping technology to coordinate social activity. It's actually quite remarkable when you step back and look at it. <em>But</em>, over the years, I have observed that there is a difference between those examples and the ones around the delivery of Things, which tend to be completely arbitrary. When you wrap an arbitrarily complex endeavour up in a neat launch date, the goal seems to be more about coercing the people beneath you to absorb the overhead of all the details you left out&#x2014;that or sweating it yourself. As a tool for coordinating human activity, I have come to believe that the Thing-deadline calculus is, considering more sophisticated alternatives, unnecessarily crude.</p>
    <h2><a href="http://en.wikipedia.org/wiki/Hofstadter%27s_law" title="It always takes longer than you think &#x2026;" rel="dct:references">Even When You Take Into Account Hofstadter's Law</a></h2>
    <p>First, it will <em>always</em> take longer than you think. The question is <em>how much</em>. I have seen some amusing <span class="parenthesis" title="curiously, they've all been linear">estimate-padding formulae in my day</span>. They seldom go so far as to account for the fact that time on the meter is not the same thing as dates on the calendar&#x2014;far from reliable enough to stake a business on.</p>
    <p>There is one property in common to all those endeavours for which it is possible to produce reliable estimates of cost and time: <em>data</em>. Copious amounts of quantitative, empirical data about how long it takes and how much it costs to carry out a certain task. Which entails that the task itself be well-defined.</p>
    <p>This means that in order to meet your targets under the construction model, and thus earn a profit and stay in business, you need to systematize your process. There are two strategies I am aware of for doing this: algorithmic and statistical. The algorithmic strategy is simply prescribing the process from top to bottom, with little attention to what would actually solve the client's problem, manifest in the Web's infestation of inscrutable restaurant websites. The statistical strategy effectively reduces to bathing the project in money, in the anticipation that valuable results will emerge&#x2014;which is essentially what non-trivial scope and design phases present in the higher-end agencies and internal processes are made of.</p>
    <figure>
      <img style="display: block; width: 450px; height: auto; margin: auto;" src="file/prescription-vs-overrun;scale=450,450" alt="" rel="foaf:depiction"/>
    </figure>
    <p>Though in my experience, elswhere the construction model was applied, there was always a pressure to prescribe, no matter how much money there was to play with. It's a simple matter of <a href="http://en.wikipedia.org/wiki/Cost_accounting" title="Cost accounting &#x2014; Wikipedia" rel="dct:references">cost accounting</a>. The more you can keep the project within the boundaries of well-defined processes, the higher the profit margin. And this fundamental incentive is what I mean by software and the Web being the wrong <em>shape</em> for the model.</p>
    <h2>A Tree is a Graph but a Graph is not a Tree</h2>
    <p><a href="http://www.rudi.net/books/201" title="Christopher Alexander: A City is not a Tree part 2 | RUDI - Resource for Urban Design Information" rel="dct:references">I have reason to believe</a>, which <span class="parenthesis" title="since this beast is already pushing 3000 words">for brevity's sake</span> I will treat elsewhere, that the most complex class of processes and structures we humans can consciously prescribe, reduces mathematically to a <a href="http://en.wikipedia.org/wiki/Tree_%28graph_theory%29" title="Tree (graph theory) &#x2014; Wikipedia" rel="dct:references">tree</a>. A tree has a top, bottom, left and right. Its branches fan out from the trunk and they don't intersect with one another. They are discrete, contiguous, identifiable objects which persist across time. Trees are <em>Things</em>.</p>
    <figure>
      <img style="display: block; width: 400px; height: auto; margin: auto;" src="file/a-tree-is-a-kind-of-graph;scale=400,400" alt=""/>
    </figure>
    <p>Software and websites, however, reduce to arbitrarily more complex structures: they are <a href="http://en.wikipedia.org/wiki/Directed_graph" title="Directed graph &#x2014; Wikipedia" rel="dct:references">graphs</a>. A graph has no meaningful orientation whatsoever. No sequence, no obvious start or end&#x2014;at least none that we can intuit. It is better considered not as <em>one</em> Thing, but as a <em>federation</em> of Things, like the brain or a fungus network, or perhaps a composite artifact left behind from an ongoing process, like an ant colony or human city.</p>
    <figure>
      <img style="display: block; width: 400px; height: auto; margin: auto;" src="file/a-graph-is-not-a-tree;scale=400,400" alt=""/>
    </figure>
    <p>True, a <a href="http://en.wikipedia.org/wiki/Inheritance_%28computer_science%29" title="Inheritance (computer science) &#x2014; Wikipedia" rel="dct:references"><span class="parenthesis" title="hopefully, for the sake of maintenance">software class hierarchy is a tree</span></a>, and the Web was designed on top of a <a href="http://en.wikipedia.org/wiki/POSIX" title="POSIX" rel="dct:references"><abbr title="Portable Operating System Interface">POSIX</abbr></a> <a href="http://en.wikipedia.org/wiki/File_system" title="File system &#x2014; Wikipedia" rel="dct:references">file system</a>, which is <span class="parenthesis" title="notwithstanding hard and symbolic links; though note that POSIX compliance enforces that the former can only be files, not directories, and the latter are liable to breaking.">also a tree</span>, but these are two pernicious red herrings. These structures conceal both the myriad interactions between their components, as well as the intensive processes that got them to such a tidy state. It is precisely structures like these that we have in mind when we prescribe <em>features</em> or <em>sections</em>.</p>
    <p><a href="navigation-by-shibboleth" title="Navigation by Shibboleth" rel="dct:references">I have already outlined a process</a> for extracting trees from graphs&#x2014;thus identifying shapes that <em>do</em> conform to the construction project&#x2014;in a hairball of considerations, but there still remains the problem of composing such a graph in the first place.</p>
    <h2>Pickle Juice in Place of Chocolate Syrup</h2>
    <p><a href="the-web-doesnt-have-content-the-web-is-content" title="The Web Doesn't Have Content, the Web IS Content" rel="dct:references">The most important consideration for any software or web excursion is <em>content</em></a>: the content of the text and other communicative media, as well as the content of the code that executes the business processes. The ability to tick off a page or piece of functionality as being <em>done</em> only produces a <em>nominal</em> successful result; the careful crafting of what one of these objects <em>says</em> produces a <em>real</em> one. And both resist the concept of <em>done</em>&#x2014;the single most important criterion for the smooth execution of the construction project&#x2014;with great intransigency.</p>
    <p>Content, by definition, <span class="parenthesis" title="Nitpickers: I'm not talking about insignificant permutations of text.">has no substitute</span>. Content is what conveys meaning. Content is data, and any scientist can tell you that <a href="stop-guessing-and-get-the-data" title="Stop Guessing and Get the Data" rel="dct:references">if you want a certain data set</a>, you're going to have to be prepared to do whatever it takes to procure it&#x2014;be that <a href="http://www.ted.com/talks/dan_ariely_on_our_buggy_moral_code.html" title="Dan Ariely on our buggy moral code | Video on TED.com" rel="dct:references">interviewing undergrads</a> or <a href="http://public.web.cern.ch/public/" title="CERN - the European Organization for Nuclear Research" rel="dct:references">building particle accelerators</a>.</p>
    <p>The problem of acquiring content is from the same family of problems as the scavenger hunt. Each new clue is liable to send you back to where you found some other clue before it. If only you had known at the time, you could have just picked it up then. Well, tough luck: <strong class="parenthesis" title="But if I could predict the future, I wouldn't be making websites.">Making this process behave predictably requires information from the future.</strong></p>
    <figure>
      <img style="display: block; width: 500px; height: auto; margin: auto;" src="file/brownian-motion;desaturate;scale=500,500" alt=""/>
      <figcaption>
        <p>If you want a mental image of the process of content acquisition, the best one is probably <a href="http://en.wikipedia.org/wiki/Brownian_motion" title="Brownian motion &#x2014; Wikipedia" rel="dct:references">Brownian motion</a>. It's a fractal process that can be found just about anywhere from bee foraging patterns, to eye movements, to the way particles of dust float around in the air. If we can't beat Nature, perhaps we should join it.</p>
      </figcaption>
    </figure>
    <p>We may not be able to predict the future, but we can take advantage of the assets around us at any given time. Wherever your mission brings you, there will almost certainly be something worth picking up or exploring. The construction project, however, treats this as a liability. Once again, a preoccupation with staying <em>on-task</em>, otherwise known as cost accounting, will subvert any opportunity to create serendipitous value. If, however, you make content generation an ongoing, meandering process, rather than part of a discrete project, you will soon find yourself with material you neither knew you wanted, nor dreamed of asking for.</p>
    <h2>Doneness is Overrated</h2>
    <p><span>Done<em>ish</em>ness</span> is the new jam. <em>Done</em> is enormously important for the world of <em>Things</em>. <span>Done-<em>ish</em></span> is sufficient for a medium that affords instantaneous, worldwide updates to <em>federations</em> of Things. <span>Done-<em>ish</em></span> makes much more room for <a href="http://en.wikipedia.org/wiki/Wabi-sabi" title="Wabi-sabi &#x2014; Wikipedia" rel="dct:references">subtlety, complexity and nuance</a>. <span>Done-<em>ish</em></span> enables the continual improvement to value that the <a href="http://agilemanifesto.org/principles.html" title="Principles behind the Agile Manifesto" rel="dct:references">Agile people evangelize about</a>. But I go one further and submit that <em>done-ish</em> entails an entirely different kind of relationship than what a client would have with a building contractor.</p>
    <p>The contractor needs <em>done</em> to get paid. The sooner the contractor can prove <em>done</em>, the more profit they earn. There is no incentive to explore; indeed a strong disincentive to deviate from the plan. There is a hazard of legal hair-splitting: that which isn't perceptible as <em>done</em> to the client must be discharged in the fine print, or eaten by the contractor. <a href="http://en.wikipedia.org/wiki/Change_order" title="Change order &#x2014; Wikipedia" rel="dct:references">Change orders</a> may abound, and are a <span class="parenthesis" title="I hear tales that contractors have named their yachts things like &#x201C;Change Order&#x201D;">serious money-maker</span>, but the contractor's behaviour will always be biased toward getting clear of their obligation to their client.</p>
    <p>A hypothetical <em>done-ish</em> agent would only need one directive: <em>use your abilities to make awesome stuff every day and we'll see where that goes</em>. The challenge is getting the incentives right.</p>
    <p>The goal of <em>done-ish</em> is the intersection of internal consistency and understandability, which together can be understood as <em>conceptual integrity</em>. When an object (or a piece of one) is internally consistent, it means it doesn't fall apart, either physically or logically, wherever either are applicable. Internal consistency goes a long way toward understandability if you make all the parts visible and make it obvious what they're for.</p>
    <h2>Internal Consistency + Understandability = Conceptual Integrity</h2>
    <p>The idea behind the focus on internal consistency is the principle that a random component that works&#x2014;<em>today</em>&#x2014;is more valuable than a specific one that doesn't. The idea behind the focus on understandability is that the progenitor of one component or another may not be available to work on it in the future. Not only does this performance criterion facilitate the division of labour, but it also eliminates the risky and potentially contentious mutual dependency between the client and the agent.</p>
    <p>It is obviously impossible to negotiate a project fee for results that have yet to be imagined. It can likewise get very expensive for a client if their agent bills hours to follow self-directed hunches, and negotiating permission to spend on every new turn reduces to the same general problem as negotiating a project fee. Realistically, though, such an agent needs no more compensation than the range between what covers their expenses and the market demand for their attention, billable as a flat monthly fee, with no obligation to continue. The client's costs are thus capped, and their risk exposure is limited to a single installment.</p>
    <p>The final consideration is that of motivating these agents to produce their best material. The solution is simple enough: as part of their fee, they get to keep what they come up with.</p>
    <p>The intellectual property generated in the process of acquiring software and websites tends to decompose into a specific part, which is of direct strategic business interest to a client organization, and a generic part, which they certainly need to <em>access</em>, but it is not essential to <em>own</em>. The generic part <em>does</em> have strategic value to the agent, however, because it makes them better at what they do. If a client and agent can <a href="how-i-handle-intellectual-property" title="How I Handle Intellectual Property" rel="dct:references">negotiate an agreeable mix</a> between cash and intellectual property rights, this model may indeed prove to be a viable alternative to the construction project for acquiring complex new assets.</p>
    <h2 id="countdown-to-launch">Countdown to Launch</h2>
    <p>A launch is an exciting <abbr title="Public Relations">PR</abbr> event and a great excuse to throw a party. But for software and especially websites, it is important to understand that a launch is a near-complete simulacrum: Very little truly gets <em>launched</em>.</p>
    <p>When we <em>launch</em> something, like a ship, rocket or even a book, we completely lose our influence over it. It's gone&#x2014;we can't get it back. But we have our hooks firmly sunk into virtually every aspect of a networked, digital artifact. Except one small but significant detail: the relationship our users have with whatever it is we delete in order to replace with whatever it is we're launching.</p>
    <p>The biggest mistake I've witnessed so many times around launching is <em>leverage</em>&#x2014;the selling downstream of results that don't exist yet. The bet is, naturally, that the results will be ready when you need them. Often enough, despite a valiant, weeks-long, round-the-clock, all-hands work binge, <span class="parenthesis" title="probably because there's a mountain of neuroscience on why that strategy is ineffective.">they aren't</span>. But there's no reason, <span class="parenthesis" title="after all, your implementation might suck.">at least theoretically</span>, that all updates must be tied to a launch, nor is it essential that launches be leveraged.</p>
    <p>User-visible changes can be grouped into two rough categories: appearance and behaviour. I say <em>rough</em> because they are more like two facets of the same thing: the propensity for an individual to either exhibit <a href="http://en.wikipedia.org/wiki/Situation_awareness" title="Situation awareness &#x2014; Wikipedia" rel="dct:references">situation awareness</a>, or fumble around in a daze. The purpose of splitting up the phenomena is to narrow down where to go looking for them. Changing appearance is like coming home to discover that somebody has rearranged your living room; changing behaviour is like having all the one-way streets randomly inverted along your route back there.</p>
    <p>About the only appearance or behaviour that genuinely elicits a launch is when you're replacing old stuff with it. That way, the fanfare enables people to brace for any jarring changes. Non-destructive updates, by contrast, can happen any time. Even if some updates are intended to supplant others, it's often possible, if not useful, to deploy <a href="http://en.wikipedia.org/wiki/A/B_testing" title="A/B testing &#x2014; Wikipedia" rel="dct:references">more than one at a time</a>. Moreover, on a sophisticated enough system, updates to appearance and behaviour can often move independently of one another. The gist of this is that by the time you arrange the caterer and notify the investors, the new stuff you have to show them can actually be stuff that's been up and working for a while.</p>
    <aside role="note" id="EFbB91dJs9wAXBKu_2O_aJ">
      <p>Hey, this incremental update strategy seems to work for all the big socialnets. They even get extra fancy with an opt-in trial period before shunting everybody over. Why can't it work that way for everybody?</p>
    </aside>
    <h2>Okay wrap it up, I want to go to sleep</h2>
    <p>Software, and by induction, the Web, are fundamentally new media with fundamentally different properties than their predecessors. These media exhibit different <a href="lexicon/constraint" title="Constraint" rel="dct:references">constraints</a> and <a href="lexicon/affordance" title="Affordance" rel="dct:references">affordances</a> around what can be done with them, as well as how we can work with them. The construction project, conceived in antiquity and refined through to the late industrial age, imposes an upper bound on the harnessing of the complexity inherent in digital media, while at the same time succumbing to the hazards of that very same complexity. There are better methods, and the advantages will go to the people who master them.</p>
  </body>
</html>
