12. Honest Admission — Good principles guide; they do not erase hard tradeoffs¶
~18 min read. Mature engineering includes knowing where principles stop giving neat answers.
Built on the ELI5 in 00-eli5.md. The compass — reminder that guidance is not autopilot — helps us admit where judgment must still do the steering.
1) Principles are tools, not universal laws¶
Look. Engineering principles are valuable because they compress experience. They help teams avoid obvious mistakes. They improve consistency.
But they do not remove context. They do not remove judgment. They do not produce one correct answer for every team.
principles
│
├── give direction
├── reduce repeat errors
├── improve shared language
└── do not remove context
That last line matters. A principle like, "write clear documentation," sounds universal. Yet the right amount depends on team size, risk, turnover, and speed.
A principle like, "measure before optimizing," is correct. But what you measure, how often, and at what cost still depends on judgment.
So what to do? Use principles as the course. Not as rigid rails. Simple, no?
2) Some problems stay context-dependent¶
Many hard engineering questions stay messy. No universal rule settles them fully.
Take team dynamics. A clean process can help coordination. It cannot force trust between people. It cannot repair weak management. It cannot create courage for hard conversations.
Take innovation versus stability. Move too fast, and you create operational chaos. Move too slowly, and the team misses learning and opportunity.
Take engineering culture. You can observe signals. Review quality. Escalation behavior. Ownership. Documentation habits. But culture itself is hard to score cleanly.
┌──────────────────────┬──────────────────────────┐
│ problem │ why principles fall short│
├──────────────────────┼──────────────────────────┤
│ team dynamics │ people are not checklists│
│ innovation vs safety │ both sides are valuable │
│ culture measurement │ proxies miss lived reality│
└──────────────────────┴──────────────────────────┘
See. The crew is made of humans, not only process boxes. That is why honest admission matters.
3) Principles can conflict with each other¶
This is where mature judgment really begins. Two good principles can pull in opposite directions.
Document decisions well. Also move fast. Standardize patterns. Also leave room for experimentation. Reduce risk. Also avoid process bloat.
None of these tensions are fake. They are real. That is why slogans are not enough.
Picture the pull.
write more docs ────────────────┐
├── tension zone
move faster ────────────────────┘
standardize more ───────────────┐
├── tension zone
experiment more ────────────────┘
So what to do? Name the conflict directly. Do not pretend one side is always childish. Then ask, "What failure hurts us more right now?"
That is where the weather check returns. Current team state matters. System maturity matters. Business pressure matters.
The compass still helps. It just does not eliminate the need to choose. Yes?
4) Open debates stay open for a reason¶
Two debates appear in almost every team. How much process is enough? When does documentation become overhead?
A tiny team shipping prototypes may need very little process. A regulated team shipping patient workflows may need much more. The same rule cannot fit both well.
Documentation shows the same tension. Too little, and memory stays trapped in heads and chat threads. Too much, and the ship's log becomes a graveyard nobody reads.
too little process ─→ chaos, repeat mistakes
just enough process ─→ coordination, visibility
too much process ─→ slowdown, avoidance, theater
Look. The answer is not, "always add process," or, "always stay lightweight." The answer is to inspect where friction and failure actually come from.
If incidents repeat, you may need stronger defaults. If work stalls in approvals, you may need thinner gates. If nobody reads the ship's log, you may need shorter ADRs or better timing.
That is why these debates remain alive. Context keeps changing.
5) The honest-admission habit¶
Strong engineers do not worship principles. They use them, stress them, and admit their limits.
A useful habit is four short questions. - What does the principle help us see? - What does it not settle by itself? - What local context changes the answer? - What tradeoff are we consciously accepting?
principle
│
├── helps with direction
├── misses some context
├── needs local judgment
└── ends in explicit tradeoff
See. That pattern keeps teams honest. The course stays visible. The crew stays realistic. The ship's log becomes more useful because it records uncertainty, not fake certainty.
This is a good ending for the module. Engineering principles matter deeply. They just cannot think for us. Simple, no?
Where this lives in the wild¶
- Internal developer platform — staff engineer balances standardization against team autonomy when platform rules start blocking experiments.
- Banking AI assistant rollout — risk manager adds process where audit gaps exist but trims steps that do not change decisions.
- GitHub Copilot enterprise governance — engineering leader decides how much policy is enough before developer velocity suffers.
- Clinical documentation system — operations director weighs stability against innovation when new model updates could shift safety behavior.
- B2B analytics product — product and data lead struggles to measure engineering culture beyond delivery dashboards and incident counts.
Pause and recall¶
- Why are engineering principles useful even though they are not universal laws?
- Which hard areas remain context-dependent despite strong principles?
- Why can two good principles still conflict with each other?
- When does the ship's log become overhead instead of leverage?
Interview Q&A¶
Q: Why can engineering principles never fully replace judgment? A: Because systems, teams, and risks differ by context. Principles guide attention, but local tradeoffs still require human choice.
Common wrong answer to avoid: "Because principles are too abstract" — abstraction is useful; the deeper issue is irreducible context.
Q: Why is team dynamics a limit case for process principles? A: Process can support coordination, but it cannot manufacture trust, ownership, or healthy conflict by itself.
Common wrong answer to avoid: "Because process does not matter for people problems" — process matters, but it is not sufficient.
Q: Why do debates about documentation and process never disappear? A: Because the right level changes with risk, scale, maturity, and team shape. Static answers age badly.
Common wrong answer to avoid: "Because engineers like arguing" — personality may color the debate, but the core cause is real tradeoff tension.
Q: Why should teams record unresolved tensions instead of hiding them? A: Visible tensions allow better revisits and better learning. Hidden tensions quietly become resentment or repeated mistakes.
Common wrong answer to avoid: "So leaders can decide later" — escalation may help, but clarity and learning are the main reasons.
Apply now (5 min)¶
Exercise: Pick one principle your team values strongly. List one place where it helps, one place where it conflicts with another principle, and one context factor that changes the answer.
Sketch from memory: Draw the flow from principle to context, tradeoff, decision, and ship's log. Then add where the compass, the course, and the crew still matter.
Bridge. Principles give the compass. MLOps builds the machinery that enforces it. → ../04_ml_platform_operations/00-eli5.md