When a startup is young, it’s easy to keep all the engineers on the same page. Everyone is in the same codebase, working on the same thing and talking through technical decisions on a daily basis. But as a startup begins to scale, this natural alignment starts to fall away. Cliques and tribes form as different teams evolve distinct approaches to designing and building software.

This post describes a powerful approach for addressing incoherent technical direction: defining a set of Engineering Values and Architectural Principles. Together these twin manifestos articulate clear “rules of the road” for your engineering teams, allowing them to maintain their autonomy while acting in a coordinated way - what I refer to as aligned autonomy.