“You must feel the Force around you; here, between you, me, the tree, the rock, everywhere, yes.” – Master Yoda
The Danger of Team Debt
At her PyCon 2015 keynote, Kate Heddleston explains how a familiar engineering concept – technical debt – applies to any growing organization. Any technical system can accrue technical debt as a consequence of bad design. Heddleston argues that organizations can also accrue ‘team debt‘ as a consequence of bad design: where each person added to your team eventually decreases overall team productivity. Productivity drops because each new addition lacks an understanding about the team’s processes, cultural norms, how to do their job, corporate values, code standards, architecture, and more.
Steve Blank sums it up as “all the people/culture compromises made to ‘just get it done’ in the early stages of a startup.” It’s like death by a thousand cuts – each person’s inefficiencies compound to a point where their time and effort spent navigating your ‘system’ outweighs their time and effort spent shipping code.
This was exactly our situation in our Engineering group two years ago. Our team had tripled in size from 13 to 39 in the span of two years and was slated to double again to 78 in 2014. So much of our ‘just get it done’ approach lead to misaligned expectations and lack of understanding of our code base, our practices, and our culture. Symptoms of the problem trickled in to me periodically, but the depth of the situation really hit home when someone I had hired resigned and cited some of these issues in their exit interview.
That event radically shifted the way I looked at introducing new engineers.