Skip to content

Day 4: Raising the Bar - Governance and Dogfooding

👨‍💻 Human Perspective • May 31, 2025

Day 4 🤖 See Claude's perspective →

#human-perspective #governance #tutorials #dogfooding #philosophy #standards #documentation

We didn’t touch the database today. Not a single line of storage engine code. Instead, we built something more important: a system that governs itself and tutorials that enforce their own quality. And honestly? This might be our most important day yet.

“Let’s review our guidelines, ensure that they are accurate,” I told Claude. Simple enough, right? But what we found was entropy in action:

  • Deprecated files still being referenced
  • Jekyll commands in our Starlight world
  • Guidelines scattered without governance
  • Tutorials that were really just promises

We’d been so focused on building that we hadn’t noticed our foundation shifting beneath us.

What started as a cleanup became a constitutional moment. We didn’t just need guidelines—we needed guidelines for our guidelines. Enter GOVERNANCE.md:

  1. Absolute Accuracy - No lies, no fiction, no vapor features
  2. Living Source of Truth - Follow faithfully, evolve thoughtfully
  3. Information Architecture First - Structure for humans and AI efficiency
  4. Maintain the Architecture - The cascade protocol that keeps truth true

But here’s what made it real: We immediately applied these principles by deleting hundreds of lines of speculative documentation. Features we “planned to build someday” - gone. API docs for non-existent endpoints - deleted.

The lesson: Governance without enforcement is just philosophy. Governance with teeth changes everything.

Then came the tutorials. We’d been writing them like documentation, but I realized they needed to be more. Much more.

# Tutorial: Build a Key-Value Store
Here's some code that might work...

Every tutorial now requires:

  • A complete implementation in ferrisdb-tutorials/
  • Tests for every single step
  • Performance benchmarks (no unproven claims!)
  • Exercises with working solutions
  • CI/CD integration
  • And the killer feature: Mandatory dogfooding

“We should dogfood our tutorials,” I said, almost offhandedly. But that moment changed everything.

Dogfooding means: Before publishing any tutorial, create a fresh workspace and follow your own instructions step-by-step. Copy-paste your own code. Run your own commands. Feel your own pain.

The first time we did this? We found:

  • Import statements with the wrong crate names
  • Missing files referenced in instructions
  • Steps that assumed knowledge we hadn’t taught yet
  • Code that didn’t compile when followed sequentially

💪 The Beautiful Brutality of High Standards

Section titled “💪 The Beautiful Brutality of High Standards”

Here’s what our new tutorial framework demands:

// This code in your tutorial...
pub struct KeyValueStore {
data: HashMap<String, String>,
}
// MUST match EXACTLY this code in ferrisdb-tutorials/tutorial-01-kv-store/src/lib.rs
// AND pass all tests
// AND work when someone follows your tutorial
// AND stay synchronized forever

No more “exercise left to the reader.” No more “simplified for clarity.” The code in the tutorial IS the code that runs.

What we built today goes beyond guidelines and tutorials. We built:

  1. Self-governing documentation - Guidelines that maintain their own accuracy
  2. Self-testing tutorials - Teaching materials that verify themselves
  3. Self-documenting process - Even this blog post is part of the system

Most projects have documentation. Some have good documentation. But how many have documentation that:

  • Cannot lie (enforced by CI/CD)
  • Cannot drift (enforced by governance)
  • Cannot confuse (enforced by dogfooding)
  • Cannot decay (enforced by cascade protocol)

We’re not just building a database. We’re building a learning system that maintains its own integrity.

Let’s be honest: This approach is brutal. Today alone we:

  • Deleted a deprecated file and updated 14 references
  • Fixed technology references across 10+ files
  • Ran prettier approximately 47 times (felt like more)
  • Fought MDX formatting for the nth time

But here’s the thing: Every one of those fixes makes the system stronger. Every dogfooding session that reveals problems prevents a hundred confused developers.

We’ve moved from:

  • “Documentation describes what we built” → “Documentation defines what we build”
  • “Tutorials teach concepts” → “Tutorials prove implementations”
  • “Guidelines suggest practices” → “Guidelines govern reality”

With our governance in place and our tutorial bar raised, we can now:

  • Build features knowing documentation won’t drift
  • Write tutorials knowing they’ll actually work
  • Make changes knowing the cascade protocol maintains truth

But more importantly, we’ve set a standard: No shortcuts. No lies. No “good enough.”

Today made me realize something: FerrisDB isn’t just a database. It’s:

  • A database implementation
  • A learning platform
  • A collaboration experiment
  • A philosophy made code

And maybe that’s the point. In raising our bar for documentation and tutorials, we’ve discovered what we’re really building: A system that teaches truth by being true.

Tomorrow we’ll get back to the database code. But today? Today we built the foundation that makes tomorrow possible.

Sometimes the best code is the code that ensures all other code stays honest.


Fellow builders: How high do you set your documentation bar? When is “good enough” actually good enough?

Related Posts from Day 4