ryer.io

Customer-Focused Principles (Training Notes)

TL;DR

  • Customer results matter more than our own plans, large customers, literal customer asks, existing scope, our assumptions, or what we control
  • We should understand why a customer asks for something and build a scalable solution rather than just the specific ask
  • What matters is the percentage of mistakes made and how swiftly they’re corrected
  • You’re doing it right if you’re slightly embarrassed by the minimal first iteration
  • Resist bundling smaller iterations into large projects to avoid scope creep and reduce coordination overhead

Customer Results Over Other Priorities

Customer results outweigh several other considerations. They matter more than what we plan to make (otherwise we’d only have GitLab.com and no self-managed delivery). They matter more than large customers (this avoids the innovator’s dilemma, so we should focus on small and future customers too). They matter more than what customers ask for (we avoid ‘customer focus’ language because it tempts prioritizing stated wants over discovered needs—when a customer asks for something specific, we should understand why and build a scalable solution). They matter more than our existing scope (for example, expanding integrations led to the single application strategy). They matter more than our assumptions (which must be validated directly with customers). And they matter more than what we control (we treat customer-managed instance downtime as a $1M/day problem even when it’s not entirely in our control).

On Iteration and Mistakes

What matters is the relative number of mistakes against all decisions made (the percentage of mistakes), along with how swiftly a mistake gets corrected. You’re doing it right if you’re slightly embarrassed by the minimal feature set shipped in the first iteration. Resist the urge to bundle a series of smaller iterations together—doing so can make team members treat a project as their last or best opportunity to contribute. Bundling drives up cost, encourages fewer risks, incentivizes perfection over progress, increases the risk of cancellation, and increases coordination needs.