<?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">Software's Ailing Mythology</title>
    <base href="https://doriantaylor.com/softwares-ailing-mythology"/>
    <link href="document-stats#E3vLrzHpSKGSD55Yf50LlK" 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="Software's Ailing Mythology"/>
    <link href="lexicon/#EDk9p8qaqG0m6nxmFqAETK" rel="dct:audience" title="Digital Media Insider"/>
    <link href="person/dorian-taylor#me" rel="dct:creator" title="Dorian Taylor"/>
    <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="softwares-ailing-mythology" datatype="xsd:token" property="ci:canonical-slug"/>
    <meta content="The computer is as old as the television. It's time to stop referring to it as &#x201C;technology&#x201D;." name="description" property="dct:abstract"/>
    <meta content="2015-09-26T22:29:42+00:00" datatype="xsd:dateTime" property="dct:created"/>
    <meta content="softwares-ailing-mythology" property="dct:identifier"/>
    <meta content="2015-09-26T22:29:07+00:00" datatype="xsd:dateTime" property="dct:issued"/>
    <meta content="2016-04-11T21:28:32+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" name="twitter:card"/>
    <meta content="@doriantaylor" name="twitter:site"/>
    <meta content="Software's Ailing Mythology" name="twitter:title"/>
    <meta content="The computer is as old as the television. It's time to stop referring to it as &#x201C;technology&#x201D;." name="twitter:description"/>
    <object>
      <nav>
        <ul>
          <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="document-stats#E3vLrzHpSKGSD55Yf50LlK" rev="ci:document" typeof="qb:Observation">
              <span>urn:uuid:def2ebcc-7a52-4286-a483-e7961fe742e5</span>
            </a>
          </li>
        </ul>
      </nav>
    </object>
  </head>
  <body about="" id="EdlIVyWh2APrCHIbAt5iyI" typeof="bibo:Article">
    <p>Information is the substance that we use, both as individual people, piloting our everyday lives, and as agents acting on behalf of organizations and social groups of every conceivable kind. Without accurate, timely, noise-free, and well-structured information, we can't perceive our surroundings, make good decisions, acquire new knowledge and capabilities, or plan for the future.</p>
    <p>The corporate entity, whether a company, government, institution or non-profit, is the principal mechanism by which our society concentrates resources and coordinates activity, for the ultimate purpose of perpetuating the project we know as human civilization. If we abstract the particular <em>kinds</em> of resources and activity with which any <em>particular</em> corporate entity is concerned, we can see that at root, <em>every</em> one is an information processor.</p>
    <p>Over the millennia, we humans have developed numerous tools and methods for recording, transporting, and operating over information. This has been evident in the inventions of writing and mathematics themselves, to the printing press, the postal system, the telegraph and telephone, radio and television, as well as various recording media, from clay tablets through papyrus, vellum and paper, to wax cylinders and vinyl discs, to film, to magnetic tape and optical discs. The practice of making information <em>understandable</em> has also been evident in specific <em>arrangements</em> of information, such as the map, double-entry bookkeeping, the balance sheet and income statement, the Gantt chart, the flow chart, the organization chart, as well as various filing systems and library cataloguing schemes.</p>
    <p>In the wake of the Second World War, over 70 years ago, our society became acquainted with the computer. Originally designed to calculate artillery trajectories, the computer took less than <em>ten years</em> to find its first commercial application: to support booking tickets in the budding passenger airline industry. At the time, computers were <em>astronomically</em> expensive tools that could be wielded only by the most massive corporations, institutions, and governments.</p>
    <blockquote class="note" id="EDEE3rwzx-lsNjWjZFhO9K">
      <p>Innovations in transportation are no stranger to innovations in information management: it was the American railroads, a century earlier, that invented, largely as a byproduct of just trying to do their job, our contemporary understanding of corporate finance, securities and derivatives, corporate accounting, and the modern corporation itself.</p>
    </blockquote>
    <p><em>Six decades</em> on from when the computer was first put to work in a commercial setting, we still see a divide. Despite computers becoming a million times more powerful <span class="parenthesis" title="the original SABRE airline booking system could be easily run off a smartphone, while still performing its duties as a smartphone">at a millionth the cost</span>, it is still only the mega-corporations and purpose-built technology firms that take full advantage. <em>Why</em>?</p>
    <section id="EwpYtMB6CaowIASlk-VnfL">
      <h2>Our Mythology Is Bad And It's Hurting Us</h2>
      <p>My firm belief is that this state of affairs is primarily an issue of <em>mythology</em>&#x2014;of <em>superstition</em>. There exists a cultural trope that slates computers as <em>arcane</em>. While our corporate offices have been universally run for over two decades on digital files, email, and websites, these still largely mimic the paper-based infrastructure that preceded them. The prevailing attitude among executives toward <q>technology</q>, as it's called, despite being around for <em>generations</em>, is one of cost reduction. The story goes something like <q><q>technology</q> isn't our core competency, so we outsource it to experts.</q> This is a <em>sad</em> story. It's sad because any business entity is <em>guaranteed</em> to be happily using all <em>sorts</em> of other technology that predates computers, or is indeed <em>run</em> by computers, albeit sufficiently disguising its <q>computer-ness</q>.</p>
      <p>Again, there is something <em>arcane</em> about computers which alienates them from the common understanding as an ordinary tool which can be used for any purpose to which it is suitable&#x2014;<em>except</em>, again, by large corporations or those which are firmly planted in the <q>technology</q> sector.</p>
      <p>Our society never had a problem adopting paper, vinyl records, celluloid film, the telephone, cassette tapes, VCRs, CDs, et cetera. Sure, <span class="parenthesis" title="The movie and music industries with magnetic tape, Sousa with records, and Socrates with writing">there were famous dissenters</span> against each new medium as it rolled out, but they were a minority against an inexorable tide of change. None of these media possessed the occult status which still shrouds the computer to this day.</p>
      <p>There is a paradox such that we don't seem to have much trouble using computers disguised as other things&#x2014;even though they behave much more like computers than the objects of their disguises. We're perfectly content to type into a word processor or spreadsheet, send email, take pictures with our digital cameras, record TV shows on our PVRs, play video games, and download all manner of apps to our smartphones.</p>
      <blockquote class="note" id="EkcJYpx5ZDNL7P65v9IfhI">
        <p>And then there are sprawling masses like Facebook which have no analogue, uh, analogue.</p>
      </blockquote>
      <p>Being literally <em>surrounded</em> by these computers-in-drag, I submit, blinds us to what the computer, in its natural state, is <em>for</em>. In a word, and hopefully an obvious one: <strong>computation</strong>. Computation is simply applying a <em>known</em> process to <em>known</em> information, to reveal <em>latent</em> information, that up to that point was <em>un</em>known. Computation has been around <span class="parenthesis" title="in fact &#x201C;computer&#x201D; used to be a job title">a lot longer than computers</span>; there's nothing spooky or magisterial about it. It's putting a quarter into a gumball machine and turning the crank. The only difference now is that a computer can turn a few billion cranks every second.</p>
      <p>While there are plenty of examples of <em>special</em>-purpose computation, such as a tip calculator app for your phone, I can only think of <em>one</em> example of bona fide general-purpose computation that everybody ought to be familiar with: the spreadsheet. This is a thing whose job is <em>exactly</em> to apply known processes to known information to glean new information. What's more is that <em>you</em> are responsible for getting the information <em>you</em> care about, and composing the operations that yield <em>more</em> information, which, presumably, you <em>also</em> care about.</p>
    </section>
    <section id="EGKDHVQQgWSOP2jP9rdM9I">
      <h2><q>Nobody ever got fired for buying IBM</q></h2>
      <p>When we take the attitude that computation is <q>technology</q> and therefore <a href="am-i-a-technologist" title="Am I a Technologist?" rel="dct:references">best left to the technologists</a>, we miss out on an entire <em>dimension</em> of opportunity. We have to wait for somebody to make an <q>app</q>, or more dauntingly, <span class="parenthesis" title="although now we typically use the friendlier-sounding moniker &#x201C;platform&#x201D;">a <q>system</q></span>. This attitude paints us into a corner, and we pay for it in more ways than one.</p>
      <ul>
        <li>The vendors have to <em>infer</em> what's important to us and what isn't, and that's expensive.</li>
        <li>They spend a <em>huge</em> amount on <span class="parenthesis" title="you bet UX is packaging!">packaging</span> and marketing, which, of course, we pay for.</li>
        <li>They can only solve for the general case, because volume is how they earn their money. How well they solve <em>our</em> problems&#x2014;<em>without</em> creating other ones&#x2014;is, <span class="parenthesis" title="though emphatically not to them">to us</span>, a matter of chance.</li>
        <li>They can only solve for their particular domain, which means there will be unmet needs which have to be patched together by us, the users.</li>
        <li>To palliate this situation, both apps and systems accrue piles of <em>features</em>, which cost money to create, and we pay for them whether we use them or not.</li>
        <li><q>Systems</q> have their own embedded policies which dictate how, and even <em>if</em>, certain things are to be done.</li>
        <li>There is a tendency for apps to behave like they exist in a vacuum, unaware of their environment, which means they can't behave in ways that would seem obviously useful.</li>
        <li>There is an <em>incentive</em> for systems to expand, to be incompatible with each other, and to be considerably harder to get out of than to get into.</li>
        <li>If we <em>do</em> manage to buy our way out of one system, we can't take any of it with us. We may <em>lose</em> useful functionality when we replace one system with another.</li>
        <li>Lastly, with a profusion of companies and products addressing similar but ever-so-slightly different goals, there is considerable overhead <em>just</em> in trying to pick the best one.</li>
      </ul>
      <p>Off-the-shelf software products are great for addressing specific, well-defined needs. In order to determine whether an existing product will satisfy our needs, we have to sharpen <em>each and every</em> need to a point. This is <em>exactly</em> the same process we would have to carry out if we were going to make the software from scratch. Indeed, <q>from scratch</q> is a concept which is long-dead in software, as virtually all development consists of bending, shimming, gluing together and repackaging a set of solutions to well-defined needs, in order to meet new ones.</p>
    </section>
    <section id="EoSjvOwflND3j0zXuEJSnJ">
      <h2>Construction for the Adventurous and Foolhardy</h2>
      <p>The alternative to <q>buy</q> is to <q>build</q>, which is scary, because it's risky. It takes a long time and a lot of money in the <em>best</em> of situations, is almost <em>guaranteed</em> to take longer, and therefore cost more than expected, underperform upon delivery, and has a reasonable chance of failing completely.</p>
      <p>At least, that's what we can expect when bespoke software is done the conventional way.</p>
      <p>This, I am confident, is another symptom of our failed mythology. The risk in software development is <em>completely</em> attributable to an ill-fitting metaphor for what software <em>is</em>: namely, that the goal is to acquire <em>new technology</em> and our chief concern is whether or not we <em>can</em>. This is nonsense: <strong>of course we can</strong>. <a rel="dct:references" href="https://en.wikipedia.org/wiki/C._R._Smith">C.R. Smith</a>, erstwhile president of American Airlines, knew <a rel="dct:references" href="https://en.wikipedia.org/wiki/Sabre_%28computer_system%29"><abbr title="Semi-automated Business Research Environment">SABRE</abbr></a> was possible in 1954. It wasn't a matter of <q>can we do it?</q> but <q>what do we want it to be?</q></p>
      <p>This misled obsession with technical capability permeates our culture and our contracts. Budgets get mostly devoted to technical concerns. Progress is registered only in terms of completion of <em>technically</em> functioning software, so there is a <em>huge</em> incentive to get programmers writing code as early as possible. It doesn't matter if they have to rewrite the same thing ten times. As a result, the research and design work that would <em>prevent</em> them from having to do so gets squeezed out, and piles of money get wasted.</p>
      <p>The na&#xEF;ve, but painfully common process for procuring bespoke software goes something like this:</p>
      <ol>
        <li>Some poor soul at the client organization is tasked with drafting an <abbr title="request for proposals">RFP</abbr> containing a list of requested features. This is guaranteed to be circulated and discussed endlessly in meetings and email threads and is likely to take months.</li>
        <li>Upon receipt of the <abbr title="request for proposals">RFP</abbr>, the candidate vendor matches the features to his/her inventory of existing components, makes a wild guess as to what it will cost to deliver the outliers, and then fires off a bid. This might consume an afternoon.</li>
        <li>The first round of feature bargaining commences: the bids are too high, so features get cut.</li>
        <li>The winning contract stipulates the delivery of the remaining features in a prescribed sequence of milestones. Payment is contingent on meeting those milestones.</li>
        <li>Something goes wrong; actually lots of things do.</li>
        <li>Some of the off-the-shelf components chosen to address certain requested features are determined to be unusable.</li>
        <li>Some feature or other that was initially construed to be a minor issue is discovered to be a major undertaking.</li>
        <li>With the budget blown and the vendor hurting for cash, subsequent rounds of feature bargaining take place.</li>
        <li>The vendor scrambles to make the thing look <q>done</q> so he/she can get paid and get out of the contract.</li>
        <li>In the end, the client receives a crippled product that doesn't do half the things they need, does a bunch of things they thought they needed but don't, and a few things they never wanted at all. That is, <em>if</em> the client receives a product.</li>
      </ol>
      <p>It isn't a surprise that many executives shy away from software development, and that for many more, it isn't even on the radar. A mediocre thing, that you can buy, that <q>works</q>&#x2014;at least on technical terms&#x2014;is a lot better for your professional reputation than the outcome of this aforementioned process&#x2014;even if it doesn't <em>actually</em> work in any meaningful way.</p>
      <p>The first problem with this process is the way in which it is conceived. The <em>feature</em>, we must understand, is a unit of <em>technical</em> work, either already banked by the vendor or some third party, or otherwise a future task to be undertaken by a programmer. In reality, it's several layers <em>removed</em> from the actual needs of the organization. The person writing up the <abbr title="request for proposals">RFP</abbr> may <em>indeed</em> be an expert in the needs of the organization, but is decidedly <em>not</em> an expert in <em>translating</em> those needs into technical tasks, and can therefore only speak of the project's requirements in terms of things he or she has seen before.</p>
      <p>The second problem is that vendors, by and large, are perfectly content to take a list of features from the client at face value. The second problem and a half is the arbitrary assignment of hours to the development of features not already accounted for.</p>
      <p>The third problem is the contractual stipulation of a sequence of milestones, and making payment contingent on doing specific things in a specific order. All this does is ratchet up the risk and give the vendor an incentive to create a <a rel="dct:references" href="https://en.wikipedia.org/wiki/Potemkin_village">Potemkin product</a>.</p>
      <p>In short, <a href="on-the-building-of-software-and-websites" title="On the &#x201C;Building&#x201D; of Software and Websites" rel="dct:references">software development is modeled after the construction project</a>, with a strong emphasis on structural engineering, but very little on architecture, and completely without the built-in concern for wasting expensive materials and labour, or for that matter, collapsing and killing people.</p>
      <blockquote class="note" id="EfY4V5PulZnAEiiTzXWHYI">
        <h3>A Note on Process</h3>
        <p>We practitioners have indeed long been aware of better ways to make software. Incremental development was identified as the optimal way as far back as the 1970s. This has matured into the Agile methodologies, DevOps and continuous integration, Lean UX and incremental strategies for research and testing. My argument here is that the thing standing in the way of fully realizing these methodologies is the procurement and contracting process, itself limited by the hobbled understanding of our trade by outsiders, a state of affairs for which we have been complicit, if not something we have actively abetted.</p>
      </blockquote>
    </section>
    <section id="EOcmQpFMoGCBYLzQh_nJjL">
      <h2>A New Mythology</h2>
      <p>The new mythology I propose is to consider the computer, and more specifically software, not as a <em>technology</em> with all its focus on technical <em>capability</em>, but rather as an expressive <em>medium</em>, with a focus on <em>content</em>. The accompanying narrative is that computers are <em>mature</em>, and have been for a while. Computers are affordable and they work reliably, and their properties have been well-understood for generations. The <q>can we?</q> question has long been settled. Our problem is rather that we can't stop creating garbage content.</p>
      <p>The film industry is one that understands this concept extremely well. Producers and directors don't start out by wondering whether or not the camera will work. What they <em>do</em> do, however, is spend up to <em>years</em> in development and pre-production, fine-tuning the script, generating storyboards and concept art, costumes, sets, props, special effects, et cetera, long before they even <em>produce</em> a shooting schedule, let alone shoot the film.</p>
      <p id="incantation">The <q>content</q> of software is crystallized business process. It is an extremely verbose, extremely precise <em>incantation</em>, describing <em>exactly</em> how a particular process ought to <em>behave</em>&#x2014;so precise that it can be executed by machine. There is nothing inherently technical about a business process, by and large: it's simply people doing things to achieve meaningful goals. That's something anybody can understand.</p>
      <p>A business executive doesn't have to care how the process ultimately works, just as a movie producer doesn't have to care how the camera works. The movie producer <em>understands</em>, however, that it is a <em>colossal</em> waste of money to just point the camera at some actors and start shooting. This fact was established in the early days of film production, and the industry promptly invented its own idiosyncratic administrative methods for dealing with the realities of the medium. <em>Sixty years</em> from its first major commercial undertaking, we still have yet to do the same for software.</p>
      <p>Why? Because software is still considered <q>technology</q>, rather than <em>content</em>. The way film production has become a comparatively reliable process is by starting with a skeleton&#x2014;the script&#x2014;and filling in the details, until the details are so well-defined that it becomes feasible to draw up a budget and schedule to shoot. We typically don't have to blow up cars or hire celebrities in software development, so it isn't sufficient to merely supplant the construction paradigm with the filmmaking one. It <em>is</em>, however, important to recognize that the computer is an idiosyncratic medium that needs special consideration in order to reliably produce effective results.</p>
      <p>A business executive who understands that a computer is a tool for computation, that computation is the process of generating valuable information, and that information confers competitive advantage, is all of a sudden enlightened to a whole new world of possibility. Computers and software cease to be a necessary evil&#x2014;a cost to be mitigated&#x2014;as the upside finally becomes visible. Moreover, just as the movie producer has learned to recognize storyboards and concept art as <em>progress</em>, so too can the executive with the precursor materials generated through the process of software development. This can only come to pass though, I am confident, if we reframe software as the <strong>content of a mature medium</strong>, rather than occult technological voodoo.</p>
    </section>
    <section id="EwU50q843XEil22tGtooNI">
      <h2>This is a Call to Action</h2>
      <p>The story that software is this whizz-bang substance at the bleeding edge of technology, and that we are geeky wizards who type obscure symbols into them to produce magic, albeit enticing to many, is ultimately hurting us. It hurts us as practitioners because we are not seen as credible people who exist inside reality, and are genuinely concerned with solving real-world problems. This in turn hurts society, by severely limiting the ways in which we can help.</p>
      <p>If we, as practitioners, can sever our addiction to <a href="post-geek" title="Post-Geek" rel="dct:references">the role of geeky priesthood</a>, and start telling the ordinary people around us the story that computers are normal, everyday things that have properties which are directly useful to <em>them</em>&#x2014;and not just as a vehicle for YouTube videos and Candy Crush&#x2014;then maybe we can stimulate demand for us to do things the right way. Demand, that is, that comes from a place of <em>understanding</em>, rather than superstition.</p>
      
    </section>
  </body>
</html>
