Abstractions, Autonomy, Appetite – The 3 Enablers of Speed

Speed remains one of the salient features of successful software companies. I’ve written in the past about why engineering & business teams should be designed to move fast. But what enables speed? Why are some teams able to move fast, while others struggle. Based on my experience at building products at Sefaira, and now Facebook, I’ve found 3 key enablers of speed.

2014-05-Life-of-Pix-free-stock-photo-light-car

Abstractions

In the early days of a startup, when you’re building a product that has some traction with customers, you make short sighted technical decisions. Given the stage, these decisions are generally valid. However, overtime these decisions harden the tech stack, making it difficult for small teams or individuals to work independently, and ship impactful things. This phenomena affects not just startups, but all high growth software companies.

This is where abstractions come in. As a team grows, and the tech stack grows, a company that focusses on deliberately decoupling the tech stack and creating meaningful abstractions (on an ongoing basis) will be able to sustain its speed by liberating engineers from inter-team dependencies. This allows a small team to leverage the depth of your entire tech stack to build new products & features, as well as experiment at an ever faster cadence.

Autonomy

This one seems obvious. While abstractions reduce the dependencies a team has on others in order to ship, autonomy reduces the number of permissions a team needs in order to build new products. A system of permissions is often a result of lack of trust in your engineers to understand the needs of your user & the ability to ship impactful features. Such a system will inevitably slow down. You can often tell how much autonomy an engineering team has by calculating the ratio of commits with & without associated tasks.

In order to fight this, it is important to give a team clear objectives to hit, and then step away from day to day functioning of the team. It’s important that your engineers spend a non trivial amount of time with your users (even if they are users themselves) & are responsible for tracking product adoption & success metrics. Such a system allows the team to operate independently towards achieving its objectives.

Appetite

With abstractions & autonomy in place, you now have the right environment for hungry engineers to thrive. Unfortunately, most contemporary software development techniques tend to handicap this speed. Estimate & date driven engineering culture sucks the life out of building products. These techniques while possibly great as a tool for learning, generally dehumanize engineers.

Instead of setting up checks & balances, focus on giving your engineers well defined goals & autonomy to achieve them, and set up incentives which encourage them to take a big bite.

Lastly, one remarkable thing about these three traits is that they are self reinforcing. As an organization grows, these characteristics allow a team maintain their speed, and in many cases, move faster.

Abstractions, Autonomy, Appetite – The 3 Enablers of Speed

What does building clocks have to do with the future of computing?

When I was in 6th grade in India, many of my friends in school were electronics enthusiasts. Give us a few general purpose circuit boards, resistors, transistors, capacitors, and a soldering iron, & we felt we could build anything we wanted.

ahmed

We built things like door bells, mini pianos, clocks, alarms, and many annoying little gadgets. I think I even made my parents install the doorbell I made in our house. From there we graduated to making stuff on computers. In 9th grade, we built a software for managing hotel reservations in Borland C++.

So where are some of us today. Without names, I’ll mention their roles

  1. Computer vision scientist at Amazon
  2. Chip designer at Synopsys
  3. Chip designer at NVidia

Not only was none of us arrested & interrogated, today many of us are designing the future of computing, right here in America.

That’s what’s really disheartening about Ahmed’s story. America & the world needs more kids to do what he was doing. Instead, he was arrested, suspended from school, interrogated by the state, & not allowed to call his parents.

What does building clocks have to do with the future of computing?