Code Creates Culture

TLDR
Software developers and engineering leadership misunderstand or under-value the leverage they have in defining and creating company culture. They do not even have to do anything apart from reflect in code the values they want in the whole company.

A Senior Function Sets the Tone

In any software company, Software development is the first function to be staffed. As other functions are created, Software Development takes on the role of the oldest function in the company, one that has been around longer than any of the others.

As a startup grows, it needs to bring in people to staff Marketing, Sales, Success, Support, etc. As new people join these functions, a process of creation of new sub-culture starts in those teams. The new people look to and also “look up” to Software Development as the “senior” function in age, to show the new folks any cultural moorings that can help new employees hit the ground running.

Dev Team Culture Shapes Co. Culture

Many of the cultural nuances, values, operating cadence, habits, etc. set by the development team, flow into those of the other functions, as a result of these early interactions. Patterns once set become hard to dislodge as the new people just want to get on with their job and shape their own culture with a flavour of their own discipline.

There is no organization where forces of entropy are not in action. Entropy being a gradual decline into disorder. In many cases, any cultural dilution at the Development team level, gets amplified in other functions. Any cultural discipline also rubs off on the other functions. But unless attention is paid to making culture stronger, entropy takes hold. Any original Software Development team culture degrades as the newer functions take that culture and run with it for their own disciplines.

This is how it plays out.

How Code Creates Culture

If code deployment cadence is slow, all other functions will be as slow or slower, as they will wait for the single source of release bottleneck to set the pace.

If bug fixes are delayed, so will customer support and success and adoption. Conversations with customers, updates to customers will be pushed out further to avoid uncomfortable questions. The functions outside Software Development will also try to delay their own goals at the risk of any conversations distracted by product quality discussions.

If Development culture treats PMs as separate and Designers as separate and not as one team, other functions will be forced to protect their own goals and turf in a similar manner. When the newer functions see hand-offs and throwing-over-the-wall behaviour, they will do the same.

If Development teams want to only do interesting problem solving for its own sake, other teams will also appear to focus on their own little kingdoms and their own siloed goals.

Code can be written for the sake of getting a feature out there fast, as opposed to readability, maintainence cost, etc. These markers signal how much the business values respect for each other and long term health of the business. It signals how much the business values going on a journey together and the value of communicating.

All this does not happen on day one but the observations start being compiled from the very first day. As new functions come on board, they  observe the incentives and culture play out. In a software company, the Product is the center and the source of everyone else’s success. What happens in the Product and how it comes about, ends up defining everyone else’s success, incentives and ultimately culture.

In this way, developers have immense power over the company and a great say in defining a culture and shaping its future. Code is culture.

Published by