They’re building a massive office building across the street from our office, and its construction has proved a source of endless distraction and fascination to me and my team. I have never really thought about the process of what it takes to create a building where there once was an abyss of space, and seeing the evolution of rivet and metallurgy and concrete into a rectangular gestalt is terrific. You catch a crane lifting a handful of beams out of the corner of your eye while you’re climbing down a stack trace, and suddenly you start thinking about the sheer logistics that makes it all possible — the right number of materials, the right timing, the universe of decisions and optimizations.
(And, of course, seeing the sheer dexterity of folks bouncing around on what will one day be the eleventh floor puts the danger of
ssh-ing into a production box into perspective.)
When I first started coming into the office they had barely laid the foundation; now, a month and change later, sitting on the eighth floor, you have to crane your neck skyward to see them do their thing. They move with calculation and celerity. The building will be finished soon; it will be impossible to remember a world without it.
This week also marked the last session of my creative writing class! Our final exercise was something of an earnest irony — we all did a rotation of exquisite corpses. Are you familiar with exquisite corpses? You’ve probably done something like them before in grade school:
It is fun and slightly frivolous. The results can be fascinating: some corpses are total off-the-rails discursions, others have a remarkable through-line. They tend to sound faintly alien. The point of the exercise is obvious: how the minimization of context is a constraint but also a certain unshackling.
The other thing that happened this week: I wrote some code. And wrote plans to write code.
My experience has informed me that software planning is an inexact science — and even that is perhaps too generous, that deployment of the word science. There are lots of jokes about estimating task sizes based on t-shirt sizes and Fibonacci numbers. There are lots of quibbles about known unknowns and unknown unknowns; there are lots of things we’ll get to when we get to them.
On the spectrum of architectural sophistication, software feels, this week and most weeks, more towards the “exquisite corpse” end of things than the “modest skyscraper” end of things. And despite that — despite the fact that most of our plans are vague “ehh, who’s to say?” gestures towards the abyss, building software is really good and really powerful! We are very bad at it, industrially speaking, and yet we’ve been able to do a lot of it very quickly.
What will software as a discipline look like in a hundred years from now? Will we be able to look at a project and know how many hours it will take to complete, with all the faith and rigor of a foreman knowing exactly how many kilograms of steel are needed for the eleventh floor at 2nd and Seneca? Will we still use story points? (God, I hope we won’t be using story points.)
I am not remotely capable of answering these questions, obviously — but I think it’s a good exercise, to recognize the adolescence of what we’re doing and how we’re doing it. On the days where I feel like a Roman census-taker — do I think email templating will be four weeks or six? how do I go about knowing how to answer that question? — it is lovely and freeing to think about a distant and glimmering future.
I hope all your plans are as accurate as is reasonably possible.