It seems 2017 was a rough year for lots of people. Mine easily could have been better, but I think the badness is mostly floating around in the upper atmosphere rather than settling on the ground. For now. I don't know, maybe I'd feel differently if I came from somewhere else.

Anyway, here are the most conspicuous things I did in 2017, in chronological order:

Finally presented at IA Summit

It took seven years, but I finally won a speaking slot at the Information Architecture Summit. This was fortuitous, as this year it was held a convenient ten-minute walk from my house.

The talk was about a topic I have been ruminating on for at least that long:

This presentation focused on the structural foundation of the argument and the introduction of its underlying concepts. If I were to give it again, I would boost the signal on why I got interested in this idea, which goes something like:

This kind of argument has been made before—most famously by Orwell—that those who control language control thought. Subsequent arguments went more meta: those who control the categories control thought. I'm going even more meta, and arguing that the mathematical properties of categories, themselves control thought. Further, computers—at least in theory—would take a lot of those constraints away if only we wanted them to. You are likely to see and hear more from me on this theme until I either solve the problem or I'm proven wrong.

Ran digital for an election campaign

Right after IA Summit, my dad announced that he was getting back into politics, this time by running for an MLA seat in the recent provincial election. In short order I found myself managing all the various SaaS-ware accounts and web properties, sanitizing voter contact lists, running ad campaigns, drawing lawn signs, and even briefly doing the financial books.

This was an unexpected, yet interesting diversion that took about two months end to end, six weeks of which were completely slammed. Canadian election campaigns are happily short. My dad came in a healthy second: not too bad a result considering we had very little money, very few warm bodies, and virtually no idea what we were doing.

Designed a policy for interfacing with clients

If I wasn't already inured to the following fact, my experience with the election campaign would have hammered it home: If SaaS is supposed to be the future, it cannot remain in its current form.

I am specifically referring to the consummate shotgun blast of products and services that offer gappy, fragmentary solutions to the problem, among others, of communicating and sharing materials with clients. I don't even have to enumerate all the ways that putting your business into the hands of some unaccountable third party and its arbitrarily many data-jockeying partners headquartered in god-knows-where could go wrong. All you need to do is get five or six of these services and then try managing everybody getting onto all of them, and all the right access to everything. That should give you a sense of the trajectory of the current SaaS paradigm.

All I need is a place on the Web to put some stuff and have my clients and only my clients see it. It is a place where I can be sure the links won't rot and the site won't go out of business until I do. This is easy enough to accomplish with off-the-shelf tools that have been around for decades, or otherwise a quick hack here and there with some glue. What I did, then, was devise a bill of materials and a procedure for laying them down, which can be deployed every time I have a new prospect far enough along for a formal pitch, and accrue over the length of the relationship.

Designed a service contract from scratch

I have made several attempts at designing a service contract over a number of years. Most of them were foiled early on by the lack of an appropriate counterparty, and not being sure what I wanted the document to say.

Of chief importance to me, and why I chose to write my own, was the definition of the service and all that followed from that definition. Furthermore, I wanted to define a skeleton of a business relationship that fails in ways that approach harmless. Conventional IT contracting, by contrast, is piled high with risk, which ratchets up the cost, which further ratchets up the risk, which further ratchets up the cost, and so on.

I consider the completion of this service contract to be probably my most important achievement of 2017. I am no lawyer, but I don't need to be. This contract is a prototype, though nevertheless serviceable. I can bring a lawyer in to polish it up later. You know, once I use it to earn some money.

Wrote some things in some places

2017 was dominated by writing code, and the little I wrote that wasn't code, was written for clients.

Aside from a very short introduction to a highly tentative section dedicated to technical discussion, this document is the only thing I have put on my site all year. I have, however, written a couple things in other places:

On Uses This, an interview
This is a write-in interview that asks everybody the same four questions. My participation was apparently requested by an anonymous fan. I used the space to get on a soapbox about the direction computers have taken in the last half century or so. I actually wrote my response over two years ago, promptly forgot about it, and then remembered when I got another solicitation to write elsewhere. I felt sheepishly honour-bound to get this one out the door first.
On The Human in the Machine, about Gantt charts in casinos
Here I argue that productivity loses its meaning if you can't measure it—either your progress against your own history or compared to other people, or the relationship between your input and the real-world outcomes of your work.

Finished a monster of a project

Well, finished is not actually a meaningful concept for this project ✱, but it definitely does undergo meaningful advancements in state.

The meaningful advancement in state in question began in a way familiar to some: with a database that everybody knew was valuable, but past a handful of really obvious queries, nobody really knew what was in it. The goal was to get this database into a state such that a non-technical user could explore it to glean a sense of its overall (fourteen-dimensional) shape, in order to generate meaningful questions—that is, questions that weren't already answered implicitly by the exploration process.

Whatever this thing was, it must have been some species of hydra: for every problem I solved, two new problems would appear. Looking back on it, it was actually extremely hard—if I had known I probably wouldn't have tried. The result is something I am fiercely proud of. This episode needs its own writeup, which I am rather excited to do. Separately, though, as it would easily double the length of this list.

That's it, naptime. Happy new year, everybody.