Good engineering culture is a critical part of building a high-performing team. Engineering leaders will tell you that culture is key to success, but specific advice on how to build it varies wildly.
I prefer to look at culture in terms of concrete outputs. Culture is visible in the things that a team does on a regular basis, and how they interact with each other as they do them. Good habits result when team members value something, and when they push each other to get it done.
A team with good culture does things right unconsciously, and so a culture problem occurs when doing things right takes great effort. Good culture is like a strong muscle that comfortably accomplishes important things. Poor culture makes accomplishing those same things seem like “heavy lifts”.
When a muscle is weak, it needs to be exercised. At the gym, your trainer gives you specific exercises to strengthen your muscles quickly and efficiently. Similarly, adding process gives structure and clarity to guide team members toward the right path. Once the muscle is strong enough, the process can be eliminated, and the “culture muscle” can operate on its own.
Start With Values, Move to Problems
Building good culture means being clear about the team’s values. Write your values down and post them in a public place (that place may be virtual). If something isn’t written down, it is subject to change, interpretation, and plausible deniability when it falls by the wayside. Once your team is aligned on what they want to do, even if they are not doing it, you are in a great position for growth.
Every member of the team contributes to the team culture, so even though values should be championed by organizational leaders, they must also be developed from the bottom-up. Leaders must work together with their team to define values. Once values are agreed upon and documented, they can be used to motivate good culture.
When a team has a culture problem, it often manifests as something trivial, persistent, and hard to solve. When a small problem recurs on a daily basis, it can mean that the team needs to build a culture around fixing it.
On my team, I usually find that culture problems surface in postmortems and retrospectives, when an action item is hazy. These responses usually sound something like, “Next time don’t forget to do The Thing,” or, “Someone needs to spend more time on The Thing”. When a team fails to do The Thing because they do not think it is important, or they do not think it is their responsibility, you’ve stumbled upon a culture problem.
Getting from Wanting to Doing
Bottom-up systems are inherently hard to control. The best way to set direction is by repeating yourself, both in 1–1 settings and as a group. Even with diligent repetition of values, however, teams change slowly. To speed up growth and cultural improvement, a process can be added to help reinforce the outcomes that are important.
Your new process should always start from your team’s values (naturally). When your values are written down and repeated often, it’s easy for people to connect a new process with its value.
“Process” often gets a bad rap, especially among engineers. People who design autonomous systems like their work to be automated, and engineers often prefer to automate things rather than doing them by rote. Maybe “hacker” culture comes with an anti-authoritarian streak. Maybe nobody likes being told what to do, but the strong job market for engineers means they can complain more loudly.
Conversely, managers can be overzealous about process. Some managers assert that it is valuable by pointing to other fields where it is used widely. Airline pilots were able to drastically reduce failures by imposing strict checklists. Medical professionals minimize mistakes by going through clearly defined steps with each patient. These examples do not provide a good analogy for engineering, however: the cost of a mistake is lower than for a surgeon or a pilot, and excessive process eventually slows the team down. Instead, process should be thought of as a tool for small corrections, rather than as a goal in itself.
New processes often add overhead and take time away from other tasks, so make sure that you support your team by carving out time. Be responsive, and gather feedback so that you can modify processes as you go. Listen to feedback, especially from your senior engineers: their experience will act as a barometer and sanity check for your ideas. Complaints may mean that your process isn’t doing what you want, or it may even mean that your team wasn’t really aligned on values in the first place. Finally, understand that process causes friction, and help your team push through even if they are reluctant.
Let the process fall away
Once a cultural muscle is built up, your team no longer needs a process in order to “just do The Thing”. As company priorities shift and new challenges arise, strict processes become a waste of time. Make sure you have a regular review of all team meetings and processes, so that engineers have a forum to raise these issues.
Adding and removing processes to tweak team habits is a muscle in itself. Teams that are comfortable making changes get better at improving themselves, as each iteration makes the “changing culture” muscle stronger. Each improvement makes the next improvement easier, so your team can triangulate its way to greatness.