Building a great culture in your tech team
Ask many people to explain what a great work culture looks like, and they’ll look at you as if to say “you know… a great culture!” And then they might talk about beers on a Friday, the coffee machine, or flexitime.
I had the pleasure of helping grow a delivery team — initially a group of 16 developers, imported from a services company — to a team of 50 developers with its own strong identity, widely known for being a great place to work. Here’s what I learned about culture over that time.
What is culture, then?
A culture is a set of acceptable behaviours that is formed by every action of each individual in a group. Cultures are wildly complicated, and yet we have a complete subconscious understanding about what is acceptable and what is not in every culture we belong to.
No wonder they’re tricky to talk about: every time you pass a colleague in the hallway, or say something in a meeting, or put on headphones at your desk, you affect your team’s culture by either reinforcing or rejecting the norm.
Fortunately, there’s a trick to allow us to meaningfully talk about them.
Your actions are governed by your values. We don’t have the processing power to make a conscious decision about every single thing we do, and so our values provide a framework so we can act in a mostly automatic way.
You don’t have just one set of values, either; depending on the environment and the expectations of others, you adapt your behaviour. You might put your feet up on a table when you’re relaxing at home, but you might not put them on your workmate’s desk.
So if environment shapes values, and values drive actions, and actions make a culture, it follows that tweaks to our environment might eventually result in a cultural shift.
It’s normally a slow process
The best time to build a great culture is from day 1. We’re excellent at picking up social cues, forming patterns and sticking to them; that’s why change can be hard. In the weeks after a new recruit joins a company, they’re most susceptible to picking up cultural norms; a few years in, they may be too invested to want to change.
Having said that, the second best time to build a great culture is starting today. Be realistic about your progress, though. It’s a slow and subtle process.
A Step-by-Step Guide
Here are five steps towards purposefully building a great culture.
Step 1: Discuss where your team is at and where you want it to be
Although this discussion is often lead by management, there’s no reason why everyone who has an interest shouldn’t be in on it. However there are many people who simply aren’t interested; please don’t force them through the process.
I’d like to give you a few questions to get started:
- What are we here to do? Deliver software? Deliver business value? Change the world? Please our clients/customers? Support our local community? Have fun?
- How will we support employees in their personal lives? What if they want to take three months off to travel? What if they want to take a year off to start a family? What if they need to take a month off for their mental health? Can we pay them for that time? What if they want to cut their hours to part-time? What if they want to work some days from home? What if they want to come in late to work, and work late?
- What is our approach to deadlines? How many hours do we expect people to work at crunch time? How will we compensate them, if at all? How much will we push back against our clients’ timing expectations?
- What does diversity mean to us? How important is it for us? How do we want to be seen by the tech community in who we choose to hire?
- How much time will we give employees for their personal development, if any? What restrictions will we put on this time? What happens at crunch time; will this time be taken away?
- How much do we value code quality over delivery? Will we hold up delivery to make sure our code is good enough? What does “good enough” mean to us?
- How many hours a day do we realistically expect people to work on billable work? What are appropriate activities they can be doing on non-billable time?
If you’re after more questions to stimulate the conversation, I’ve written a list of 200 questions that can be used to analyse the culture of a tech team. You might like to think about how your organisation is now, and what you’d like it to look like in the future.
Step 2: Distill the values
As the discussion progresses, you’ll start to find some common elements that explain what it means to be a member of your team. Phrase these elements as a statement that you’d like the majority of the people in your team to be able to say about themselves.
Here are some values as an example:
- Learning and improving myself is a critical part of my job.
- I can be myself and my peers will respect me.
- Work is just one of the things I do with my life.
- I rate seniority based on how much people can teach and help others with their work.
- I support others when they fail.
- My ideas are listened to.
- I am honest and respectful when I talk with others.
You may be inclined to aim a bit high for your values. Pick a representative sample of your team and imagine those people, one by one, saying the values out aloud, in front a room of their peers. Can’t imagine it? You probably haven’t identified realistic values.
Make sure your values don’t conflict. For example, “Learning is a critical part of my job” and “I work as hard as I can to deliver for my clients” are incompatible; if you are working as hard as you can for your clients, you don’t have the time to learn something new.
When you find a conflict, instead of watering down both values to try to make them compatible, decide to choose one. This is hard, but you’ll find a weak value is impossible to get people to buy into.
Step 3: Hire people who are compatible with these core values
If you have a voice in hiring people, you’re in a position to influence the culture of your team. Your values are the source of the majority of your questions for the candidate when you’re trying to determine team fit.
We designed a test as part of our recruitment process that made it relatively straightforward to tell whether someone was cheating. Because one of our core values was honesty, we’d challenge people who decided to cheat to explain why they did. Screening out the people that tended towards dishonesty ultimately had a radical effect on the team we put together.
It is necessary to take care that you are not diminishing the diversity of your team by filtering based on values; whether you are concerned about diversity or not, you would be turning away otherwise ideal candidates. Your goal is to get the widest range of ideas into your teams, which means getting people with different backgrounds and experiences. Make sure your values can support that.
Step 4: Lead by example; be consistent
Sticking a list of values up on the wall or calling an all-hands meeting will probably be received poorly. I wouldn’t recommend it. People are skeptical, and rightly so: culture is what you do, not what you say.
We wanted to aim for a culture where everyone wanted to speak their mind, but noticed that the seniors often shot down ideas or were critical about pieces of legacy code in the codebase written by people who had since left. And I realised I was one of the worst offenders.
Our strategy was three-fold. First, the dev managers stopped doing it. “Legacy code got us to where we are today” became our mantra. We came up with the phrase “code shaming” and started talking about it. Then we gently nudged people, in private and at an appropriate time, if they engaged in a bit of code shaming, letting them know why we were trying to reduce it and asking for their help.
I was surprised. In six months, with very little work, that part of our culture had been virtually wiped out. And our junior developers started speaking up.
If you want to encourage a culture where people work 40 hours a week, you better make sure that management does too. If you want to encourage putting time aside for learning, it won’t be taken seriously unless everyone sees management doing it consistently.
Model the culture you want and people will follow, most of the time without even realising they are.
Step 5: Review frequently
Culture is not static. It is forever changing as people join and leave your teams. As your organisation matures, your values will also shift, and your culture will need to come along for the ride.
If you frequently review where you’re at and where you want to be, and are continuously making tweaks, it’s less likely that you’ll look up one day and realise what used to work is now broken. Building a healthy culture isn’t a project, it’s an ongoing part of running a well-functioning team.
Having said that, be gentle. Change takes a lot of energy, and most of us like the certainty that we know what tomorrow is going to look like. Especially if the culture has been the same for years, there will be friction as you start to move. Small changes spread over a long period are more likely to be effective.