Thick culture begins with developing a sense of temporality: past, present, and future. I believe that if we persist without this sense, the geek trades will never be other than the dystopia we experience today.
(This conversation is a hard one. Expect a rambler of a muse, here.)
Start with plain ol’ professional programming. If you’re like most geeks, your current team is working on a project with lifetime measured in years, has been in production for a while, and was built using both tools and standards and style that are (at least) ten years old.
If you’ve less than 5 years in the trade — half of all developers fit this — that project may be the only project you’ve ever seen. If you’ve worked with only one org your whole career, that org’s geekery-mode may be the only one you’ve ever seen.
This lends itself to "the infinite here and now". The infinite here is the belief that how geekery is done in your local situation is how it’s done everywhere. The infinite now is the belief that how geekery is done in your local situation is how it always was and always will be.
Both the infinite here and the infinite now are untrue, gigantically so. Like many untrue beliefs, they provide some local ease at the cost of tremendous global ill.
(I’m going to set aside the infinite here for the moment and just consider the infinite now.)
The local ease we get from the infinite now is actually complicated as hell, but if I were to simplify it I’d offer just one expression of its usefulness: it tells you and those around you how to act — as a geek I mean — how to code, how to think, how to decompose, how to geek.
The global ill? Again, it’s actually very complicated, but to simplify it I’ll just use one expression: it creates huge (de jure and de facto, direct and indirect, targeted and collateral) impediments to change.
Let me concretize a little. In another part of the forest, some folks and I were just discussing the ubiquity of, for want of a better word, CRUD-obsession. I should prolly throw a few words at what I mean by that. CRUD-obsession is seeing every geek-problem as a matter of transparent and direct alteration of state. Create, Read, Update, and Delete.
Now, to be sure, that’s what Turing machines do: they create, read, update, and delete. At the bottom of every Von Neumann architecture machine, I can assure you, it’s doing CRUD.
So then, why would CRUD-obsession be a problem? If every app is CRUD at the bottom, shouldn’t it be CRUD all the way through? Isn’t CRUD the one ring to rule them all?
Let me counter that question with one of my own: what’s your favorite non-work activity that uses an app? Maybe you’re a gamer. Maybe you edit funny gifs. Maybe you facetime a lot, or watch videos. Maybe you like twitter, or you’re into maps, whatever.
Notice this: though every one of those apps is full of CRUD, not one of them directly exposes you to CRUD as its central worldview. On the contrary, they please you precisely by building metaphors that mitigate or hide entirely the tons of CRUD going on under the hood.
So then, clearly, though CRUD is at the bottom of every app, it’s not at the top of most of them. At some point, possibly only at the very top, CRUD is re-expressed. But if we can re-express CRUD at the very top in a non-CRUD way, well, why shouldn’t or couldn’t we re-express CRUD at levels that aren’t at the very top?
So. What does all this have to do with thick culture and with temporality?
(Good lord, can’t believe I did that whole long sequence just to get this far.)
The original vision of object-orientation was not about CRUD. It was about making "things" that knew how to do "stuff", then sending them "messages" to get them to do it.
(Some of the messages were CRUD messages, and of course, at bottom, remember, it’s all CRUD anyway. But CRUD wasn’t the heart of messaging, or meant to be.)
That got lost. And the only way to understand how it got lost is to understand that geekery was changing, is changing, and will be changing.
To telegraph a very long story: Extraordinary demand arrived for modern pro geekery just at the moment extraordinary insights — competing insights, including OO and CRUD — were graduating from short pants to long. EJB, a CRUD-centric architecture, got a leg up in the trade: it was backed by a major player, it’s easy to learn, it could make simple wizard-generated apps in just a few hours. It was a very pretty face on a very wealthy backer in an insanely over-demanded market.
CRUD-obsession doesn’t come from one cause. It comes from a lot of different causes. And nearly all of them are historical. And changing CRUD-obsession isn’t going to come from one cause. If it comes, it will come from a lot of different causes. Nearly all of them will take place over time, and will be thus, again, historical.
Forget CRUD-obsession for a minute, it’s just a case. We could talk about managing, or product development, or UX design, or programming languages, or JIRA, or any aspect of the sociotechnical enterprise we call geekery, and we’d still be talking about temporality.
What I’ve just said about the power of historical factors, the danger and damage done by the infinite now, and the importance of putting these notions front and center in any attempt at re-forming and reforming geek culture is true of hundreds of instances of current practice.
Thick culture begins where the infinite here and now starts to crumble. I think we won’t leave this place until we believe we can, and we won’t believe we can unless we see that, after all, we came here.
That was one helluva long ramble. If you followed it this far, well, thank you.
It’s cool and almost spring-like here today. I hope you have a spring-like day, too.