There is nothing more challenging and exciting than experiencing hyper growth at a technology company. As users adopt a technology platform you have to rebuild the technology plane while flying it which can be a harrowing process. I found several approaches to scaling that held true across Salesforce, Twitter, and the startups I now work with on a daily basis. Every company is different but these common problems and solutions should help you on your journey.
Team Structure
The first problem most early stage companies face is how to grow and structure the team. There are common breaking points around 20 people and 150 where what you were doing ceases to function. What should your teams look like while you are simultaneously tackling growth, structure, and scale?
Small teams are the most effective teams, with an ideal size between two and ten people (with smaller being better). Large teams don’t stay in sync while small teams can organically communicate, solve problems and fill in for teammates. You can decompose large teams into autonomous small teams.
The best teams can work autonomously. Make sure that teams have all the resources needed to deliver on their goals and know the boundaries of what they should take on. It’s important to create teams that span technology horizontally to create consistency and vertically to attack user focused problems. Teams need structure so they can deliver on their mission without other teams getting in the way.
Fast Iteration
How do you keep delivering as your company scales? Early in a technology companies startup life many naturally iterate quickly. Unfortunately as companies scale communication and technology issues slow iteration speed. The best thing to focus on is to keep delivering work on a regular quick pace. Creating software is a learning process and each iteration is a chance for the team to learn.
Automation also plays a critical role in maintaining a high quality product and should be developed while you are building features. Remember, quality is free – the better software you build, the more you test it, the faster you can change it.
Retention and Culture
How do you build and maintain a unique engineering culture?
To scale an engineering culture you must have one. Discuss it. Set principles. Teach the team to easily remember and articulate key cultural tenets. Put these tenets in writing to bring on new employees and serve as a reference point. Finally, live the culture you set. Culture is a soft topic and if its not lived from the top it is just words on paper. To steal from Dan Pink I would always focus on delivering autonomy, mastery and purpose to each engineer and the engineering team as a whole and build out the cultural practices from there. For example hackweek or letting people pick what team they would work on every quarter.
For example, at both Salesforce and Twitter we stressed a culture of experimentation and learning. This helped us focus on product and technology innovation and led directly to better product features for our primary platforms. It’s important to invest in the technical infrastructure to support iteration. At Twitter we used Mesos to scale computation and built out distributed storage to make data available anywhere it was needed. Your infrastructure should allow any engineer to put an idea into production in a day.
Learn More Scaling Tips
Chris will be presenting “10 Tips to Rapidly Scale Your Startup” on Thursday evening September 24th at SingleStore headquarters in San Francisco. Visit http://www.meetup.com/memsql to register.
About Chris Fry
Chris Fry was Senior Vice President of Engineering at Twitter, Inc. and before that Senior Vice President, Development, at Salesforce. He is currently an advisor to SingleStore and other startups.