Wrong order is worse than chaos. Chaos is better than a wrong order.
This is not an anarchist slogan, I fear complexity more than anything, chaos makes me sick, but I can’t help worrying that a lot of people who share my fears, while attempting a noble breakout into order, take a wrong avenue and end up in a local maximum which has an extremely high escape velocity.
Two events inspired me to think into it. One was finishing The Southern Reach Trilogy by Jeff VanderMeer. These books are so much above anything I’ve recently read. I would be doing them injustice trying to say praise with this crude language of mine. I see no reason for anyone not to read them right now. But it was only after I watched the Spooky Science of Southern Reach a conversation with VanderMeer and his Biological Science consultant - G. Eric Schaller that I made the connection between the fictional clandestine organization and almost every large tech firm I know. The exact quote that struck me was the part about Jeff getting inspiration from his contract work at government agency and the inefficiency of its constituents’ attempts to maintain order through best practices.
Which brings me to the second inspiration - an article by Taylor Sather - Airbnb’s Three Biggest Mistakes. The author, while not a VanderMeer’s caliber, deserves praise for being the only one who publicly called out what other Airbnb engineers didn’t have courage to call. As a former insider I can confirm, the article is not far fetched. You should read it. You will learn how not to scale. What triggered me was a single phrase used in one sentence:
... now you have orgs and reorgs, promo culture, and an endless parade of "best practices" evangelists. Ultimately you have no culture.
At first. I was a bit hurt. Believe it or not I too evangelized certain best practices back at one of Airbnb’s engineering division. Specifically I tried to establish culture of pair programming and high impact refactoring. The idea was to encourage folks who felt lost by providing examples of very simple actionable coding rules along with samples from our own codebase that break the rules and ones that follow. Success was limited. It might have helped a few folks. I sadly admit the best practices proved way more effective when fed into an LLM code reviewer than when exposed to people. Thinking back, it is so obvious. I was just another figure in an endless parade. Not the first one, certainly not a last one. You can try as hard as you can, organization is not a person, you won’t change its mind no matter how right you are.
And truly, would anyone want to be a part of an organization, which culture can be steered by a set of best practices? How would that differ from the mind control a certain government exerts through a certain “little red book”? Best practices have their place. Great in tactical situations where cultural alignment is nearly absolute and where the time to acquire the underlying knowledge is limited. Think military tactical guides, wilderness survival pocket books, insurgent sabotage field manuals. Otherwise…
Otherwise what? What is really so bad? What is the effect of best practices when the culture is not there? That brings us back to the Authority by Jeff Vandermeer and his brilliant “slow motion” disintegration of a government organization known as the Southern Reach. Much can be said about misbehavior of its leaders, but it is the scientists, the ICs and line managers that I want to focus our attention on. The extent to which people go on tangents like Whitby or act openly hostile like Grace with absolute certainty that as long as you follow the rules of the organization, nobody, even the top leadership can touch you. Bests practices, rules, guidelines, however you call it, if they’re not standing on strong cultural principles, will only result in progressive ignorance of all participants.
I follow code of conduct to the letter, I am safe. I don’t need to be kind.
I pass the interviewer’s “secret checklist”, I get hired. No need to be right for the job.
I follow promotion guidelines, I get promoted. I don’t need to be ready.
I stick to clean code rules, I won’t be blamed for bugs. No need to care about craft.
We don’t even need to reach into fiction for further examples. If you ever meet someone who lived in Eastern Europe during the Cold War, ask about the culture of work during those times. Ask about work at public farms in Poland, government factories in Hungary or pretty much any federal institution of the Soviet era eastern block. You will hear fascinating stories about ways to minimize personal workload, about “borrowing” from common resource pools and how there were folklore sayings mocking the inefficiency of public organizations. All that in accordance with the “best practices”. You will hear how such culture was considered noble, an act of defiance. Think then how this kind of behavior matches what you see at your current and former workplaces.
One could argue that the “best practices” approach virtually killed the Agile movement, or at least pushed it back to the underground over the last two decades, but that’s another story.
I am lucky to be working at an organization where the culture of craftsmanship has been established since the very beginning of the company and then carefully evolved, often at the cost of short term gains. I don’t have to advocate for pair programming, refactoring or TDD. It is natural to folks around me. If you are in a position to influence your workplace culture, do it through interaction, set an example by yourself. Best practices might come later. In fact, if you’re effective enough you might not need them at all.