Scaling your software becomes increasingly easier, but what about scaling your team?
A few days ago, Brian Chesky of AirBnB shared an email he wrote back in 2013 to his team called Don’t fuck up the Culture. At that point, AirBnB raised more than $120MM in funding.
It wasn’t “Don’t fuck up the servers” or “Don’t fuck up the revenues”.
One of the things I appreciate most in my profession as a Software Engineer is being able to break complexity into smaller, almost tangible parts. Figuring out these patterns of simplicity can not only produce beautiful solutions, but also introduce us to the building blocks of beautiful software.
These building blocks are now available for lease. They became a commodity. SaaS and PaaS solutions are available to cover everything from hosting, source code management, databases, backups, logging, monitoring, analytics, file serving, continuous deployment, auto-scaling etc. You name it, the *aaS has it.
In 2014, you can truly focus on your business.
Can you say the same about scaling your company? Is it radically easier today to scale a team of 5 employees to 50?
Sadly, the answer is no. Those technical blocks available for $9/month don’t cover anything related to why you decided to approach building a company in a certain way.
The question becomes then, what makes a team ready for hyper-growth?
The 5 traits of a scalable team
Building a scalable team means we can adjust our goals to meet new challenges as an execution unit, without losing our unique culture or our ability to deliver.
Just like scalable software architecture – Many things need to happen under the hood to support this growth, but the end result remains the same: a (relatively) smooth transition into a new state. Here are 5 traits I believe every team should possess in order to be ready for growth:
1. Alignment of vision
Scalable teams understand the context in which they operate and can emotionally connect to the grand vision of the company. They can define their own purpose and their role as a team inside that context, and measure themselves by it.
Misalignment of vision will lead to a dysfunctional team, one that cannot create continuous value to the company and sustain changes. When we don’t understand the problems our company is trying to solve, it’s easy to fall in-love with our immediate results. It’s easy to deflect or even point fingers when things move into a new direction, as we were never emotionally invested in it.
2. Alignment of core values
Scalable teams define and cherish core values they believe are fundamental to why they do things in a certain way. It can be regarding the way they communicate, the way they approach validating ideas and implementation, the level of assertiveness and ego they are willing to deal with, what they believe is right in terms of work/life balance, and the way they treat failures or celebrate success.
What if some people in the team don’t share the same core values? They will behave in contradiction to others’ “true self”. Over time, it would trigger a conflict which will undermine the entire team-dynamics we have been trying to build. Just imagine a team of people who believe in honest and open feedback while one of them believes it is not needed, and prefers quick decision making even if it means avoiding the team when making these decisions. Combine it with some ego, and you’ve got a ticking bomb waiting to explode.
3. Core values over individuals
Scalable teams understand that reaching an alignment with core values may lead to losing existing talent due to personal traits rather than technical ones.
Scalable teams don’t write it on walls or in their presentations, they act upon this belief.
Building a team which works well together requires long-term thinking and the patience to get there. Losing talent will always drastically hurt your short-term productivity; this is why we usually prefer to avoid reaching a decision. Every time that happens the team-dynamics will change, questioning the core values we picked as a team.
4. Self-balance
Scalable teams distribute both functional and growth responsibilities. As such, not only do people fully understand their own function in the team (e.g. front-end engineer) but also their responsibility and ownership (e.g. mentoring other engineers regarding front-end practices, conducting code-reviews in their area of expertise, enabling others to conduct code-reviews etc.)
Distributing responsibilities related to the team’s growth is crucial as it encourages autonomy and mastery for each team member: it helps technical leads to leave their comfort zone as sole executioners and challenges them to analyze, communicate and mitigate risks. It encourages making decisions based on the better good of the team. It creates healthy expectations of junior employees to practice their versatility over time, while distributing mentorship to other team members.
When people are given purpose (vision), autonomy (decision making and growth ownership) and mastery (functional ownership), they can reach decisions based on their expertise and what would fit best to the team’s values. They won’t rely on management to get decisions made.
5. Sense of accomplishment (aka “work hard, party hard!”)
Scalable teams celebrate their victories as they continue to improve and tackle obstacles. The only guaranteed outcome of completed work is generating more work. Without appreciation of effort and celebration of hard-earned victories there can be only burnout. Great teams do not allow themselves to get to that point.
Alright, but what can I do today to set the tone?
We have that implicit expectation (I’d say optimism bias) that people will know how to behave as the company grows. We delay early decisions that can shape our future culture, only to find out that delaying these decisions was actually equal to making a decision of “I don’t give a damn”.
Ron Ashkenas once wrote “You Can’t Dictate Culture — but You Can Influence It“. The first step in building a scalable team is becoming active in this process of iterating on the way you want to build your company.
We need to put the effort and influence it now, rather than waiting for it to magically emerge later.
Luckily, some great companies like Buffer, HubSpot and GitHub “open-sourced” their culture: Buffer called it “The Buffer Culture: Powered by Happiness“, HubSpot’s “Culture Code” and GitHub with their “Optimizing for happiness“.
So start by doing what engineers do best: fork these slides! Have a discussion with your team, steal some concepts and create your own version-0.1.
Then do what entrepreneurs do best: Share it with the world. Ask for feedback. Make it your own. Make it something you’ll be proud to pitch to new hires.
Finally, do what great companies do best: Iterate.
p.s. check out my latest side-project, SoftwareLeadWeekly – A free weekly email, for busy people who care about people, culture and leadership.