How to make smart compromises when scaling your engineering culture
December 18th, 2018
It’s challenging to have a culture that is scaling as fast as your product. As you scale, you face the risk of losing talented team members, and a diminished connection among global offices and teams. At Asana, we have just short of 400 employees with engineers across our teams in San Francisco, New York City, Iceland, and soon to be Vancouver. Building a strong Engineering culture across the entire company can be tough, especially in a world that has gotten used to demanding work and long hours. To build a truly exceptional culture, a company’s values must be relatable and authentic to all team members, no matter where they are located.
Bella Kazwell, Web Engineering Lead, has been at Asana for 7 years now and has seen this all first-hand. She recently spoke on a panel hosted by Plato on how to build a strong Engineering culture, alongside other speakers from Salesforce, Coinbase, and Gusto. After spending time at Google as a software engineer, Bella was interested in exploring a role where she could have a direct impact on the customers for whom she was building the product. This is what she found in Asana, the ability to build a product to empower teams everywhere to thrive.
How would you describe the Engineering culture at Asana?
Pragmatic craftsmanship. We love doing the really clean designs, but we also remember that we have a business to run and smart compromises have to be made. In all of my 7 years at Asana, most things have stayed the same, like our values – striving for simplicity, fixing problems even if they are not yours, teaching with compassion. We are a company that’s rooted in our values, so it’s not a surprise that these are still felt in our day to day work. Of course other things have changed and we’ve grown bigger, gotten big customers such as Spotify, Disney, National Geographic, and NASA. So there is definitely more emphasis on this being a real product that companies rely on as being the team brain, so we have a higher expectation of reliability.
Fixing problems even if they are not yours is still one of my favorite company commitments, and this has been more challenging to uphold as we get bigger and each team has their goals that they are accountable for. But we celebrate this, and it helps that it is a value that we keep repeating and can be used as a motivation to do work you wouldn’t have otherwise!
When you hear “Engineering culture,” what does that mean to you?
There are many facets to this, but first it’s important to dive into the following questions:
- How do people interact with each other?
- What does collaboration look like?
- What expectations do we have of each other?
- How do we ensure high quality code and execution?
- How do we invest in people and their growth?
- What roles does hiring and training play in creating a strong culture?
We don’t want to create a company that is made up of all the same people; rather, we want to make sure all our values are all aligned. For example, Asana really values mentorship, which I talk about in all my conversations with candidates, so it ends up becoming a self selected group of people that are excited to mentor and be mentored.
How do you create an environment of honesty, accountability, and respect?
You lead by example. I love it when one of our more senior engineers admits that they are wrong. It shows that we are not perfect decision makers, and that’s OK. It’s also important to establish Areas of Responsibility, which are not hierarchical. This sense of accountability gives people something to feel empowered about. When goals aren’t met, you approach the conversation as a learning opportunity rather than failure. For respect, it starts with the leaders: Leaders should treat everyone on their team with respect. You go out of your way to encourage mutual feedback and you create a safe space for your team to speak their minds at any point. I always keep in mind that we’ve hired all these people to help us achieve our mission — to help humanity thrive by enabling all teams to work together effortlessly — so we want to be leveraging their strengths, and respect is a key part of that.
What is a positive way to create a “move fast” culture?
You want people to feel a sense of urgency. This mission that we are going after is important, and it’s important to get it done right. We are focused on building the highest impact features at minimum cost. Moving fast is about working efficiently and making the most your 40 hour work week: meaning your developer environment needs to be good, build times fast, and the focus should be on high priority work. It’s also important to keep finding the right balance between short term and long term investments: for example, choosing cheap solutions that don’t scale or asking people to work long hours and burning them out. You pick your balance point and then adjust as you see results. Are people grumpy, and do things break all the time? You may need to think more long-term. Are you sensing a lack of urgency from your team and the code is perfectly designed but no features have shipped? Time to do more short-term thinking.
Help us scale our Engineering team’s culture out of San Francisco, New York, Vancouver, or even remotely — check out our open roles.