<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Engineering on Simple Enough Blog</title><link>https://blog.dev.simpleenough.net/tags/engineering/</link><description>Recent content in Engineering on Simple Enough Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 20 Jul 2026 17:00:00 +0200</lastBuildDate><atom:link href="https://blog.dev.simpleenough.net/tags/engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Testing Your Bus Factor: The Muted Expert Exercise</title><link>https://blog.dev.simpleenough.net/blog/bus_factor/</link><pubDate>Mon, 20 Jul 2026 17:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/bus_factor/</guid><description>&lt;p>Throughout this series, we&amp;rsquo;ve seen how to pass knowledge on: in real time, in writing, through organization. One question remains, and it&amp;rsquo;s the one we carefully avoid: &lt;strong>does it actually work?&lt;/strong> You believe a team is robust because it documents and pairs — until the day a departure reveals the gaps. This article suggests not waiting for that day, and measuring your vulnerability while there&amp;rsquo;s still time.&lt;/p>
&lt;hr>




&lt;h2 id="i-what-is-the-bus-factor" class="heading">I. What is the &lt;em>bus factor&lt;/em>?&lt;a href="#i-what-is-the-bus-factor" aria-labelledby="i-what-is-the-bus-factor">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>The &lt;em>bus factor&lt;/em> answers a blunt question: &lt;strong>how many people would have to disappear for a project to grind to a halt?&lt;/strong> The name comes from a deliberately crude image — how many team members could be hit by a bus before the work becomes impossible.&lt;/p></description></item><item><title>The Setups That Make Knowledge Circulate: Rotation, Game Days and Guilds</title><link>https://blog.dev.simpleenough.net/blog/dispositifstransmission/</link><pubDate>Mon, 20 Jul 2026 16:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/dispositifstransmission/</guid><description>&lt;p>In the guide to collaboration modes, we saw how to pass knowledge on in real time (the tacit) and in writing (the explicit). But a team can master all these practices and still watch its knowledge concentrate in a few people. The reason is structural: without a setup that forces it, knowledge follows the natural slope of specialization. This article deals with the organizational layer — not &lt;em>how&lt;/em> we work together, but &lt;em>how we arrange things&lt;/em> so that knowledge circulates by default.&lt;/p></description></item><item><title>Sharing Knowledge Asynchronously: Code Review, ADRs and Docs-as-Code</title><link>https://blog.dev.simpleenough.net/blog/modeasynchrone/</link><pubDate>Mon, 20 Jul 2026 15:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/modeasynchrone/</guid><description>&lt;p>In the guide to collaboration modes, we set out a rule: explicit knowledge travels asynchronously. Where synchronous modes pass on intuition through contact, asynchronous modes capture what can be written down — and produce a trace that &lt;strong>survives departures&lt;/strong>. But you still have to avoid the classic trap: documentation that no one reads and no one keeps up to date. This article details the practices that work, and why.&lt;/p>
&lt;hr>




&lt;h2 id="i-the-strength-and-the-limit-of-writing" class="heading">I. The strength and the limit of writing&lt;a href="#i-the-strength-and-the-limit-of-writing" aria-labelledby="i-the-strength-and-the-limit-of-writing">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Writing has an advantage no synchronous mode matches: it &lt;strong>depends on no one&lt;/strong>. It can be read at three in the morning during an incident, six months after its author has left, by someone who wasn&amp;rsquo;t there when the decision was made. It&amp;rsquo;s the bedrock of a team&amp;rsquo;s memory.&lt;/p></description></item><item><title>Working Together in Real Time: Pair, Mob, Shadowing and Swarming</title><link>https://blog.dev.simpleenough.net/blog/modesynchrone/</link><pubDate>Mon, 20 Jul 2026 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/modesynchrone/</guid><description>&lt;p>In the guide to collaboration modes, we set out a rule: tacit knowledge travels only through contact. Synchronous modes are therefore irreplaceable — but they come at a cost, and that cost is scary. &amp;ldquo;Two people on a single task means halving productivity.&amp;rdquo; This article proves the opposite and details the four main ways of working together in real time, with their variants and their pitfalls.&lt;/p>
&lt;hr>




&lt;h2 id="i-why-synchronous-work-is-irreplaceable" class="heading">I. Why synchronous work is irreplaceable&lt;a href="#i-why-synchronous-work-is-irreplaceable" aria-labelledby="i-why-synchronous-work-is-irreplaceable">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>An expert diagnosing an outage isn&amp;rsquo;t following a procedure: they eliminate hypotheses at a speed they couldn&amp;rsquo;t even describe themselves. Ask them to write down their method and they&amp;rsquo;ll hand you an impoverished list. That knowledge — the order in which you look at things, what triggers a suspicion — exists only &lt;strong>in action&lt;/strong>.&lt;/p></description></item><item><title>Sharing Knowledge in a Tech Team: A Guide to Collaboration Modes</title><link>https://blog.dev.simpleenough.net/blog/modetransmissions/</link><pubDate>Mon, 20 Jul 2026 13:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/modetransmissions/</guid><description>&lt;p>In &amp;ldquo;When the last expert disappears,&amp;rdquo; we saw &lt;em>why&lt;/em> a team&amp;rsquo;s memory is an invisible form of technical debt. What remains is &lt;em>how&lt;/em> to fix it. Pair programming, mob, shadowing, code review, ADRs, on-call rotation: there is no shortage of practices, and that is precisely the problem — you don&amp;rsquo;t know which one to pick. This guide maps them out and gives a simple rule for deciding.&lt;/p>
&lt;hr>




&lt;h2 id="i-two-kinds-of-knowledge-tacit-and-explicit" class="heading">I. Two kinds of knowledge: tacit and explicit&lt;a href="#i-two-kinds-of-knowledge-tacit-and-explicit" aria-labelledby="i-two-kinds-of-knowledge-tacit-and-explicit">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Before choosing a practice, you need to know &lt;strong>what you are passing on&lt;/strong>. All team knowledge falls into two families, and they don&amp;rsquo;t obey the same laws.&lt;/p></description></item><item><title>When the Last Expert Leaves</title><link>https://blog.dev.simpleenough.net/blog/dernierexpert/</link><pubDate>Mon, 20 Jul 2026 12:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/dernierexpert/</guid><description>&lt;p>In almost every organization there is a system people talk about in hushed tones. It has been running for ten years, it is critical, and exactly one person truly knows how it works. The day that person leaves — retirement, resignation, transfer — it isn&amp;rsquo;t just a colleague walking out: it&amp;rsquo;s an entire library closing down without ever having been copied. That lost knowledge is a form of technical debt, the most insidious of all, because it shows up on no dashboard.&lt;/p></description></item><item><title>DevOps Cycle or a Misunderstanding of the Role?</title><link>https://blog.dev.simpleenough.net/blog/devops_cycle/</link><pubDate>Tue, 17 Mar 2026 11:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/blog/devops_cycle/</guid><description>&lt;h2 id="introduction" class="heading">Introduction&lt;a href="#introduction" aria-labelledby="introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>The term &lt;em>DevOps&lt;/em> is frequently used to describe a heterogeneous set of topics: CI/CD, cloud, Kubernetes, security, observability, incident management, cost management, and more. This breadth of meanings creates a recurring confusion: an organization expresses a need for “DevOps” without specifying the expected value, the associated responsibilities, or the target operating model.&lt;/p>
&lt;p>The outcome is well known: a succession of urgent periods, followed by automation initiatives, and then a gradual return to the same difficulties. This is often described as the “DevOps cycle.” In many cases, this cycle is not intrinsic to DevOps itself, but rather the indicator of a &lt;strong>misunderstanding of the role&lt;/strong>: DevOps is used as a compensating function (support, firefighting, implicit ownership of production) instead of as a structuring organizational capability.&lt;/p></description></item><item><title>ADR (Architecture Decision Record): documenting decisions that matter</title><link>https://blog.dev.simpleenough.net/blog/adr/</link><pubDate>Tue, 10 Mar 2026 11:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/blog/adr/</guid><description>&lt;p>Engineering teams spend a lot of time discussing, arbitrating, choosing… and then forgetting &lt;em>why&lt;/em> they made certain decisions.&lt;br>
The outcome is familiar:&lt;/p>
&lt;ul>
&lt;li>the same debates come back every three months,&lt;/li>
&lt;li>decisions get challenged without the original context,&lt;/li>
&lt;li>onboarding depends on “the people who know,”&lt;/li>
&lt;li>and unnecessary migrations are born from a simple loss of memory.&lt;/li>
&lt;/ul>
&lt;p>An &lt;strong>ADR (Architecture Decision Record)&lt;/strong> exists to avoid that. It’s not a “big architecture doc,” nor a requirements spec: it’s a &lt;strong>short note&lt;/strong> that captures an important decision, with just enough context to keep it understandable and reusable.&lt;/p></description></item></channel></rss>