<?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">Distilled Capability</title>
    <base href="https://doriantaylor.com/distilled-capability"/>
    <link href="document-stats#E6p8jBnywJJUxqx5MPeTlI" 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="Distilled Capability"/>
    <link href="person/dorian-taylor#me" rel="dct:creator" title="Dorian Taylor"/>
    <link href="file/maldon-salt" rel="dct:hasPart foaf:depiction"/>
    <link href="//vocab.methodandstructure.com/ibis" rel="dct:references"/>
    <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="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="./" href="f07f5044-01bc-472d-9079-9b07771b731c" 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="This is a meditation on essential concepts like capability, invention, and technology, and how the promise of software&#x2014;whether or not that promise is delivered upon&#x2014;is pure capability, and very little besides." name="description" property="dct:abstract"/>
    <meta content="2024-11-01T03:20:05.488206+00:00" datatype="xsd:dateTime" property="dct:created"/>
    <meta content="2024-11-01T12:51:37+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="Distilled Capability" name="twitter:title"/>
    <meta content="This is a meditation on essential concepts like capability, invention, and technology, and how the promise of software&#x2014;whether or not that promise is delivered upon&#x2014;is pure capability, and very little besides." name="twitter:description"/>
    <meta content="https://doriantaylor.com/file/maldon-salt" name="twitter:image"/>
    <object>
      <nav>
        <ul>
          <li>
            <a href="document-stats#E6p8jBnywJJUxqx5MPeTlI" rev="ci:document" typeof="qb:Observation">
              <span>urn:uuid:ea9f2306-7cb0-4249-8531-ab1e4c3de4e5</span>
            </a>
          </li>
        </ul>
      </nav>
    </object>
  </head>
  <body about="" id="EYJ6dwHsmqma9PNwxRmzHI" typeof="bibo:Article">
    <p>It has bothered me for <em>years</em> that promotional copy for software, as long as it has existed, has overwhelmingly been fixated on <em>features</em>. It's something I have given a lot of thought to. A feature at once reflects a <em>capability</em> on the part of the <em>user</em>, as it represents&#x2014;an unfortunately very <em>flexible</em>&#x2014;unit of <em>work</em> on the part of the <em>developer</em>. In this sense, features are intra-organizational underpants talk. In other words, <a href="https://en.wikipedia.org/wiki/Conway%27s_law">you're showing your ass</a> to the customer when you talk about them.</p>
    <aside role="note">
      <p>Even Apple, who has all the money in the world, still advertises their products in terms of features. It's not just <q>now you can do <var>X</var>!</q>, but <q>now with 100 new features!</q> with the implication that you can now do a hundred new things. What new things? Who cares! But you can now do a hundred of them.</p>
    </aside>
    <p>A <em>feature</em> in software is the mirror image of a <em>capability</em> on the part of the user. The thing about capabilities is that they are <em>binary</em>: you can either do the thing, or you <em>can't</em>. My beef with features as an organizing principle is that given that you can achieve an outcome at <em>all</em>, feature-ese is silent on the extent of how excruciating and onerous the experience of achieving the outcome <em>is</em>&#x2014;<em>or</em> how lobotomized and broken is the feature itself. This spawned my clever little <a href="https://en.wikipedia.org/wiki/Antimetabole">antimetabole</a>: <strong>You can define features in terms of behaviour, but you can't define behaviour in terms of features.</strong></p>
    <figure>
      <div class="iframe">
	<iframe src="https://www.youtube.com/embed/OJQpD7FtVLg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="allowfullscreen"/>
      </div>
      <figcaption>
	<p>Or, at least, it sounds really silly. Like on the order of <q>has the feature of exhibiting the behaviour of&#x2026;</q> Amusingly I got this one super important point backwards in this video. But then, I go from zero to shipped with these videos in under an hour, so, caveat watch-or.</p>
      </figcaption>
    </figure>
    <p>So one question I asked myself was <q>is software, or indeed any invention, always going to be inextricably wedded to <em>capability</em>?</q> I'm pretty confident the answer to that is <em>yes</em>. <q>Now you can get <code>$OUTCOME</code> you couldn't do before, with our product</q>&#x2014;that kind of thing. Why I entertain questions with seemingly obvious answers is to ask other questions, like&#x2026;</p>
    <section>
      <h2>What is Capability, <em>Really</em>?</h2>
      <p>The thing about the binary of <q>can you get <code>$OUTCOME</code> or not?</q> is that it <em>also</em> splits into two. This is visible when the answer is <em>no</em>: <strong>impossible in principle</strong>, versus <strong>just really expensive</strong>. I'm partial to the thought experiment that involves going back in time (impossible in principle, as far as we know) and giving an Egyptian pharaoh the plans and all supplementary information needed to build a Model T Ford. He could build one, sure, but it would cost him everything, and he probably wouldn't live long enough to see the thing bench-tested, let alone get a chance to drive it. Indeed, it could very well be a multigenerational endeavour&#x2014;make the pyramids look trivial by comparison. Point being, we know Model T Fords are possible in principle, because we have those and much more sophisticated vehicles besides, but in ancient Egypt it would have taken a quixotic diversion of resources to build even <em>one</em> of them. This of course is because it's not just the <em>car</em>, but all the subsidiary infrastructure that goes into creating all of its inputs, and their inputs, and so on.</p>
      <p>The baseline, then, is that over a long enough horizon, anybody is capable of anything, as long as it is possible in principle. This entails that we contemplate a concept of <q>effective capability</q> which we can articulate like, you can achieve a certain outcome within a reasonable envelope of resources (time, money, people, whatever). We can moreover use that for the default definition, because the other one is silly. The distinction is important, though, because compressing the economic implications of a capability from <q>silly</q> to <q>affordable</q> is what <em>inventing things</em> is all about.</p>
      <aside role="note">
	<p>Inventing things also covers a liminal <em>third</em> category: <strong><em>not</em> impossible in principle, but nobody has pulled it off yet</strong>. There are furthermore certain outcomes that are only impossible in principle because the principles <em>themselves</em> have yet to be invented.</p>
	<p>I also actually count <em>two</em> notable step changes in the economic compression of a given capability: silly to affordable, and affordable to too-cheap-to-meter. This is distinct from the smoother, more gradual compression that appears to happen as a side effect of other stepwise compressions happening elsewhere. Also, of all the dimensions in the envelope of resources it takes to execute a capability, the most salient one is probably <em>time</em>.</p>
      </aside>
    </section>
    <section>
      <h2>Invention as Crystal Formation</h2>
      <p>Inventions crystallize sets of capabilities one by one and tend to accumulate, but they don't all accumulate on top of each other in the same place. In fact, crystal growth really isn't a half-bad analogy for the process of extending humanity's capability repertoire: a bit of precipitate crystallizes over here, another bit over there, and then a third spans the first two. An orderly structure assembles itself over time from a structureless slurry. We call this accumulation of crystallized capability <em>technology</em>.</p>
      <figure>
	<a href="https://www.flickr.com/photos/pahudson/14412872809/"><img src="file/maldon-salt" alt="Maldon salt"/></a>
	<figcaption>
	  <p>This isn't an endorsement for Maldon salt, but it's not <em>not</em> an endorsement for Maldon salt.</p>
	</figcaption>
      </figure>
      <p>Thousands of years of economic and technological development (which I am inclined to argue are <em>almost</em> the same thing) have accreted between the pyramids and the Model T, and has swelled even more since then. Bigger crystal means bigger surface area, which means faster-growing crystal. To depart from the analogy&#x2014;or perhaps to double down on it, I'm not sure which at the moment&#x2014;crystals grow by depositing a quasi-molecular unit row by row, layer by layer. Humanity's capability repertoire grows by laying down individual inventions, usually (but not always) on top of other inventions. While the basic units of a crystal are all functionally identical (although their respective positions may be consequential), every invention is different. So the consequences of adding each new invention to the repertoire are going to vary enormously.</p>
      <aside role="note">
	<p>The topology of humanity's <dfn>capability repertoire</dfn> (an <a href="https://en.wikipedia.org/wiki/Douglas_Engelbart">Engelbart</a> term) is governed by a mechanism called the <dfn>adjacent possible</dfn> (coined by <a href="https://en.wikipedia.org/wiki/Stuart_Kauffman">Kauffman</a> and popularized by <a href="https://en.wikipedia.org/wiki/Steven_Johnson_(author)">Johnson</a>) which can be understood like, given the current set of capabilities, what <em>new</em> capabilities can be immediately constructed from them? Should those new capabilities get figured out, they attach to their inputs in the existing repertoire, growing the whole.</p>
      </aside>
      <p>There is a <em>duality</em> to technology, moreover, insofar as the technical skill required to <em>use</em> it is rarely anything close to as intense as the expertise required to <em>replicate</em> it. This was characterized succinctly by <a href="https://en.wikipedia.org/wiki/Ursula_Franklin">Ursula Franklin</a>, <a href="https://www.cbc.ca/radio/ideas/the-1989-cbc-massey-lectures-the-real-world-of-technology-1.2946845">when she proclaimed that technology was <q>both fish and water</q></a>. Given that the basic molecular unit of technology is the <em>invention</em>, the quintessential representation of an invention is not an <em>instance</em> of a particular gadget, but rather the formula to <em>recreate</em> it.</p>
      <aside role="note">
	<p>The narrative that <q>technology moves so fast</q> can be alternatively explained by a large number of individual inventions, each of which may take as much as <em>decades</em> to develop, being coincidentally unveiled in near-parallel.</p>
      </aside>
      <p>Of course, not every invention produces a gadget. A common phrase you see in the titles of patents is <q>method and apparatus for <code>$OUTCOME</code></q>, the method and the apparatus being distinct and separate things. Sure, lots of methods that are patented are about how to make the concomitant apparatus, but it's the <em>method</em> that's important. The whole point of a patent&#x2014;<a href="https://www.etymonline.com/search?q=patent">it's in the name after all</a>, Latin for <q>lay open</q>&#x2014;is primarily to put into the public register the <em>method</em> behind a capability. Any apparatus that results is incidental. The essential bargain of the patent, moreover, is that the state grants you a 20-year monopoly over your invention in return for providing instructions, to everybody in the world, in detail, for how to go and make one for themselves.</p>
      <aside role="note">
	<p>At least, this <em>was</em> the case. Indeed, up until the late 1800s it was required in the <abbr>US</abbr> to <a href="https://en.wikipedia.org/wiki/Patent_model">create a working model of your gadget</a>, if applicable, which you had to send to the patent office where they would keep it in a museum&#x2014;which unfortunately burned down, so eventually they stopped this requirement. If you look at a patent nowadays, especially software patents, often enough it's <a href="https://patents.google.com/patent/US8246454B2/en">the faintest wisp of an idea</a>; nothing close to an exhaustive blueprint.</p>
	
      </aside>
      <p>I mention all this because software is all <em>about</em> method. It's all about <em>procedure</em>&#x2014;indeed in object-oriented programming, named procedures are literally <em>called</em> <q>methods</q>. <em>Procedures</em>, that operate over <em>representations</em> of <em>entities</em>, whether those have real physical referents out in the world or not. There is in fact very little else. All software does, and can <em>ever</em> do, is:</p>
      <ul>
	<li>take input signals from hardware,</li>
	<li>operate over them somehow, including combining signals from multiple sources,</li>
	<li>output a resulting signal back to hardware.</li>
      </ul>
      <aside role="note">
	<p>I was inclined to add a storage and retrieval loop in there but it turns out those can be subsumed under <q>output to hardware</q> and <q>take input from hardware</q>. Inputs of course are things like keyboard, mouse, touchscreen, microphone, camera, gyroscope, <abbr>GPS</abbr>, and more exotic things; outputs can be something like a screen, speakers, printer, a motor, etc. Stuff like storage and network can be both input <em>and</em> output.</p>
      </aside>
      <p>The centre of gravity in software is, in practice, almost never in its hardware periphery (except when it is), so we're usually talking about a feedback loop&#x2014;extracting symbols and representations from signals and manipulating them, which transform into signals for action&#x2014;a sort of <strong>distillation of capability</strong>. A lot of the time (but not always directly), software is tasked to translate human <em>intent</em> into concrete <em>messages</em>, transmit those messages wherever they need to go, and then show the results of those messages and others besides; whatever effect they had. Here I go back to <a href="https://en.wikipedia.org/wiki/Herbert_A._Simon">Herbert Simon's</a> eminently quotable aphorism, <q>solving a problem simply means representing it so as to make the solution transparent</q>. Software is just <em>that</em>, with most&#x2014;if not <em>all</em>&#x2014;of the hard work of physical implementation <em>subtracted</em>.</p>
      
</section>
<section>
  <h2>Of Chindogu and Chocolate Chip Cookies</h2>
  <p>Curiously, the word that gets batted around in the discourse is <em>not</em> invention, but rather <em>innovation</em>. Invention requires actually coming up with a way to <em>do</em> something; all innovation requires is a change in framing. That said, you can invent something useless, <em>and</em> you can invent something by accident, whereas an innovation is always deliberate, and in service of solving some identifiable problem.</p>
  <aside role="note">
    <p>One of my favourite books when I was a kid was <a href="https://www.amazon.com/dp/0894800760">Steven Caney's Invention Book</a>, wherein I learned that chocolate chip cookies were originally an accident (the progenitor assumed they would melt into the dough). Other notable accidental inventions include penicillin, and one of the first artificial dyes.</p>
    <p>The canonical account of a non-methodological innovation is Drucker's, of selling freezers to Arctic communities: turns out the insulation works in both directions, and keeps food from getting too <em>cold</em>. If you want contemporary examples, <a href="https://youtu.be/iueVZJVEmEs">Rory Sutherland</a> is full of them.</p>
  </aside>
  <p>Another way to say this is while innovation leads with a <em>problem</em>, invention leads with a <em>method</em>. An invention might solve many problems, or it could solve zero. The word for an invention that either doesn't solve a problem, or solves a problem not worth solving, is <a href="https://en.wikipedia.org/wiki/Chind%C5%8Dgu">chindogu</a>. Software often looks like chindogu to onlookers, it being pure distilled method, very often with obscure and/or highly-specific use cases, that is at best inscrutable to the uninitiated, if not outright invisible. As with any invention, you have to attempt to reconcile the method with an actual problem that ordinary people experience, although brace yourself for the possibility that there might not be one.</p>
  <p>I had always felt a little bit like this about <a href="https://intertwingler.net/">Intertwingler</a>, but in the past few weeks I've managed to acknowledge that no normal person&#x2014;nor the median programmer for that matter&#x2014;is ever going to give a shit about it. To reconcile Intertwingler with <q>the real world</q> it helps to remind myself why I made it. The answer is a laundry list of things that pissed me off about the Web, about conventions around how it's made, that made it take <em>way</em> too much effort to make the kinds of things I wanted to make, such as <a href="https://youtu.be/L_vuEef6qQY">the <abbr>IBIS</abbr> tool</a>. I made Intertwingler so I could make things like <em>that</em>.</p>
  <aside role="note">
    <details>
      <summary>An incomplete subset of said laundry list:</summary>
      <ul>
	<li>
	  <abbr>URLs</abbr> should never break. The only way you should ever see a <code>404</code> error is for a <abbr>URL</abbr> that never pointed to anything in the first place.
	</li>
	<li>Links should be first-class citizens.</li>
	<li>Links should be <em>typed</em>, as in it should be possible to determine programmatically what a link <em>means</em>.</li>
	<li>Links should be <em>bidirectional</em>, meaning it should be possible to see all the other <abbr>URLs</abbr> that link to a <abbr>URL</abbr> (and their types), in addition to everything linked out <em>from</em> it.</li>
	<li>The website should be organized in terms of <dfn>information resources</dfn> rather than <em>pages</em>.</li>
	<li>Every resource should be directly addressable by <abbr>URL</abbr>. If it isn't addressable, it isn't a resource.</li>
	<li>Representations of resources&#x2014;that is, the literal byte sequences&#x2014;must be complete and syntactically valid.</li>
	<li>Pages, interfaces, etc., are composed from resources (whether by the browser or by some proxy mechanism) at the network level.</li>
	<li>Opaque, file-like resources, including media assets, are stored in a canonical form (using content-addressable storage) and then transformed into other formats or derivative resources (e.g., crop, resize an image).</li>
	<li><q>Transparent</q> resources, i.e., those that reduce to structured data objects without losing any information, are canonically represented in <abbr>RDF</abbr> (Resource Description Framework), although they may also be <q>downgraded</q> to other representations where necessary.</li>
	<li>There should not be a separate <abbr>API</abbr>; the website should be its <em>own</em> <abbr>API</abbr>, via <dfn>content negotiation</dfn>.</li>
	<li>There should be an <em>extremely</em> well-defined class of development target for extending the functionality of the website.</li>
	<li>The website should be able to seamlessly integrate resources written in different programming languages, frameworks, etc., as long as they comply with a (<abbr>TBD</abbr>) protocol.</li>
	<li>The website should be <q>proxy-literate</q>, so that resources can be distributed across systems according to e.g., geographic location, load capacity, or sensitivity of data.</li>
	<li>Computations that generate or transform representations of resources should only be run when there is a change to the information.</li>
	<li>Hierarchy on the Web is a fiction, so we treat it like one.</li>
      </ul>
    </details>
  </aside>
</section>
<section>
  <h2>There Is Always a Gap</h2>
  <p><a href="for-the-umarell">Like I wrote elsewhere</a>, the purpose of this planning tool is to <em>reify</em> the intellectual work of collaborative problem-solving&#x2014;turning each consideration into something visible, tangible, countable, shareable. I can't <em>do</em> that if I'm bogged down by the minutiae of <q>building a Web app</q>. That's why it sat mostly untouched for over a decade: adding anything new to it was an effort <em>way</em> out of proportion to the effort it took to set up initially. Plus, the whole thing was written in a dead-end language, and would eventually have to be rewritten anyway&#x2014;from scratch.</p>
  <aside role="note">
    <p>I actually didn't initially write the <abbr>IBIS</abbr> tool for any reason other than to test some other technical thing&#x2014;it only proved itself useful once I had made it. I <em>did</em>, however, write <a href="https://vocab.methodandstructure.com/ibis#">the <abbr>IBIS</abbr> <em>vocabulary</em></a> upon which the tool is based, because it was clear to me that the reason why other such tools are so niche as to be an endangered species is that they are too <em>hermetic</em>. By this I mean:</p>
    <ul>
      <li>everybody involved has to have an account on some platform,</li>
      <li>attachments (e.g. for exemplars, documentary evidence) mean yet another place for files to go and die,</li>
      <li>there's a ton of manual data entry involved,</li>
      <li>much of which is hand-transcribed or cut and pasted from elsewhere,</li>
      <li>meaning yet another place to keep details updated,</li>
      <li>this data, and moreover any data created within the tool, is not readily reusable&#x2014;can't be extracted or transformed and used elsewhere,</li>
      <li>there's no way to point directly at an entity in the space, no way to direct people straight to it,</li>
      <li>you can't just extend it however you like in arbitrary ways,</li>
      <li>and so on&#x2026;</li>
    </ul>
    <p>So the idea was to begin with the <em>data semantics</em> and imagine a tool that was <em>permeable</em>&#x2014;that could just be a thin skin around finely-addressable data which was always available in its purest, most highly-structured form. Any data that wasn't amenable to bulk-loading could be entered as quickly as a tweet. It could nestle between and piggyback off existing infrastructure, that could even be spread across multiple servers and organizations. You know, like a regular-ass website. I figured I would make such a tool someday, and that someday turned out to be almost exactly 11 years ago. Sort of.</p>
  </aside>
  <p>When I say <q>things like that</q>, I mean we're still very much wedded to <em>documents</em> as the basic unit for storing and exchanging knowledge. It is my opinion that documents actually suck for this. By <em>documents</em> I mean, like this essay, any discrete, bounded, information-bearing artifact that has a linear path from start to finish. So a slide deck, a movie, and a podcast are all documents: great for telling stories and okay for making arguments, but absolute hot garbage for anything that resembles a <em>fact</em>.</p>
  <aside role="note">
    <p>Internally I use the term <dfn>structured data object</dfn>, or sometimes <dfn>transparent resource</dfn> when I want to highlight the fact that you can <q>see into</q> it, but we're really just talking about a set of formal statements&#x2014;as in directly manipulable by computer&#x2014;about some unambiguously identifiable (by <abbr>URL</abbr>) entity. I am also saying fact-<em>like</em> because I am eliding the distinction between genuine facts (which are events that happened in the past and are thus immutable) and states of affairs (which change when superseding facts occur). With the exception of perhaps a timestamp (the fact needs one for sure and it couldn't the state to have one too), these objects look the same to a computer.</p>
  </aside>
  <p>Anybody who relies on documents for managing fact-like objects knows that they are a pain in the ass, especially if the documents aren't purpose-built for it, like a dictionary or manual. Documents are big, clunky, composite artifacts with poor internal addressing, that clutter up the scene with multiple redundant copies that are continually going out of date. Digital documents are a <em>little</em> better, given that you can search within them&#x2014;although not as easy with pictures, sound or video&#x2014;and <em>networked</em> digital documents accessible by <abbr>URL</abbr> are (a little) better still, but <em>better</em> doesn't necessarily amount to <em>good</em>.</p>
  <p>Software, like any invention, will always exhibit a <em>gap</em> between what the artifact actually <em>does</em>&#x2014;how it <em>behaves</em>&#x2014;and the social (cultural, political, economic) outcomes it affords. In my experience, you <em>cannot</em> expect people to infer social outcomes from technical capabilities, unless they are <em>extremely</em> well-versed in the tech (and even still). You <em>have</em> to traverse from the outside in.</p>
  <p>So the grandiose, outside-in, social/cultural/political/economic framing that has led me on this crusade for so many years, is that we rely on information to make decisions and direct our actions, and in a setting where outcomes <em>matter</em>&#x2014;professional or otherwise&#x2014;rapid access to accurate information is critical. So we have the dual problem of the information <em>itself</em> being accurate and up to date, as well as that information being <em>presented</em> in a way that doesn't inhibit its <em>absorption</em>. There is a <em>third</em> problem, moreover, that information tends to get presented in a way that is <em>cut off</em> from the information it is <em>related</em> to, which hinders a more holistic understanding. I can articulate the problem like this:</p>
  <ul>
    <li>If it costs too much effort to <em>find</em> a fact (including having to read past too much fluff), you won't do it,</li>
    <li>even if you <em>can</em> find the fact (or I should say, a <em>claim</em>) in time, you often can't <em>trust</em> it,</li>
    <li>if you decide to trust it anyway, and it's <em>wrong</em>, that's on <em>you</em>,</li>
    <li>as is making a decision <em>without</em> that information&#x2014;because you judged it not worth getting&#x2014;that turns out to be a mistake.</li>
  </ul>
  <aside role="note">
    <p>This is far from an alien experience. One way it manifests is the 3,000 words of vacuous narrative that is the custom on every recipe on the internet that you have to scroll through before you get to the actual content. I even saw a remark cruise by the other day by some guy saying how <a href="https://bsky.app/profile/singingpigs.online/post/3l63woonobj2l">his wife searched Google for United Airlines' customer service number</a> and in Google's <abbr>AI</abbr> summary at the top of the page, got served up a scammer's phone number instead. Very often you need empirical data (in this case, the phone number) to get something done, and there are consequences (scammers) if that data is wrong.</p>
  </aside>
  <p>The value of having good, timely information I have often found hard to communicate, because people want concrete examples, and if you give them one, and the actual <em>content</em> of that example doesn't line up perfectly with something they already value, they don't get it. But rather than try to anticipate what somebody values so you can concoct an example on the fly that <em>might</em> resonate with them, you can ask <q>how different would your life be today if you could have prevented a significant portion of the wrong turns and bad bets you've ever made?</q> Because that's what we're talking about:</p>
  <ul>
    <li>How much more effective would you be if you could always get all the information you needed on time, and it was always accurate?</li>
    <li>How much more effective would you be if you didn't have to pore over document catalogues or slog through worthless prose?</li>
    <li>How much more effective would you be if you could instantly verify a claim as true, false, or unknowable?</li>
    <li>How much more effective would you be if you could traipse through the neighbourhood of a situation at your leisure, without investing in a massive academic effort, to understand it better?</li>
  </ul>
  <p><em>Now</em>: over 30 years ago appeared an invention that built upon another 30 (or 50, or 90, depending on how you count) years of theory and practice, that has a heap of desirable characteristics for making the information environment a lot better, so you spend <em>less time</em> getting the information you need to make the <em>right moves</em> instead of the wrong ones. At the same time, it suffers from an <em>inertia</em> of how things had been done in the previous regime. I speak of course about the World-Wide Web&#x2014;still very much calibrated toward <em>pages</em> in disjoint <em>hierarchies</em>, guarded by individual <em>authorities</em>. The page is in the chapter, which is in the book, which is on the shelf, which is at the library. Paper-era thinking.</p>
  <p>The kind of information we need to understand situations and make good decisions takes the form of facts, concepts, states of affairs, representative entities, models, and system dynamics. The documents, books, shelves, and libraries that contain them are incidental. We also need to see the <em>connections</em> between these objects, as well as what <em>kinds</em> of connections they are&#x2014;a capability paper-era thinking barely supports at all. This is possible to achieve with the Web, but it's a <em>lot</em> of overhead, because it rows in a different direction from what is now decades of accumulated tooling and infrastructure. The point of <a href="https://intertwingler.net/">Intertwingler</a> is to act as a <em>plug</em> or <em>shim</em> that eliminates that overhead.</p>
</section>
<section>
  <h2>Meeting People Where They Are</h2>
  <aside role="note">
    <p>I remember about eight years ago, being on a plane from <abbr>SFO</abbr> to Santa Barbara, and due to fog (apparently common but I had actually never experienced flying into <abbr>SBA</abbr>) getting diverted to Bakersfield. The options presented were hope the fog lifts with a high chance of sleeping in the Bakersfield airport, or driving the rest of the way. My mom, brother, and I managed to bargain our way into the last <abbr>SUV</abbr> on the rental lot, with three other randoms. They were a lawyer, a judge, and another retired professional turned organic farmer. To amuse myself on the three-hour drive from Bakersfield to Santa Barbara, I looked up the tail number of the plane to see if it beat us to our destination (it never did). I remember this distinctly because when I shared this information with our new traveling companions, they casually referred to the planespotting site (of which there are many, which aggregate public information) as an <q>app</q>. That is, the difference between a website and an app was a meaningless distinction to them. I suspect this is normal.</p>
  </aside>
  <p>It is perfectly ordinary for people to associate a piece of information with the proximate source they got it from. Nevertheless, the same fact can exist in different books, from different authors. Same goes for the Web or any other medium. The Web, however, has evolved as a platform for delivering <em>software</em> at <em>least</em> as much as it has as an expressive medium for organizing <em>information</em>. The problem stems from the fact that information (well, data) behaves like <em>nouns</em>, while software consists of <em>verbs</em> that <em>operate</em> over the nouns. We tend to split software into <em>operating systems</em>, which do generic things, and <em>applications</em>, which do specific ones. To make things weirder, this designation is recursive, so an <q>app</q> in one context is, or is at least analogous to, an <q>operating system</q> in another.</p>
  <p>The problem manifests with the importation of the language of <em>tools</em>. Everybody understands what a tool is, it's an artifact that extends your capability repertoire, that enables you to achieve outcomes that weren't possible without it. A tool almost always has a distinct and identifiable <em>shape</em> due to its physical affordances, and that association is how you recognize which tool is for what purpose. But it also means tools can be <em>improvised</em> or <a href="https://en.wikipedia.org/wiki/Exaptation"><em>exapted</em></a> for other purposes. What this further means is that a screwdriver, hammer, saw, and tape measure can each be developed in isolation, and don't have to take each other into account.</p>
  <p>What makes this collapse in distinction so pernicious is that the analogy is wrong: an app isn't the <em>tool</em>, it's the <em>workbench</em>, and very often the workpiece as well. In other words, instead of a coffee pot that will take any coffee, filter (optional) and hot water, an app is more like a Keurig machine. You can't separate the <em>thing</em>, from the thing that <em>gets</em> you to the thing. For apps to behave more like tools, one of two things has to happen:</p>
  <ul>
    <li>Every app in the ecosystem has to be aware of, and provide for, every other app (crazy), <em>or</em></li>
    <li>every app has to agree to adhere to a common data standard (sensible).</li>
  </ul>
  <p>Apps tend not to acknowledge each others' presence (except when they do, but they generally aren't supposed to). Leaving aside things like plugins and viruses, if apps interact at all, their interactions are mediated by the operating system (or at least something operating-system-<em>like</em>). This usually means files, although it could mean something like a database or <a href="https://en.wikipedia.org/wiki/Message-oriented_middleware">message bus</a>, and mobile operating systems have interfaces to shared resources like contacts, photos, and location. It's <em>files</em>, though&#x2014;or rather data formats&#x2014;and their close relatives, the network protocols, that are where an app can choose to be gregarious and cosmopolitan, or a miserly monopolist. Just look at the empires of companies like Microsoft, Adobe, and Autodesk, which all swelled in the 1980s due to monopolies over their proprietary file formats. Indeed, one thing the Internet, and the Web in particular really did, was encourage a kind of data cosmopolitanism, and made it gauche to hoard. At least for a while, then it became viable to just hoard all the data <em>itself</em>, instead of just the format specs. This phenomenon is known as the <dfn>platform</dfn>.</p>
  <p>In many ways, the platform is a recapitulation of the operating system&#x2014;indeed <q>platform</q> is a synonym for <q>operating system</q> in some contexts&#x2014;just one level more abstract. Just like an operating system, a platform is associated with an entity, meaning platforms are real estate; they're <em>territory</em>. Contemporary networked platforms are arguably much more powerful entities than their antecedents: not only do they physically possess all the data, they control <em>how</em> it is accessed, <em>who</em> is allowed to access it, and what conduct is permitted on the platform besides. They can introduce new capabilities and eliminate them on a whim, and just like any sovereign, they face few if any consequences for contravening their own policies.</p>
  <aside role="note">
    <p><a href="https://youtu.be/7dqNPzZUNmg">Bruce Sterling accurately, if provocatively</a>, characterized platforms as <a href="https://en.wikipedia.org/wiki/Favela">favelas</a>: a slum where you squat, with no rights, until the bulldozers come. I myself have remarked, as I'm sure have others, that a platform is just a database with a list of users. At root it's entirely unremarkable&#x2014;scale notwithstanding it's something even a novice programmer could set up. What makes a platform <em>valuable</em>, though, is the <a href="https://en.wikipedia.org/wiki/Network_effect">network effect</a> of people signing <em>up</em> to said database, and putting things <em>into</em> it.</p>
  </aside>
  <p>To interface with a platform from an app, you either have to make the app <em>within</em> the platform, or connect to it from the outside. The former is unequivocally sharecropping; the latter is merely <em>likely</em> to be sharecropping. Platforms are likewise getting stingier with their programmatic interfaces (<abbr>APIs</abbr>), and have no compunction about stealing your idea to compete with you, while throwing up obstacles if they sense you might be in a position to compete with them. This is a Faustian bargain that you can only really mitigate if your centre of gravity is far enough outside the platform that losing access to it, for whatever reason, won't completely kill you.</p>
  <aside role="note">
    <p>Platforms may boast that they use standard data formats in their interfaces, and while strictly true, the claim is kind of meaningless. The <abbr>Y2K</abbr> era was witness to the widespread adoption of standard text encoding processes like <abbr>UTF-8</abbr>, and standard data serialization formats like <abbr>XML</abbr> and <abbr>JSON</abbr>. I'm inclined argue that this is at <em>least</em> as convenient for the people <em>producing</em> data as it is for those who consume it. Why? Because rolling your own serialization format (e.g., something like <abbr>PSD</abbr> or the original <abbr>DOC</abbr>) from scratch is an <em>enormous</em> pain in the ass. Even an <abbr>XML</abbr> schema is a lot of work. Nowadays, by contrast, you can taxidermy a massive, intricate, composite data structure into a <em>JSON</em> file (or <abbr>YAML</abbr>, I guess) with a single function call. On the consuming side though, while it's a pain to reverse-engineer a proprietary binary format, the syntax isn't nearly as important as the semantics. You need some kind of Rosetta stone to tell you how to interpret it (which the platforms, to their credit, usually provide for you), which will invariably contain a number of entities which are close to ones you already <em>have</em>, but frustratingly slightly different. Then you have to write code that translates the platform's dialect to whatever one you're using.</p>
  </aside>
  <p>One reason you see so many redundant copies of the same tool-like functionality is that every platform needs its own version. A cursory glance at my phone reveals no fewer than <em>ten</em> distinct ways to chat. Why? Because the actual chatting is the easy part. The hard part is in the plumbing that manages the users and routes the messages. There <em>are</em> messaging standards, but if you haven't noticed, tech companies <em>love</em> chat as a place to shove their gimmicks, because chat is something everybody can see and use. So using a standard, where tacking on gimmicks would be hard if not impossible, would mean you'd be less competitive in the first instance. Furthermore, making chat <em>permeable</em>, so a person on one platform can address somebody on another platform, goes against the essential logic of platforms: if (outsider) Alice wants to talk to (our) Bob, she can damn well create an account.</p>
  <p>To bring this massive digression back to capability, though, I've always grated against phrases like <q>our app lets you&#x2026;</q>, or <q>our product allows users to&#x2026;</q>. I know it's (at least historically) shorthand for <q>makes it possible</q> but these days it could just as well mean <q>permits</q>. I remember thirty, or even twenty years ago, when software vendors didn't have the <em>power</em> to <q>allow</q> anything; at best they were facilitators. Now, achieving this or that outcome very often absolutely <em>is</em> a matter of permission, rather than capability. You have reached your quota, please insert a quarter to continue. No, not like that, that's against our terms of service.  We have no choice but to suspend your account.</p>
  <p>How you get back to a place, in software, where outcomes are governed primarily by capability rather than permission, is by pledging to operate 100% over open data, designed to resist being captured by platforms. One aspect of open data is that it is indifferent to whose database it lives in. What concerns me here is the perception that almost nobody cares about this.</p>
  <aside role="note">
    <p>There is a particularly memorable <a href="https://en.wikipedia.org/wiki/Peter_Drucker">Druckerism</a> on the order of <q>your role as a vendor is to <em>serve</em> the customer, not <em>reform</em> the customer</q>. It sticks in my head in one instance because companies absolutely <em>do</em> reform their customers, albeit over years or decades. But you certainly don't <em>announce</em> to the customer that you're reforming them, unless you're a personal trainer or something, and they are explicitly asking to be reformed in a very specific way. Otherwise your messaging needs to be focused exclusively on giving people things they want.</p>
    <p>Incidentally, the <a href="https://en.wikipedia.org/wiki/Henry_ford">Henry Ford</a> <q>faster horse</q> anecdote is apocryphal. Besides, never ask customers what they want, instead listen to the things they complain about.</p>
  </aside>
  <p>An <q>app</q> that <q>lets you&#x2026;</q> may be the only language people possess to articulate your offering. Don't correct them. Mind you, this doesn't mean that you have to use this language yourself. The language you <em>do</em> use, however, has to resolve to something an ordinary person understands. Most people, moreover, may not care about the political economy of platforms and the ability to resist them, but the people who <em>do</em> care, <em>really</em> care. <a href="https://www.sciencehistory.org/stories/magazine/the-real-thing-how-coke-became-kosher/">It's like how Coca-Cola is kosher</a>: Over 99% of their global customer base is indifferent to this fact, but a select few are absolutely keeping an eye out for that certification (which costs the company a pittance to obtain). So if your product has a feature that is make-or-break but only for a minority of your potential customers, by all means mention it, but you don't have to hammer on the point in your main messaging stream.</p>
  <aside role="note">
    <p>Both Mastodon and BlueSky started getting attention (among others) as alternatives to the imploding Twitter, and a salient characteristic of both is that they are designed around (two different) open protocols, rather than a singular, proprietary platform. This unavoidably changes how they work. For Mastodon, you <em>have</em> to select a <dfn>server</dfn> before you can begin, and because each server is run by human beings with their own priorities and agendas, your choice has consequences. As for BlueSky, they fielded criticism early on for having insufficient moderation infrastructure (which they have since implemented), since introducing it any earlier would have compromised the development of their underlying protocol, which by all accounts is the real product.</p>
    <p>I suppose the moral to these stories is that when you move to replace an incumbent while deliberately introducing new constraints, it's difficult to avoid running headlong into Expectations&#x2122;: for Mastodon, it was the expectation that you could maintain complete ignorance about the fact that an app on your phone is just a front-end onto a network <q>out there</q>, and for BlueSky, it was an expectation of a level of customer service that they just didn't have the resources (namely <em>time</em>) to provide. The median&#x2014;or even, ostensibly, the 99th-percentile&#x2014;user doesn't care that it's a decentralized protocol; indeed, if anything, they see this fact as getting in the way of their benefits. It's the remaining 1% who are insisting that there's a there there. Both systems have legitimate reasons for their respective designs, but that isn't an excuse in the eyes of the masses. The only thing to do in this situation, I suspect, is to take your lumps and hope you make it to the other side.</p>
  </aside>
  
</section>
<section>
  <h2>Is This A Tool? Or Is It A Map?</h2>
  <p>As a maker of software, you can be pretty confident that an ordinary person understands the equation <code>tool * computer = app</code>. That is, if you want to do something or other with a computer, then what you need is An App For That&#x2122;. They don't seem to be fussy as to whether the app (tool) is delivered as native code or via the Web. It isn't clear, moreover, that the average person makes much of a distinction anymore between <q>(web) app</q> and <q>website</q> (to the extent that they ever did); that is an empirical question that can only be settled through research.</p>
  <p>I imagine people <em>must</em> understand at some level that various popular apps call out to the network, just like they understand that their television set does not have tiny people inside. The objects on their phones branded TikTok, Instagram and Twitter are merely portholes and control surfaces to networked resources, and if Alice posts something on one of them, Bob, wherever he is (assuming he follows Alice), can see it. This much seems to be within the grasp of the general population.</p>
  <p>The thing about real, physical tools, though, is they have <em>toolness</em>. <a href="https://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign/">Tools have a part you <em>hold</em>, and they have a business end.</a> Just looking at the business end of a tool is enough to get <em>some</em> sense of what the tool is for. At the very least, you can identify that a tool <em>is</em> indeed a tool. Software <q>tools</q> have a <em>semblance</em> of toolness, but I'd argue that lots of software that claims to be a tool is actually an <em>appliance</em>. The difference is subtle: a tool extends your <em>capability</em>, while an appliance renders a <em>service</em>. A dishwasher is an appliance, not a tool, because it doesn't make you better at washing dishes; it washes the dishes <em>for</em> you. And when it starts to fail at its job, you throw it out and get a new one.</p>
  <aside role="note">
    <p>I'm fond of the aphorism <q>An appliance is something you replace. A tool is something you sharpen.</q> I'd attribute it to <a href="https://alsweigart.com/">Al Sweigart</a> but he says he got it from somewhere else that he doesn't remember.</p>
  </aside>
  <p>We think of tools as artifacts that extend our capabilities to affect our environment, but I want to draw attention to a class of <q>tools</q> that affect <em>us</em>. Consider the breadth of technology invented over thousands of years for sensing and measuring: telescopes, microscopes, radar, rulers, calipers, scales, and so on. Closely related is the family of <dfn>representational artifacts</dfn>, a decidedly inside-baseball term referring to the kinds of objects that help us <strong>understand situations</strong>. Here, the essential example is the <em>map</em>. What can we say about maps? They represent a region in space and their purpose is to help you <em>understand</em> that region in space, often including where you or other things are situated within it. The content of a map is thus prepared in advance, and you operate a map by <em>reading</em> it. A map is a certain kind of <em>model</em>, and the purpose of a model is <em>comprehension</em>.</p>
  <p>A model that includes <em>dynamics</em> can be construed as a <em>simulation</em>. Simulations can be extremely complex, hand-crafted artifacts that require deep expertise and copious resources to create, or a simulation can be a spreadsheet. While spreadsheets are used for all sorts of things, <a href="https://www.wired.com/2014/10/a-spreadsheet-way-of-knowledge/">the thing that really sold them in the late 70s and early 80s</a> was the ability to ask <q>what if&#x2026;?</q> questions of the finanical variety. You set up the context and leave a few of the elements free to twiddle around, and the spreadsheet shows you each possible future by <em>computing</em> it. For the first time in history, making a speculative map of your business is not a silly proposition, but an affordable, if not trivial one.</p>
  <p>It is noteworthy that an individual instance of a spreadsheet <em>itself</em> behaves like a map, simulation, or tool, meaning that an app like Excel is <strong>a tool for making tools</strong>. It's pretty remarkable that in the 46 years since the inception of the first spreadsheet program, there hasn't been another class of software product&#x2014;that isn't for programmers, that is&#x2014;in this category.</p>
  <aside role="note">
    <p>The tool doesn't compete with a spreadsheet app per se; although you <em>could</em> theoretically render its contents in a spreadsheet, it wouldn't do you much good to do so. The closest to direct competitors are probably <a href="https://en.wikipedia.org/wiki/Personal_knowledge_management">the <abbr>PKM</abbr> tools</a>, but even they're trying to do something different.</p>
  </aside>
  <p>When I look at the (<abbr>IBIS</abbr>) planning tool I created, it very much is on the order of a tool-making tool, or more specifically, a <em>map</em>-making tool. In contrast to the financial maps afforded by a program like Excel, this thing helps you create <em>qualitative</em> maps depicting entities of interest and the relationships between them. The <abbr>IBIS</abbr> framework in particular concerns itself with mapping out the things in the world you want to do something about, what you want to do about them, and why, and is just <em>one</em> slice of that domain.</p>
  <aside role="note">
    <p>This would make <a href="https://intertwingler.net/">Intertwingler</a>, upon which this planning tool is constructed, <strong>a tool-making-tool-making tool</strong>. Or, to paraphrase Lee Pace's character in <a href="https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(TV_series)">Halt and Catch Fire</a>: it isn't the thing, or even the thing that gets you to the thing, but the thing that gets you to the thing that gets you to the thing.</p>
  </aside>
  <p>The purpose of this sprawling odyssey has been to establish a basis for thinking and talking about the product I'm making&#x2014;<em>products</em>, rather. The obvious first step is to separate any talk of <a href="https://intertwingler.net/">Intertwingler</a> from whatever goes on top of it, like how <a href="https://rubyonrails.org/">Ruby on Rails</a> relates to <a href="https://basecamp.com/">Basecamp</a>. There <em>might</em> be some audience overlap there but I'm not going to bank on it. As for the thing I'm calling the <q>planning tool</q>, I am inclined to de-emphasize the <abbr>IBIS</abbr> component, since it really is only one aspect of a broader <strong>organizational cartography <em>kit</em></strong>.</p>
  <p><em>That</em> is the product I'm creating: a set of map-making tools. The capability it confers is analogous&#x2014;albeit qualitatively different&#x2014;to that of a spreadsheet, insofar as it makes it possible to create a <em>map</em> that represents various aspects of your business&#x2014;org chart, products, markets, competitors, technology, concepts, content, <em>whatever</em>&#x2014;and you can use that map to plan, communicate, and comprehend.</p>
  <aside role="note">
    <p>This is where the features-versus-behaviour schism becomes visible: you <em>could</em> create maps using any diagramming software or even a whiteboard or a piece of paper. The reason to use my software is because you can do more with the resulting data than just look at a picture of it. But I've written over 7,000 words about this already, so I'm going to save that for the actual promotional copy.</p>
    
  </aside>
  
  
  
  
  
  
  
</section>
</body>
</html>
