TripAdvisor has been growing ever since I joined almost five years ago. In that time we’ve gone from around 80 to 200 engineers, and occasionally I’ll be asked in an interview whether I’m concerned about how fast we’re growing. The thing is, I’ll reply, there are two ways to scale an engineering organization – fast, and slow. Both are valid approaches. If you need to increase your headcount by thousands of people a year, you have to accept an inevitable decline in median quality. On the other hand, if you want to maintain the quality of your engineering team, you need to accept a much slower rate of growth. There’s no way around this – you can’t have both.
Better engineers mean you can have more trust, less process, higher productivity, faster delivery. Great engineers like to work with other great engineers, which leads to lower attrition, higher esprit-de-corps, and a more attractive environment for great candidates. However, with a smaller team you have to be more focused, more picky about which projects you go after. The things you do will be great, but you simply won’t have the headcount to do all the things you want to do.
More engineers means that you can get more stuff done. Even if they aren’t individually as productive, even if you have more process and higher attrition, the sheer volume of people means that you can have more people working on more projects. Maybe they don’t launch as quickly. Maybe it takes more people per project. Maybe you need more QA, more management, more oversight. But you can attack more problems simultaneously, and ultimately get more done. And, of course, there’s the danger that the engineers who liked working in a small, great organization won’t want to work in a big, good organization, which will accelerate the trend.
At a certain point, you really don’t have a choice – you can’t do as much as Google (44k employees), Microsoft (97k), Amazon (97k), or Oracle (120k) without a massive engineering organization. Of course, all of these started out with “done and gets things smart” engineers, and hate the idea that things have changed. I can imagine that this is why General Electric (305k) uses differentiation, or why Microsoft thought that stack ranking was a good idea. When you’re at the scale of tens (or hundreds) of thousands of employees, how do you maintain the level of quality? These organizations created selection curves that attempted to cull the weak from the herd. Unfortunately, as demonstrated by Microsoft, this can easily cause optimization for the wrong criteria, with disastrous results.
At the end of the day, this is a question of culture and identity. Every successful company has to answer the question, what do you want to be when you grow up? The purpose of a great company is to get great products into the hands of its consumers, generate value for shareholders, and create some good in the world. If the size of its engineering organization is too limiting to meet its business needs, then it’s going to face some unpleasant options. Change its culture, focus more narrowly, or find other ways to achieve its goals (e.g., acquisitions). Not every company can or should be as big as Microsoft or Google. Conversely, the engineering organization exists to further the goals of the company, not the other way around.
As an engineer, I love working in a company with difficult problems and a strong engineering culture. So when I’m asked the question, I smile broadly and talk about growing fast and slow, explain how they’re both valid approaches, and say how glad I am to be in a company where the decision has been made to maintain the quality of hiring at the price of volume. Does that mean that we have more open positions than we’d like? Of course. Does it mean that we’re constantly trying to figure out new ways to find awesome candidates? Of course. But it also means that we can reduce process to the bone, break the rules when we need to (with proper oversight, of course :), and just get things done.
Shameless plug: I’m looking for great software engineers, a technical manager, and a Director of Engineering for Mobile! Positions are available in Newton, Palo Alto, LA, Ottawa, or Providence – please send your resume to dblumenthal at, well, you know. Thanks!
Disclaimer: The opinions expressed in this blog are my own, and are not necessarily endorsed by my employer.