Code as an artifact of culture
What if code is an artifact of the culture that creates it?
What would your interpretation of the code suggest to you about the culture?
What would different layers of code tell you about how people lived in the past?
Culture
Code is instructions to be run by machines and interpreted by the humans that take care of it. So much code is managed by people. And groups of people get to together and create language, standards, rituals, traditions, meanings, arguments, rhetoric, procedures, regulations, obligations, agreements, memoranda of understanding, specifications, memes, stories, and values.
Cultures evolve. For instance, as a startup goes from 2 people to 5, then 5 to 11, (11 to 23, 23 to 47, and so on) – its culture morphs into something the founders often find strange and foreign.
What if the underlining code evolves along with the culture?
In the earliest days, the code may reflect a culture that is learning about the market as rapidly as possible. Perhaps months later, at the point of the first team split, the code may reflect a culture that’s valuing stability. What those who discover later call technical debt is what those in the present call progress.
What’s Changing
Ideas are changing. Consider the different flavours of agile. The variants of lean. The idea that a codebase is a garden to be cared for rather than technical debt to be endured. A lot more people are learning how to work together in different ways.
The level of abstraction itself may be changing, but it is difficult to be sure. Some engineers bemoan that development is a lot more about configuration file management than anything else. I have a hard time remembering a time when tweaking parameters wasn’t a thing.
Implications
If you’re new to a firm, perhaps try to be gentle as you’re digging through the layers of a codebase. You may see evidence of crashes, frantic efforts to fix stability issues, and periods of hard team formation.
If you’re old to a firm, perhaps try to be gentle with those adding new layers. You may have been operating in a different culture. You may not have been yourself during a crunch. You may have learned a lot and have picked up some real crafting skills over time.
If it holds that code is an artifact of the culture that creates it.