A big part of what makes a startup successful is the ability to scale. Many startups struggle with that challenge, so I’ll address some solutions here from the perspective of growing and leading a technical team.
When I started at the Berlin-based company builder Next Big Thing (NBT) over 2 years ago, I was the only professional software engineer in a company of 15 people. Our startup’s mission was ambitious: to equip successful new companies in leveraging cutting-edge high tech to solve significant problems. I was well-supported, of course, by one hardware engineer and one firmware engineer.
The three of us took on the responsibility of designing and building a smart housing gateway as the MVP for an IoT startup. After months of testing and breaking things (with work spilling over long weeknights and weekends - typical for a new startup), we delivered a successful product to the first pilot customer.
With Metr's success, I matter-of-factly asked my CTO Jasmin Skenderi - "How many engineers does it take to program one IoT light bulb?" He laughed, thinking I was joking. Then he said, "Why don't you build a team of software engineers to figure it out." And from that trite conversation we set a goal of how to grow a tech team who can build great products for IoT companies.
In this post, you'll find 6 learnings to apply as you prepare to scale up a tech team.
1. Decrease onboarding time
As new engineers join the team, ensure they are pointed in the right direction early on. Prepare a development process that is well-tested but take feedback on improving that process. For instance, align any new members on how to build new features with git. Remain open to tweaking that process so that it works smoothly and seamlessly for everyone in the team.
Similarly, prepare the right set of tools and frameworks for building the right thing. Agree on coding and collaboration standards as well as guidelines for reviewing and testing code.
2. Build trust and share goals
I see leadership as a two-way street. Good decisions are not made unilaterally but after constructive deliberations with the team. The aim is to foster interpersonal communication and provide transparency. A team with a trustworthy foundation is active and strong in the long term.
It is also important that the team knows what the goals are. One approach to goal-sharing is to provide a high-level overview of the strategy and sometimes, possible ways to reach them. This way, the team responds with several concrete proposals. I work to integrate these suggestions into a single plan which is then agreed upon.
Be transparent about how you measure success. It is not the number of lines of code someone has written. Rather, it's the feedback and metrics shared by your customer. Be clear with your team on that criteria, continue measuring that success and collecting more feedback to iterate on future successes.
3. Make your team autonomous
Small, autonomous teams work more efficiently towards goals than those who are dependent on the management to guide them at every step of the way. Spotify famously presented their "squad framework" for managing and scaling their development teams. In NBT’s engineering department, we aim for a similar structure where some team members (in software, firmware and hardware) self-organize to work on a project module - say, a new IoT product, or an internal tool that improves productivity or a reusable software module. In this case, they assign a "module lead” and set realistic expectations for product managers and other stakeholders.
Software Engineering Lead Parag Majumdar gathered with NBT's core tech team in Berlin.
4. Understand the problem domain
Let's get back to assuming we are building this fabled IoT light bulb. As a first step, create a fictional business plan or roadmap for it. Sketch out a technical diagram of the system architecture. Budget a fake marketing strategy. Anticipate potential obstacles. Get to know all entities that are involved in the problem domain and the people who will be impacted by them. My point is that understanding the problem is a crucial step towards finding the right people who can help you find solutions. Don't try to figure it out all by yourself. Talk to your colleagues and peers. Talk to experts in the marketing department or the design department.
5. Look for prototypers or town-builders; generalists or specialists
In NBT’s engineering department, an impactful idea is all we need to start up. Our team should be able to quickly go from concept to prototype with little direction from the manager; we test and break things, then learn and prototype again. Once a working prototype sets a small foothold in the market, we bring in the town-builders to consolidate the product and hence, the new company. It was important for us to bring in engineers with T-shaped skills. Since the problem domain spans across different fields of human activity (agriculture, healthcare, construction etc), having engineers on the team who are curious about how the modern world works is an end-goal in itself. I highly suggest that you look at your problem domain and see if you need prototyping generalists or town-builder specialists.
6. Prioritize quality but make room for speed
It takes time, even several months, to find these amazing creators. Meanwhile you face two issues: a) Your product can't wait in limbo until that happens. b) Founders need to have their ideas validated before they lose ground to competition. So be open to hiring short-term engineers or freelancers who are happy to support in the initial stages. If you communicate to your HR team exactly whom you need to hire, you enable HR to help achieve this goal. An added benefit to this strategy is the chance that some of these short-term hires may turn into longer-term hires.
Our tech team at NBT is now 13 people strong. We’re supporting an ever-growing number of ventures. If you apply these 6 approaches, you can accelerate and support your tech team, elevating your startup to new levels. Let me know how it goes! Reach out to me on Twitter.