Code[ish]
49. Building Effective Distributed Teams
Anthony Mazzarella, a senior engineering manager at Heroku, is joined by Juan Pablo Buriticá the VP of engineering at Splice. Juan Pablo has spent the last decade building and running engineering teams across different industries. He believes in helping engineers find their role in fulfilling a business' higher level initiatives.
Juan Pablo encourages teams to focus on planning just a little bit ahead of where you envision your business will be, in order to avoid much greater pains. This includes establishing communication channels that are agreed upon, even if your team is rather small. This way, there will be less ambiguity about where decisions are discussed, should your team grow in the future.
In order to validate your successes, you need metrics to keep track of how your team is doing. Juan Pablo recommends four: how long it takes for a feature, from its first commit, to release to production; how long it takes to recover from an outage; how often you introduce new errors into production; and how often you're deploying code to production. By measuring these ideas, iterating on them, and introducing new metrics, the entire businesses—not just the engineers—can understand their role in the health of the company.
Finally, the utmost priority for any business should be to satisfy their customers. It is worth paying someone else to solve any problem which deviates from this goal. That includes relying on Heroku for infrastructure and LaunchDarkly to handle feature flags. Tackling interesting technical problems is ultimately going to cost a company money anyway, as engineering time will be diverted away from helping a customer.