On the absence of culture
In an engineering organization, the opposite of a good culture isn’t a bad one, it’s no culture.
What do I mean by this?
If we define culture as the norms and standards that people actually follow in their day to day work — which can range from things like “how people respond to pull requests” and “how are the code linters configured” up to “which behaviors get people promoted” and “how do big architecture decisions get made” — then having no culture means having no norms, no standards, no usual way of doing things.
Elie Wiesel said, “The opposite of love is not hate, it’s indifference. The opposite of art is not ugliness, it’s indifference.” I’m going to add onto that and say that the opposite of a good culture isn’t a toxic culture, it’s an indifference to culture.
I’ve seen a lot of different sorts of engineering cultures over the years — the good, the bad, the ugly, and everything in between. And at some point, I began to realize that I’d rather work at a place with a bad culture than a place with no culture, because at least a bad culture is something that you can talk about. But a lack of culture indicates a level of indifference and apathy throughout the entire organization that will chew up and burn out anyone with a baseline level of give-a-shit about their workplace.
What does it look like to have no culture in an engineering organization?
It’s not something that’s necessarily easy to see at first. It’s hard to see what isn’t there. A “bad” culture you can see — it might look like people interrupting or shouting at each other all the time, or the “brilliant assholes” always getting promoted, things you can point to and say “that’s not great, could we maybe not”. But a lack of culture is a lack of norms. Everyone is just doing their own thing. There’s no consensus as to what makes a good code review. There’s no career matrix. There’s no templates for project proposals or design docs, there’s no standard guidance for how to run a post-mortem, there’s no mission statements or vision documents or engineering strategies or even style guides.
A lack of culture is indifference, because it means nobody cares enough to make hard decisions about what kind of organization they want to be.
A lack of culture is a lack of direction.
If you don’t have a clear vision, you don’t know where you’re trying to go or what problems you’re trying to solve
If you don’t have a sense of what behaviors you want to promote and reward, you run the risk of things like favoritism or reinforcing toxic or unhealthy behaviors
If you don’t have a clear engineering strategy, you can end up flailing around, changing stacks and languages as frequently as people post about new shinies on Hacker News
If you don’t figure out how to have hard conversations when things are going well, you’re likely to run into problems when things get difficult, particularly in the sense of decisions not getting made which makes you slower to react to problems
If you don’t know what kind of company you want to be, if you don’t know how you want to work together, how can you expect to get there?
I’ve written and spoken a lot about culture and culture change and “how to do the devops” and I’m a strong believer in trying to make things better, but while I think it is generally possible to improve an unhealthy culture, you’re unlikely to be able to fix a lack of one. Why?
Because you can’t make other people care.
If you find yourself at a company that’s more than, say, six months old, and you’re starting to realize there’s no standards, no norms, no best practices, no nothing? Run.
Very young orgs can of course get a pass because they’re brand new, they’re still figuring stuff out. But beyond that? A lack of any kind of defined culture most likely signifies a deeply ingrained allergy to things like “having meaningful discussions” and “asking hard questions” and “making tough decisions” in a way that is very difficult to change if you don’t happen to be an executive or founder. It’s the sign of an organization that will do very poorly with conflict or disagreement of any kind, choosing instead to sweep things under the rug and pretend everything is fine rather than address the elephant in the room of something isn’t working quite right. It’s an organization that will end up flailing when things start to get tough because nobody can commit to a direction or a way of working and then not only are people not on the same page, you realize that nobody is even reading the same book.
Now, to be fair, I do have to say that true indifference is not the only reason for a lack of culture. There are probably a lot of engineering leaders who in fact do care, and care very deeply, about their organizational health. After all, as we say in post-mortems when talking about engineers who might have typed the wrong command or pressed the wrong button or unplugged the wrong load-bearing Xserve, nobody comes to work trying to do a bad job. The majority of executives who find themselves leading organizations with no culture probably care a lot, and almost certainly aren’t waking up in the morning, asking themselves “how can I turn my engineering org into a dumpster fire that takes perfectly good engineers and replaces them with burned out husks of themselves” while cackling evilly and petting their evil minion cats. There could be plenty of reasons why they haven’t taken more steps towards trying to create a good culture:
They care so deeply and are so afraid of making a misstep and creating a bad culture that they’ve decided to err on the side of doing nothing
In the past, they’ve worked at places with very heavy-handed cultural mandates, didn’t like that vibe, and overcorrected
They’re so busy with their own work on the business side of things that they don’t realize what problems exist down on the metaphorical engineering floor, and for whatever reason nobody has given them feedback that things need to change
They’ve never had to be the one steering the cultural ship before, and they don’t want to scare the team by admitting they’re out of their depth so they’ve opted to say nothing and hope they figure out what to do before anyone notices that they’re struggling
And so on and so forth. But here’s the thing, well-intentioned leaders of the world: impact matters more than intent. Your intent can be the best in the world, but if the impact on the people around you is negative, that’s what actually matters. From the outside, a bad case of “oh god I care so much I don’t know what to do” decision paralysis looks an awful lot like “I can’t be bothered to make a call” indifference. And when that isn't just a one-off exception, but the rule and the pattern of your behavior? Well, you can't blame people at that point for not wanting to stick around for more — especially if you don't know how to have honest and constructive conversations about what's going on.
At some point, you have to figure out what’s holding you back from making decisions and building a culture, because otherwise, everyone else at your org who does care about those things will get burnt out and leave. And if you’ve read all this and still don’t think a lack of culture is that much of a problem? Well, that is indifference.