I recently watched Casey Muratori’s fascinating talk at the Better Software Conference, while I don’t have strong opinions on the architecture of CPP projects the talk struck a chord with me because it was so unusual.
In “technical” fields the latest is frequently treated as the definitive with no need to retread the past when learning or teaching. This is a mistake, as Muratori clearly demonstrates, we can get caught in conceptual dead-ends or lose track of vital innovations.
In the social sciences Muratori‘s approach in this talk might be called genelogical. This methodology traces the historical development of ideas through the original texts with particular attention to the contingent social factors that lead to the adoption or abandonment of concepts.
We need more self reflection of this kind in tech, particularly if it explicitly embraces methods from other disciplines that are already tackling these questions. There’s an odd tendency to celebrate polymath tendencies in individuals but not to systematically engage with other disciplines that are presented as “softer”.
So it’s actually quite encouraging to see a growing impulse to reevaluate some of the tech industry’s recent history with a greater level of finesse. Taking Muratori‘s intervention as an example, over in the webdev space we should be turning a critical eye to our dependency on cloud services or the division of labour as Heather Buchel does in this piece.
We definitely see some of this, but rarely with the level of sophistication of Muratori‘s talk and even less frequently with any explicit methodological strategy. Bringing in lessons from STS or wider social sciences would help massively to ground the conversation. This is going to be particularly important as we try to think through the ongoing changes, most obviously from LLMs but also new languages, resurgent p2p architectures, and new regulatory regimes. It would be all to easy to stumble into another ‘domain boundaries as code boundaries’ mistake once more. Now is a time to move deliberately and fix things.