I’ve been infatuated with The Nature of Order and KonMari for a while, in part for the same reason: their emphasis on direct perception. I spend a lot of time in my head, which leads to over-theorizing and over-analyzing; a question like “does this feel more alive?” or “does this bring me joy?” can cut through that sort of analysis, helping me avoid being misled by it.

Though it’s not the only thing that was attracting me to that question from The Nature of Order: it holds out (or at least I interpreted it as holding out) insight into the hidden nature of things. And, well, I have a soft spot for mysticism. It’s also why I loved mathematics: seeing hidden patterns that help explain isolated observations at a more fundamental level.

 

I read some Plato when I was younger, and was at least somewhat enamored by the theory of Forms. Not that I ever thought about it too seriously, but it had the same type of pull: an idea that there was some sort of deeper truth out there, if only we could see it. I still don’t think about Platonism too seriously, but these days, I think of Platonism as actively dangerous. (And I think of it as useless, for that matter, but that’s a separate discussion.)

The main reason why I think of it as dangerous is that, to the extent that many objects can be seen as imperfect images of a single pure Form, that supports active harm. I honestly can’t remember the details well enough to know if Plato supported the concept of a single Form of a human, but if so, the idea that there’s an ideal conceptual human that all actual humans could be compared against and found wanting to the extent that they match that Form is a horrible one. Even if Plato didn’t think that example of a Form would be valid, Wikipedia does assure me that there’s a single Form of the Good, which is almost as scary.

 

Both Alexander and Kondo avoid that problem (whether it’s a real problem in Plato or a perceived problem in my strawman version of Plato!), and do so in different ways. Alexander is constantly asking you to think about local situations: he’s constantly asking where the life is in specific situations, and what choices would further enhance that life or detract from it. So, in the context of building, the nature of its life might be affected by the landscape (the contours of the land, the trees that grow nearby, how sunlight hits the building site); it might be affected by surrounding buildings, and by the spaces between surrounding buildings; it might be affected by the people who will be using the new building, their needs, desires, and visions; and decisions at a later stage in building construction might be affected by decisions during an earlier stage. Alexander does have general rules for how life manifests itself and how you can evolve a context to increase its life, but the details of how that play out are extremely situational.

Kondo, in contrast, goes all-in on one specific aspect of non-universality: she asks what it means to you for something to bring joy. Again, she has some general principles (throwing away a whole bunch of stuff, recommendations for how to organize what remains), but her fundamental question is an extremely personal and individual one. So Alexander wants you to take everything into account, while Kondo wants you to take one person’s feelings into account; but neither of them wants you to focus on some sort of abstract representation of how things should be.

 

I read a handful of books on Shinto a few years back; and Alexander was part of the reason why. Because, if you take seriously the idea that it makes sense to talk about whether objects, buildings, and so forth are more or less alive, then that raises the question of whether or not it makes sense to think that there might be spirits of some sort in a lot more places than I’m used think of them as being. (Or maybe, in a lot more places than I’m culturally supported in thinking of them as being; in a lot of the spaces where I spend time, it seems a lot more socially acceptable to discount even the concept of consciousness than to, say, take the notion of a soul seriously, let alone to apply that concept to non-humans! But I digress.)

And if you’re going to ask that question, then it makes sense to try to learn a bit about situations where people have asked that question in the past; and Shinto is one such tradition that comes to mind. I can’t say that I got a whole lot out of those particular books, unfortunately, though I probably will reread one of them. In retrospect, I guess it’s not too surprising that reading books in English is probably not the best way to try to get real insight into Shinto…

 

I work professionally as a programmer. Alexander’s ideas on patterns have had some influence on programming (though not really in their full Pattern Language form); his ideas from The Nature of Order haven’t had significant influence on programming, as far as I’m aware. But it does seem to me like they should apply in some form, though the details will certainly play out differently in programming than in architecture.

I was going to say that one difference is that programming raises the possibility of writing code from a clean slate, while in architecture the site and surroundings are always there. And there’s something to that; but, when programming, your actions are always shaped by the context: the context of your tools (programming languages, hardware, etc.), the social context (potential users, your fellow programmers, etc.), and so forth.

Still, the abstract nature of programming does make it even more uncomfortable to take seriously Alexander’s notion of seeing life in objects than it is to take seriously that notion in, say, houses. I mean, from one point of view it’s not obvious why arrangements of atoms should be capable of being alive than arrangements of programming language tokens, but still: we’re used to the former and have lots of existence proofs. Though maybe the software case isn’t actually that far from the Turkish carpet case

 

I periodically see discussion about whether we like focusing on the word “craft” when discussing the creation of software. This is usually in response to the Software Craftsmanship movement; and there are obvious criticisms of that movement (starting with the second syllable of the second word), and more subtle ones. Sarah Mei in particular has thought a lot about this, here are two examples, and Jessica Kerr’s stunning Origins of Opera talk addresses the issue as well.

So, even though I’ve been drawn towards the notion of software as craft, those critiques make me realize that I should think more about what associations the term “craft” has, which of those associations I like, which I don’t, and what important aspects of software development are missing from those associations. (Maybe it’s time for AR⊗TA to reappear, to help broaden and question those associations!)

I think, ultimately, the association that I like is that craft says that details matter. And that’s important to me, and it probably says something about my temperament; though big abstract ideas matter to me as well, so who knows.

One nice thing about the Nature of Order approach (or the Pattern Language approach before it) is that it tells you to pay attention to all scales. So, yeah, the details matter, but the broad strokes matter, and the levels in between matter. And, as per The Process of Creating Life, this applies to the dynamics, not just to a static snapshot of the situation. And, to get an outcome that really takes into account the full context, you have to talk to people. A lot.

 

I’m meandering more than normal here: there’s something going on that could, I think, be important to me but that I haven’t spent enough of my life really diving into. And I suspect that there’s a pretty clear entry point for me: diving into the details of sections of code, listening to what those details are telling me and trying to get the code feel as right as possible. I don’t think that’s a general route into this concept that I’m groping at, and I think other people would have different entry points, at different scales and different interactions; hopefully I’d be somewhat aware of those scales as well, and hopefully as I got happier with the smaller scales I’d find it easier to listen to the larger scales.

Which, of course, raises the question: why am I not doing this already? And I am, a little; but not as much as I should be. Maybe that means that I should spend more time programming out of work; maybe that means I should change what I’m doing at work.

I guess it does make sense that this can be a little hard to navigate at work? If I just say “I want to understand the nature of code better”, it’s not clear why anybody’s response should be a particularly positive one. There might still be a path in there — I can phrase it as an attack on technical debt, for example — but a more obvious route would be to work this philosophy into programming that I’m doing at work for other reasons. (And, actually, maybe the problem is that I’m not doing quite enough programming these days: I’m staying an individual contributor, but individual contributions can come in lots of forms.)

Ultimately, honestly, what matters is whether or not I treat the idea seriously. If I do, nobody is going to tell me that I shouldn’t spend more time following my nose programming. And, if I don’t, this is just words.

Post Revisions:

This post has not been revised since publication.