Occam's Razor

오컴의 면도날

Among explanations — or designs — that reach the same result, the one with the fewest assumptions should win.

Also known as: Law of parsimony
···
html
<div class="stage">
  <div class="pane"><div class="tag">A</div>
    <svg class="path" viewBox="0 0 100 60"><path d="M6,50 L26,14 L42,44 L60,10 L76,40 L92,10" /></svg>
    <div class="dot" id="da"></div>
    <div class="end" style="left:92%;top:10%"></div>
  </div>
  <div class="pane"><div class="tag">B</div>
    <svg class="path" viewBox="0 0 100 60"><path d="M6,50 L92,10" /></svg>
    <div class="dot" id="db"></div>
    <div class="end" style="left:92%;top:10%"></div>
  </div>
</div>
css
.stage{width:94%;height:88%;display:flex;gap:6%}
.pane{position:relative;flex:1;border-radius:14px;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.tag{position:absolute;top:8px;left:10px;font:700 11px/1 monospace;color:var(--muted);z-index:2}
.path{position:absolute;inset:0;width:100%;height:100%}
.path path{fill:none;stroke:var(--line);stroke-width:2;vector-effect:non-scaling-stroke}
.dot{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--accent)}
.end{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--accent-3);opacity:.85}
#da{offset-path:path('M6,50 L26,14 L42,44 L60,10 L76,40 L92,10');animation:moveA 3.2s linear infinite}
#db{offset-path:path('M6,50 L92,10');animation:moveB 1.1s linear infinite}
@keyframes moveA{0%{offset-distance:0%}90%,100%{offset-distance:100%}}
@keyframes moveB{0%{offset-distance:0%}90%,100%{offset-distance:100%}}

Named after 14th-century English logician William of Ockham's principle "entities must not be multiplied beyond necessity." Originally a tool for philosophical argument, in engineering and design it means: strip away complexity that complexity itself doesn't require.

If the same problem can be solved by a five-step wizard or a single-screen form, Occam's Razor says pick the latter. Complexity can look more sophisticated, but users need the outcome, not the sophistication.

Simplicity isn't the same as cutting features — the razor targets unnecessary steps, not necessary ones.

A zigzags through five turns to reach the checkmark; B goes straight there. Same destination.

When to use

Before adding a step to a flow, ask whether it's truly necessary or just there out of habit.