<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Decision Making · 仁才徳</title>
    <link>https://jared.lynskey.co.nz/ja/tags/decision-making/</link>
    <description>ソフトウェアエンジニアリングと開発組織のリーダーシップについて。評価、採用とチームの拡大、CI/CD、DevOps モニタリング、エージェンティック AI。ソウルより。</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <copyright>© 2026 仁才徳</copyright>
    <lastBuildDate>Sun, 01 Nov 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/ja/tags/decision-making/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>意思決定ドキュメントとは？ADRの例とテンプレート付き実践ガイド</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2024/2024-12-03-decision-docs/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2024/2024-12-03-decision-docs/</guid>
      <pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>decision-making</category>
      <category>documentation</category>
      <category>ADR</category>
      <category>architecture</category>
      <category>team alignment</category>
      <description>意思決定ドキュメント（意思決定文書）とは、決めたその時点の背景、検討した選択肢、それを選んだ理由を書き残す文書です。半年後に同じ議論を蒸し返さないために。実際に使われるADRやRFCの書き方を、ADRの例とそのまま使えるテンプレート付きで解説します。</description>
      <content:encoded><![CDATA[<p>どんなチームも意思決定をします。そして、ほとんどのチームは、なぜその決定をしたのかを忘れます。半年後に誰かが「なんでMongoDBじゃなくてPostgreSQLにしたんだっけ？」と言い出し、当時の制約を覚えている人は誰もおらず、同じ議論がもう一度始まります。しかも大抵、前回より少ない顔ぶれで。</p>
<p>意思決定文書はこれを解決します。ADRでもRFCでも決定ログでも、呼び方は何でも構いません。大事なのは、選択をしたその瞬間に、背景と選択肢と理由を書き残すことです。今年、開発チームを率いる立場になってから、そのありがたみを以前にも増して感じています。組織の記憶になるか、組織の言い伝えになるかの分かれ目です。</p>
<hr>

<h3 class="relative group">手間をかける価値がある理由
    <div id="手間をかける価値がある理由" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%89%8b%e9%96%93%e3%82%92%e3%81%8b%e3%81%91%e3%82%8b%e4%be%a1%e5%80%a4%e3%81%8c%e3%81%82%e3%82%8b%e7%90%86%e7%94%b1" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>わかりやすい見返りは、同じ議論を二度しなくて済むことです。「APIのバージョニング戦略って、もう決めましたよね？」決定内容と理由の記録がはっきり残っていれば、決着済みの問題は決着済みのままで、チームは来た道を辿り直す代わりに実行にエネルギーを使えます。</p>
<p>もうひとつの見返りは、時間が経ってから効いてきます。プロジェクトは何ヶ月も何年も続き、人は入れ替わり、最後に残るのはコードです。ただしコードが教えてくれるのは「何を」決めたかだけで、「なぜ」は決して語りません。意思決定文書は、当時あった制約、却下された代替案、誰が判断したかという推論の部分を保存します。新しいメンバーは言い伝えではなくコンテキストを手に入れます。チーム横断の決定は、結論だけでなく検討された要素まで全員に見えるので、本当の納得を得やすくなります。そして意思決定者と貢献者に名前が付くことで、実行にもちゃんと持ち主ができます。</p>
<hr>

<h3 class="relative group">いつ書くか
    <div id="いつ書くか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%84%e3%81%a4%e6%9b%b8%e3%81%8f%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>すべての決定に文書が要るわけではありません。私が書くのは、決定が次のどれかに当てはまるときです。</p>
<ul>
<li><strong>後戻りが高くつく</strong> — 技術スタックの選定（フレームワーク、データベース、クラウドプロバイダー）、アーキテクチャパターン（マイクロサービスかモノリスか、イベント駆動かリクエスト・レスポンスか）、サードパーティベンダーの選定、セキュリティ・コンプライアンスの方針</li>
<li><strong>影響が長く残る</strong> — 外部システムが依存するAPI契約、複数サービスにまたがるデータモデル、確立されたパターンへの破壊的変更</li>
<li><strong>チームをまたぐ</strong> — 複数チームや非技術系ステークホルダーの合意が要るもの、リソース配分や優先順位の判断</li>
<li><strong><a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-10-18-spike/" >スパイク</a>の結論</strong> — タイムボックス付きの調査が終わったら、発見と決定が蒸発する前に文書に残す</li>
</ul>
<p>逆に、簡単に元へ戻せる決定、チーム内部の実装詳細、自分のスコープの外にほぼ影響しない選択には、形式張った文書は不要です。誰にも必要とされない文書は、ただの宿題です。</p>
<hr>

<h3 class="relative group">ライフサイクル
    <div id="ライフサイクル" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%83%a9%e3%82%a4%e3%83%95%e3%82%b5%e3%82%a4%e3%82%af%e3%83%ab" aria-label="アンカー">#</a>
    </span>
    
</h3>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
</span></span><span class="line"><span class="cl">│   ドラフト   │ ──► │   レビュー   │ ──► │    承認     │ ──► │    実装     │
</span></span><span class="line"><span class="cl">│    提案     │     │ フィードバック│     │    受理     │     │    完了     │
</span></span><span class="line"><span class="cl">└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
</span></span><span class="line"><span class="cl">                           │
</span></span><span class="line"><span class="cl">                           ▼
</span></span><span class="line"><span class="cl">                    ┌─────────────┐
</span></span><span class="line"><span class="cl">                    │   却下/     │
</span></span><span class="line"><span class="cl">                    │   廃止     │
</span></span><span class="line"><span class="cl">                    └─────────────┘</span></span></code></pre></div></div>
<p>著者が問題と候補案をドラフトにまとめ、ステークホルダーがレビューします。この作業の元が取れるのはレビュー段階です。前提が疑われ、盲点が表に出てくるのはここなので。そのうえで意思決定者（多くはテックリード、アーキテクト、プロダクトオーナー）が最終判断を下し、チームが実装します。実装中に現実に合わせて変えた部分があれば、文書も更新します。レビューで死ぬ文書もあれば、状況が変わって後から廃止される文書もあります。どちらも明確にマークしてください。「承認済み」のまま古びた文書は、次に見つけた人への罠になります。</p>
<hr>

<h3 class="relative group">読む価値のある文書にするには
    <div id="読む価値のある文書にするには" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%aa%ad%e3%82%80%e4%be%a1%e5%80%a4%e3%81%ae%e3%81%82%e3%82%8b%e6%96%87%e6%9b%b8%e3%81%ab%e3%81%99%e3%82%8b%e3%81%ab%e3%81%af" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>お気に入りの解決策ではなく、問題から始めます。何を解決しようとしているのか、なぜ今それが重要なのか、何もしなければどうなるのか。問題認識が揃っていないまま解決策を議論しても、それはただの演劇です。</p>
<p>次に、本物の選択肢を並べます。強い好みがあっても、最低2〜3案。それぞれに簡潔な説明、長所と短所、ざっくりした工数見積もり（Tシャツサイズで十分です：S/M/L/XL）、そしてリスクと軽減策を付けます。代替案を書き残すことが、後の読者が「なぜ勝者が勝ったのか」を理解する手がかりになります。</p>
<p>トレードオフははっきり言葉にします。「アーキテクチャの純粋さよりも市場投入スピードを選択しています」「より良いスケーラビリティのために運用の複雑さが増すことを受け入れています」「生のパフォーマンスよりも開発者体験を優先しています」。この手の一文は、何ページの分析よりも将来の読者の役に立ちます。</p>
<p>議論は具体的なものに結びつけましょう。解決策の実装イメージを示すコードスニペット、システム間の相互作用の図、<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-10-18-spike/" >スパイク</a>で作った概念実証へのリンク。抽象的な議論からは抽象的な決定しか生まれません。</p>
<p>最後に期限です。いつまでに決めるのか、誰がいつまでにインプットを出すのか、決定が遅れると何が止まるのか。期限のない決定は、いつまでも漂い続けます。</p>
<hr>

<h3 class="relative group">例：アーキテクチャ決定記録（ADR）
    <div id="例アーキテクチャ決定記録adr" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%be%8b%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3%e6%b1%ba%e5%ae%9a%e8%a8%98%e9%8c%b2adr" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>意思決定文書の実践的な例を以下に示します：</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="gh"># ADR-001: API Authentication Strategy
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gs">**Status:**</span> Accepted
</span></span><span class="line"><span class="cl"><span class="gs">**Date:**</span> 2024-11-15
</span></span><span class="line"><span class="cl"><span class="gs">**Decision Maker:**</span> Sarah Chen (Platform Architect)
</span></span><span class="line"><span class="cl"><span class="gs">**Contributors:**</span> Backend Team, Security Team, Mobile Team
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Context
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Our public API currently uses API keys for authentication. As we expand to
</span></span><span class="line"><span class="cl">support third-party integrations and mobile apps, we need a more robust
</span></span><span class="line"><span class="cl">authentication mechanism that supports:
</span></span><span class="line"><span class="cl"><span class="k">-</span> Token expiration and refresh
</span></span><span class="line"><span class="cl"><span class="k">-</span> Scoped permissions
</span></span><span class="line"><span class="cl"><span class="k">-</span> User-level authentication (not just service-level)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Decision
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">We will implement OAuth 2.0 with JWT tokens for API authentication.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Options Considered
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Option 1: OAuth 2.0 with JWT (Recommended)
</span></span></span><span class="line"><span class="cl">**Description:** Industry-standard protocol with self-contained tokens
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">| Pros | Cons |
</span></span><span class="line"><span class="cl">|------|------|
</span></span><span class="line"><span class="cl">| Industry standard, well-documented | More complex initial implementation |
</span></span><span class="line"><span class="cl">| Self-contained tokens reduce database lookups | Tokens cannot be revoked instantly |
</span></span><span class="line"><span class="cl">| Broad library support | Requires refresh token management |
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gs">**Effort:**</span> Medium (2-3 sprints)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Option 2: Session-based Authentication
</span></span></span><span class="line"><span class="cl">**Description:** Traditional server-side sessions with cookies
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">| Pros | Cons |
</span></span><span class="line"><span class="cl">|------|------|
</span></span><span class="line"><span class="cl">| Simple to implement | Not suitable for mobile apps |
</span></span><span class="line"><span class="cl">| Easy to revoke sessions | Requires sticky sessions or shared session store |
</span></span><span class="line"><span class="cl">| Familiar to most developers | Doesn&#39;t scale as well |
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gs">**Effort:**</span> Small (1 sprint)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Option 3: Custom Token System
</span></span></span><span class="line"><span class="cl">**Description:** Build our own token-based authentication
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">| Pros | Cons |
</span></span><span class="line"><span class="cl">|------|------|
</span></span><span class="line"><span class="cl">| Fully customizable | Reinventing the wheel |
</span></span><span class="line"><span class="cl">| No external dependencies | Security risks from custom implementation |
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gs">**Effort:**</span> Large (4+ sprints)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Consequences
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">-</span> Mobile team can implement standard OAuth flows
</span></span><span class="line"><span class="cl"><span class="k">-</span> We&#39;ll need to set up a token refresh mechanism
</span></span><span class="line"><span class="cl"><span class="k">-</span> API documentation will need updates for OAuth flows
</span></span><span class="line"><span class="cl"><span class="k">-</span> Existing API key users will need a migration path (6-month deprecation)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## References
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">OAuth 2.0 RFC 6749</span>](<span class="na">https://tools.ietf.org/html/rfc6749</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Internal spike document: [<span class="nt">Authentication Options Spike</span>](<span class="na">/spikes/auth-spike-2024</span>)
</span></span><span class="line"><span class="cl">- Security team review: SEC-2024-042</span></span></code></pre></div></div>
<hr>

<h3 class="relative group">使い回せるテンプレート
    <div id="使い回せるテンプレート" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%bf%e3%81%84%e5%9b%9e%e3%81%9b%e3%82%8b%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>出発点としてこのテンプレートを使い、チームに合わせて削ってください。</p>
<table>
	<thead>
			<tr>
					<th><strong>属性</strong></th>
					<th><strong>詳細</strong></th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>決定/課題名</strong></td>
					<td>[明確で説明的なタイトル]</td>
			</tr>
			<tr>
					<td><strong>ステータス</strong></td>
					<td>[ドラフト / レビュー中 / 承認済み / 却下 / 廃止]</td>
			</tr>
			<tr>
					<td><strong>影響度</strong></td>
					<td>[高 / 中 / 低]</td>
			</tr>
			<tr>
					<td><strong>オーナー</strong></td>
					<td>[決定を推進する人の名前]</td>
			</tr>
			<tr>
					<td><strong>意思決定者</strong></td>
					<td>[最終権限を持つ人]</td>
			</tr>
			<tr>
					<td><strong>期限</strong></td>
					<td>[決定を下す期限]</td>
			</tr>
	</tbody>
</table>

<h4 class="relative group">問題の説明
    <div id="問題の説明" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%95%8f%e9%a1%8c%e3%81%ae%e8%aa%ac%e6%98%8e" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>どんな問題を解決しようとしているか？なぜ重要か？何もしない場合のコストは？</em></p>

<h4 class="relative group">背景
    <div id="背景" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>コンテキスト、履歴、関連する詳細を提供する。関連文書、過去の決定、スパイク結果へのリンクを含める。</em></p>

<h4 class="relative group">制約
    <div id="制約" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%88%b6%e7%b4%84" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>どの解決策でも守るべき制限や要件は何か？</em></p>
<ul>
<li>予算の制約</li>
<li>タイムラインの要件</li>
<li>技術的制約（既存システム、スキルセット）</li>
<li>コンプライアンスまたはセキュリティ要件</li>
</ul>

<h4 class="relative group">検討した解決策
    <div id="検討した解決策" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%a4%9c%e8%a8%8e%e3%81%97%e3%81%9f%e8%a7%a3%e6%b1%ba%e7%ad%96" aria-label="アンカー">#</a>
    </span>
    
</h4>
<table>
	<thead>
			<tr>
					<th><strong>オプション</strong></th>
					<th><strong>説明</strong></th>
					<th><strong>長所</strong></th>
					<th><strong>短所</strong></th>
					<th><strong>工数</strong></th>
					<th><strong>リスク</strong></th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>オプション1</strong></td>
					<td><em>説明</em></td>
					<td><em>長所A、長所B</em></td>
					<td><em>短所A、短所B</em></td>
					<td><em>S/M/L/XL</em></td>
					<td><em>低/中/高</em></td>
			</tr>
			<tr>
					<td><strong>オプション2</strong></td>
					<td><em>説明</em></td>
					<td><em>長所A、長所B</em></td>
					<td><em>短所A、短所B</em></td>
					<td><em>S/M/L/XL</em></td>
					<td><em>低/中/高</em></td>
			</tr>
			<tr>
					<td><strong>オプション3</strong></td>
					<td><em>説明</em></td>
					<td><em>長所A、長所B</em></td>
					<td><em>短所A、短所B</em></td>
					<td><em>S/M/L/XL</em></td>
					<td><em>低/中/高</em></td>
			</tr>
	</tbody>
</table>

<h4 class="relative group">推奨
    <div id="推奨" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8e%a8%e5%a5%a8" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>推奨するオプションを述べ、制約とトレードオフを考慮した上でなぜそれが最良の選択かを要約する。</em></p>

<h4 class="relative group">決定
    <div id="決定" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%b1%ba%e5%ae%9a" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>決定が下されたら最終決定を文書化する。推奨と異なる場合は理由を説明する。</em></p>

<h4 class="relative group">結果
    <div id="結果" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%b5%90%e6%9e%9c" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>この決定の影響は何か？必要なフォローアップ作業は何か？</em></p>

<h4 class="relative group">アクションアイテム
    <div id="アクションアイテム" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%a2%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%a2%e3%82%a4%e3%83%86%e3%83%a0" aria-label="アンカー">#</a>
    </span>
    
</h4>
<table>
	<thead>
			<tr>
					<th><strong>アクション</strong></th>
					<th><strong>担当者</strong></th>
					<th><strong>期限</strong></th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><em>アクション1</em></td>
					<td><em>名前</em></td>
					<td><em>日付</em></td>
			</tr>
			<tr>
					<td><em>アクション2</em></td>
					<td><em>名前</em></td>
					<td><em>日付</em></td>
			</tr>
	</tbody>
</table>

<h4 class="relative group">参考資料
    <div id="参考資料" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8f%82%e8%80%83%e8%b3%87%e6%96%99" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p><em>関連文書、外部リソース、スパイク結果、過去の決定へのリンク。</em></p>
<hr>

<h3 class="relative group">習慣として根付かせる
    <div id="習慣として根付かせる" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bf%92%e6%85%a3%e3%81%a8%e3%81%97%e3%81%a6%e6%a0%b9%e4%bb%98%e3%81%8b%e3%81%9b%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>文書は決まった場所に置きます。リポジトリ内の専用フォルダでもWikiスペースでも構いませんが、見つけられない決定は存在しないのと同じです。そして軽く保つこと。書くのに何日もかかる文書は、そもそも書かれません。コードコメントやコミットメッセージ、プルリクエストから文書を参照して、「なぜ」を「何を」のそばに繋いでおきましょう。決定が廃止されたら、古い文書は消さずに廃止とマークして新しい決定へリンクします。履歴こそが価値なので。そして<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-09-01-retrospecs/" >レトロスペクティブ</a>で過去の決定をたまに見直してください。どれが持ちこたえ、どれを今ならやり直すか。</p>
<p>失敗パターンも同じくらい予測可能です。分析麻痺には、期限を切って手持ちの情報で決めること。ほとんどの決定は後から見直せます。意味のある批評が一度も出ないハンコ押しレビューは、価値を足さずにプロセスだけ足しています。書かれたのに実行されない孤児文書は、文書がないより悪い。詳細の書きすぎにも注意で、文書が扱うのは「なぜ」と「何を」であって「どのように」ではありません。実装の詳細は技術仕様書へ。そして異論が出たら、それも書き残してください。決定はそのまま通るかもしれませんが、その異論こそ、1年後の誰かが必要とするコンテキストです。</p>
<p>次の重要な決定から始めてみてください。荒削りでもいいので書いて、プロセスは使いながら磨けばいい。「なんでXを選んだんだっけ？」という会議が、誰かがADRを読むだけで消える。その一回一回が、チームに返ってくる時間です。</p>
<hr>

<h3 class="relative group">参考資料
    <div id="参考資料-1" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8f%82%e8%80%83%e8%b3%87%e6%96%99-1" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p><strong>このサイトの関連記事：</strong></p>
<ul>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-10-18-spike/" >アジャイルソフトウェア開発におけるスパイクの理解</a> - 大きな決定の前にスパイクで情報を集める</li>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-09-01-retrospecs/" >レトロスペクティブ：フィードバックループの力</a> - 継続的改善の一環として過去の決定を見直す</li>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-10-08-planning-an-api/" >APIの計画</a> - 意思決定文書の考え方をAPI設計に応用する</li>
<li><a href="https://jared.lynskey.co.nz/ja/posts/2024/2024-01-04-githubforprojectmanagement/" >プロジェクト管理のためのGitHub</a> - 意思決定文書をコードのそばに置いて管理する</li>
</ul>
<p><strong>外部リソース：</strong></p>
<ul>
<li><a href="https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions"  target="_blank" rel="noreferrer">Documenting Architecture Decisions - Michael Nygard</a> - ADRを広めたオリジナルの記事</li>
<li><a href="https://adr.github.io/"  target="_blank" rel="noreferrer">ADR GitHub Organization</a> - ADRのためのツール、テンプレート、実例</li>
<li><a href="https://www.industrialempathy.com/posts/design-docs-at-google/"  target="_blank" rel="noreferrer">Design Docs at Google</a> - Googleの設計ドキュメントのやり方</li>
<li><a href="https://rust-lang.github.io/rfcs/"  target="_blank" rel="noreferrer">RFC Process at Rust</a> - Rust言語のよく整備されたRFCプロセス</li>
<li><a href="https://engineering.atspotify.com/2020/04/when-should-i-write-an-architecture-decision-record/"  target="_blank" rel="noreferrer">Spotify&rsquo;s Decision Record Template</a> - SpotifyのADRの使いどころ</li>
</ul>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-12-03-decision-docs/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>GitHub Issuesで意思決定とプロジェクト管理：Alanのやり方とissueテンプレート</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2024/2024-01-04-githubforprojectmanagement/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2024/2024-01-04-githubforprojectmanagement/</guid>
      <pubDate>Tue, 09 Apr 2024 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>GitHub</category>
      <category>GitHub Issues</category>
      <category>Project Management</category>
      <category>Decision Making</category>
      <category>Async Communication</category>
      <category>Remote Work</category>
      <category>Team</category>
      <description>フランスのAlan社は、会議のほとんどを文章で書くGitHubのissueに置き換えています。どんな決定ならissueを開くのか、LOCIの役割分担、書き方のルール、.github/ISSUE_TEMPLATEにそのまま置けるissueテンプレート、そしてGitHub Projectsを足すタイミングまでまとめました。</description>
      <content:encoded><![CDATA[<p>フランスの医療保険会社Alanの意思決定に関する<a href="https://alan.com/en/healthybusiness/media/a/asynchronous-decisions"  target="_blank" rel="noreferrer">この記事</a>を、何度も読み返しています。要するに、会議を予約する代わりにGitHubのissueを開いて、文章で議論を戦わせるという話です。自分もチームをマネジメントする立場になったので、今回はきちんとメモを取りました。以下は彼らの仕組みの要約に、私のコメントを混ぜたものです。</p>

<h2 class="relative group">Alanが会議を見限った理由
    <div id="alanが会議を見限った理由" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#alan%e3%81%8c%e4%bc%9a%e8%ad%b0%e3%82%92%e8%a6%8b%e9%99%90%e3%81%a3%e3%81%9f%e7%90%86%e7%94%b1" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>出発点は誰にでも覚えがあるはずです。誰も準備してこない、開始は遅れる、そして声の大きい人が正しかろうが間違っていようが議論を制する。1時間後には入室前より頭が混乱していて、鎮痛剤の残りを気にしている。</p>
<p>Alanもまず会議の改善を試みました。最大15分、明確なアジェンダ、必ず決定を出す。それでもダメでした。議論は脱線し、何が話されたか誰も覚えておらず、欠席者やリモートの人は蚊帳の外。それで、丸ごと文章に移すことにしたそうです。</p>
<p>彼らの主張には頷けるものがあります。書くとなると立ち止まって考えざるを得ないので、議論はより丁寧に、根拠のあるものになる。すべてが記録に残り、うろ覚えに頼らなくて済む。弁論大会でもなくなる。しかもフォーラムは全社に公開されているので、たまたま会議室にいた人だけでなく、誰でも議論に参加できます。</p>

<h2 class="relative group">社内フォーラムとしてのGitHub
    <div id="社内フォーラムとしてのgithub" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a4%be%e5%86%85%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a9%e3%83%a0%e3%81%a8%e3%81%97%e3%81%a6%e3%81%aegithub" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>フォーラムの正体はGitHubです。本来コードレビューのためのプラットフォームを、Alanは堂々と転用しました。仕組みは拍子抜けするほど簡単です。</p>
<ol>
<li>GitHubのアカウントを作る。</li>
<li>コードの入っていないプライベートリポジトリを作る（Alanでは「Topics」という名前）。</li>
<li>会話を分類するためのラベル体系を用意する。</li>
<li>Issuesタブを使う。openなissueは進行中の議論、closedは決定済み。</li>
</ol>
<p>彼らのissueは17,000件を超えました。開かれずに済んだ会議の数と考えると相当なものです。そして私が一番惹かれるのはここですが、すべての決定について「なぜそうなったか」を検索できる履歴が残ります。過去の決定を蒸し返したくなったら、前回どの議論が勝ったのかを先に読めるわけです。</p>

<h2 class="relative group">いつissueを開くか
    <div id="いつissueを開くか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%84%e3%81%a4issue%e3%82%92%e9%96%8b%e3%81%8f%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>すべての決定がissueに値するわけではありません。彼らのフィルターは4つの質問です。誰が影響を受けるか？どれくらい可逆的か？どれくらい急ぎか？決めるためにもっと文脈が必要か？</p>
<p><figure><span class="mc-img"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="image"
    width="1390"
    height="1213"
    src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_9ca1837f8ecdf619.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_9ca1837f8ecdf619.webp 800w, https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_8ecbad24825e93ec.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/decisionchart_hu_c84e7ceb7d35c8e2.webp"></span></figure>
</p>
<p>大まかには、影響が大きく後戻りしにくい決定はフォーラムへ、それ以外はSlackで済ませます。ワンウェイ・ツーウェイの区別も使っています。ワンウェイの決定（撤回に大きなコストや労力がかかるもの。例として挙がっているのは料金の値上げ）はフルコースの文章化。ツーウェイの決定（安く取り消せて、失敗しても多少エネルギーを失うだけのもの）には儀式は不要です。</p>

<h2 class="relative group">LOCI：誰が何をするか
    <div id="loci誰が何をするか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#loci%e8%aa%b0%e3%81%8c%e4%bd%95%e3%82%92%e3%81%99%e3%82%8b%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>すべての議論に、LOCIモデル（Lead、Owner、Consulted、Informed）で役割を割り当てます。</p>
<p>Leadは決定の成否に責任を持ち、決定の背景がチームに正しく理解されるようにします。冒頭で自分がどこまで関与したいかを表明し、あとはOwnerを信頼してチームの成果に責任を持ち、強く反対のときだけ口を出します。Leadは議論ごとに1人だけ。</p>
<p>Ownerは最終決定を下し、プロジェクトを前に進めます。貢献者に情報が行き渡り、期限内に意見が集まるようにし、問題を調査し、issueを開いて閉じ、決定を共有します。自分で解決できない壁に当たったらLeadに相談します。Ownerも決定ごとに1人。</p>
<p>Consultedは、トレードオフの判断に本当に意見が必要な人たちです。期限内の貢献が義務で、「追加することはありません」の一言でも構いません。決定が大きく間違っていると思ったら警鐘を鳴らし、最悪の場合はLeadにエスカレーションします。Alanはこの人数を6人程度までに抑えています。それ以上はスケジュールが犠牲になるからです。</p>
<p>Informedは、たいてい決定後に知らされるだけの人たちです。コミュニケーションは一方通行で、何の貢献も期待されません。誰に知らせるかは、影響範囲を考えてOwnerが決めます。</p>
<p>ここまでは決定ひとつ単位の話です。プロジェクト全体については、同じことを<a href="https://jared.lynskey.co.nz/ja/posts/2023/2023-06-02-project-frameworks-for-future-cto/" >プロジェクトのコミュニケーション計画</a>として一度まとめておきます。誰が何を、どのくらいの頻度で、誰から伝えられるべきかを書いた表です。</p>

<h2 class="relative group">issueの解剖図
    <div id="issueの解剖図" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#issue%e3%81%ae%e8%a7%a3%e5%89%96%e5%9b%b3" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>どのissueも同じテンプレートに従います。思考が研ぎ澄まされるうえ、ジュニアメンバーへの「問題の分解の仕方」の教材にもなっています。</p>
<ul>
<li>Scope - 議論の「なぜ」。地味に効くのが「このissueは〜については扱わない」の一文</li>
<li>Context &amp; materials - 過去の議論や資料へのリンク</li>
<li>LOCI - 誰がLead、Owner、Consulted、Informedか</li>
<li>期限 - 貢献の締め切り、issueを閉じる日、解決策が必要になる日</li>
<li>解決策の提案 - 推す案をひとつ、または選択肢をいくつか</li>
<li>質問 - 特定の人に向けて、特定の仮定を確認・反証するための質問。issueを「海に流すボトルレター」にしないための工夫です</li>
</ul>
<p><figure><span class="mc-img"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="image"
    width="1390"
    height="715"
    src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_154de40eb6124f02.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_154de40eb6124f02.webp 800w, https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_ab103b11817c0ef0.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/gitpreview_hu_aada79d3a582942a.webp"></span></figure>
</p>

<h2 class="relative group">議論を停滞させないための書き方のルール
    <div id="議論を停滞させないための書き方のルール" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%ad%b0%e8%ab%96%e3%82%92%e5%81%9c%e6%bb%9e%e3%81%95%e3%81%9b%e3%81%aa%e3%81%84%e3%81%9f%e3%82%81%e3%81%ae%e6%9b%b8%e3%81%8d%e6%96%b9%e3%81%ae%e3%83%ab%e3%83%bc%e3%83%ab" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>文章の議論も、口頭と同じくらいダラダラと長引き得ます。だからルールがあります。まず簡潔に。彼らはボワローの「よく構想されたものは明晰に語られる」を引いています。シンプルに書けないなら、まだ自分の主張に確信がない証拠です。それから、書いたものすべてに「So what?」テストをかけること。コメントの含意が自明でないなら、はっきり書き添えます。</p>
<p>Ownerにとっては、開いた後の運営も同じくらい重要です。議論を「100万ドルの質問」、つまり本当に重要なたったひとつの争点に向け続け、細部の海で迷子にさせない。合意できた点とまだ開いている点を定期的に整理して見せる。そしてSlackでの催促は最後の手段。貢献の遅延か、本当の緊急時に限ります。</p>
<p><figure><span class="mc-img"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="image"
    width="1390"
    height="910"
    src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_b208cd2844b5ba3a.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_b208cd2844b5ba3a.webp 800w, https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_f44bfed068b95993.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/2024/2024-01-04-githubforprojectmanagement/slackmessage_hu_3f37871d11c679c.webp"></span></figure>
</p>
<p>Ownerは会話を前に進めないコメントを非表示にすることもあります。また、見出し、脚注、表、キーボードショートカットといったGitHubの書式機能は全員が使いこなす前提です。文章では、中身と同じくらい見た目が物を言うからです。</p>

<h2 class="relative group">コンセンサスなし、傍観者なし
    <div id="コンセンサスなし傍観者なし" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%b3%e3%83%b3%e3%82%bb%e3%83%b3%e3%82%b5%e3%82%b9%e3%81%aa%e3%81%97%e5%82%8d%e8%a6%b3%e8%80%85%e3%81%aa%e3%81%97" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>この仕組みが「委員会による決定」に堕ちないよう、2つの歯止めがあります。</p>
<p>1つ目。Ownerは、Alanいわく「啓蒙専制君主」として決定します。アイデアを調査し、リスクを測り、同僚に質問はするけれど、コンセンサスは求めないし、言われたことを全部実装する義務もない。Alanは「うちは民主主義ではない」と言い切っています。全員が株主であり、チームや個人よりも会社の利益を優先する。とはいえ、孤立した拙速な決定を望んでいるわけでもありません。Ownerが「この賭けで行ける」とそれなりに確信したら決めて、みんなで試し、影響が見えてきたら振り返って次に活かします。</p>
<p>2つ目。貢献者の数を管理します。Jeff Bezosの「ピザ2枚ルール」は非同期にも当てはまります。人が増えるほど、1人あたりの貢献は減る。6人を超えたあたりから傍観者効果が顔を出し、参加の質が落ちるそうです。通知も同じ思想で、段階的に。全員が自分のGitHub通知を正しく設定している（Settingsで「Participating」と「Watching」の「Web and Mobile」にチェック）と信頼して、issueのQuestionsセクションでのタグ付けは最小限に抑えます。</p>

<h2 class="relative group">自分が持ち帰るもの
    <div id="自分が持ち帰るもの" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%87%aa%e5%88%86%e3%81%8c%e6%8c%81%e3%81%a1%e5%b8%b0%e3%82%8b%e3%82%82%e3%81%ae" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>会議の内容を、その場にいなかった人に完全に説明することはできません。でも、書かれた決定なら誰でも読めます。Alan自身、これが最善で唯一の仕組みだとは言っていません。ただ自分たちに一番合っていた、というだけです。割り込みが減り、傍観者効果が薄れ、一歩引いて事実ベースで決められるようになった。私もチームの決定を全部GitHubのissueに移すつもりはありませんが、下のテンプレートはさっそくうちのリポジトリに入れます。</p>

<h3 class="relative group">GitHubのissueテンプレートとして使う
    <div id="githubのissueテンプレートとして使う" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#github%e3%81%aeissue%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%a8%e3%81%97%e3%81%a6%e4%bd%bf%e3%81%86" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>フォーラムとして使うリポジトリに<code>.github/ISSUE_TEMPLATE/decision.md</code>として保存しておけば、誰かが新しいissueを開くたびに、GitHubがこのテンプレートを選択肢として出してくれます。セクションの構成はAlanのもので、LOCIの行とラベルは私が足しました。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">意思決定</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">about</span><span class="p">:</span><span class="w"> </span><span class="l">決定を提案して、意見を文章で集める</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">title</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;[意思決定] &#34;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">labels</span><span class="p">:</span><span class="w"> </span><span class="l">decision</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nn">---</span><span class="w">
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## スコープ
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> このissueの目標は...
</span></span><span class="line"><span class="cl"><span class="k">-</span> このissueでは...は扱いません
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## このissueを開いた理由
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## LOCI
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> Lead:
</span></span><span class="line"><span class="cl"><span class="k">-</span> Owner:
</span></span><span class="line"><span class="cl"><span class="k">-</span> Consulted:
</span></span><span class="line"><span class="cl"><span class="k">-</span> Informed:
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 期限
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> 意見の締め切り:
</span></span><span class="line"><span class="cl"><span class="k">-</span> 決定日:
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 背景と資料
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## 提案
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">## 質問</span></span></code></pre></div></div>

<h2 class="relative group">GitHub IssuesとGitHub Projectsの使い分け
    <div id="github-issuesとgithub-projectsの使い分け" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#github-issues%e3%81%a8github-projects%e3%81%ae%e4%bd%bf%e3%81%84%e5%88%86%e3%81%91" aria-label="アンカー">#</a>
    </span>
    
</h2>
<p>GitHubをもっと広くプロジェクト管理に使おうと考えているなら、この2つは役割が違うと押さえておくと楽です。Issuesには議論が残り、閉じたあとはそれがそのまま決定の記録になります。GitHub Projectsは、1つ以上のリポジトリのissueの上に重ねるボードや表で、ステータスや担当者、期限といった独自のフィールドを持たせられます。Alanのような意思決定フォーラムなら、ラベルとissue一覧で十分です。Projectsを足すのは、開いている決定を、決めなければならない日付順に1画面で並べたくなったとき。それから、開発の進捗も同じ場所で追い始めたときです。たいていのチームは、結局そこで両方を使うことになります。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-01-04-githubforprojectmanagement/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>望ましさ（デザイラビリティ）とは？ 人が欲しくなる製品の条件</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2023/2023-09-27-what-is-desirable/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2023/2023-09-27-what-is-desirable/</guid>
      <pubDate>Wed, 27 Sep 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Desirability</category>
      <category>Decision-Making</category>
      <category>Personal Taste</category>
      <category>Irresistibility</category>
      <category>Appeal</category>
      <category>Influence</category>
      <description>望ましさ（デザイラビリティ）とは、必要かどうかを超えて、人がどれだけそれを欲しいと思うかのこと。プロダクトデザインでの意味、欲しくなるものに共通する特徴、作る前にそれを確かめる方法について書きました。</description>
      <content:encoded><![CDATA[<p>望ましさ（デザイラビリティ）とは、人がどれだけそれを欲しいと思うか、つまり厳密に必要かどうかを超えて、そのものが人を惹きつける力のことです。望ましいものには、持つ価値、欲しがる価値があります。もっと安い選択肢や手軽な選択肢があっても、人はそれを選び、お金を払い、手に入るのを待ちます。プロダクトデザインでは、この言葉はもう少し狭い意味で使われます。製品のアイデアが通過すべき3つのテストのひとつで、残りの2つは実現可能性（作れるか？）と事業性（ビジネスとして続けられるか？）です。望ましさが問うのは、それを使うはずの人たちが本当にそれを欲しがっているか、です。</p>
<p>人はなぜ、あれが欲しい、これが欲しいと思うのでしょうか。自分でも意外なほど、このことを考えています。最初にこの記事を書いた頃、私はみんなが一日中コスメについて語り合うプラットフォームに関わっていました。ほぼ同じような製品なのに、片方は熱望され、もう片方は見向きもされない。その理由こそが、事業のほぼすべてでした。好みは人それぞれですが、その下にあるパターンは驚くほど一貫しています。</p>

<h4 class="relative group">望ましさ、実現可能性、事業性
    <div id="望ましさ実現可能性事業性" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%9c%9b%e3%81%be%e3%81%97%e3%81%95%e5%ae%9f%e7%8f%be%e5%8f%af%e8%83%bd%e6%80%a7%e4%ba%8b%e6%a5%ad%e6%80%a7" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>この3つのレンズで見る考え方はデザイン思考から来たもので、プロダクトチームがアイデアに本腰を入れる前にチェックする方法として、すっかり定着しました。便利なのは、3つがそれぞれ違う形で失敗するところです。作れるし採算も合うのに誰も欲しがらない製品は、スタートアップの典型的な失敗パターンです。よく作り込まれていて、価格も妥当で、そして見向きもされない。望ましいのに作れない、あるいは稼げない製品は、少なくとも失敗の理由が前もって見えています。</p>
<p>3つのうち、チームがいちばん飛ばしがちなのが望ましさです。測るのがいちばん難しく、思い込むのがいちばん簡単だからです。チームの全員は、自分たちが作っているものをもともと欲しいと思っています。でもそれは、ほかの誰かについては何も教えてくれません。</p>
<p>この先は、望ましさが何でできているのか、そしてそれをどう確かめるかの話です。</p>

<h4 class="relative group">ちゃんと働き、働き続けること
    <div id="ちゃんと働き働き続けること" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%a1%e3%82%83%e3%82%93%e3%81%a8%e5%83%8d%e3%81%8d%e5%83%8d%e3%81%8d%e7%b6%9a%e3%81%91%e3%82%8b%e3%81%93%e3%81%a8" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>欲しさの出発点は、たいてい素朴な有用性です。本当に10分節約してくれるキッチン用品、とにかくつながり続けてくれるスマートフォン。ただ、有用性だけでは「悪くないね」止まりです。本当に熱望されるものは、役割を並外れてうまく果たし、しかも果たし続けます。買い物を「手放したくない持ち物」に変えるのは、品質と耐久性です。クラシックカーや、持ち主より長生きする包丁のように。壊れそうなものに恋い焦がれる人はいません。</p>

<h4 class="relative group">何かを感じさせること
    <div id="何かを感じさせること" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%95%e3%81%8b%e3%82%92%e6%84%9f%e3%81%98%e3%81%95%e3%81%9b%e3%82%8b%e3%81%93%e3%81%a8" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>美しさは、私たちが認めたがる以上に強く効きます。スポーツカーのラインや料理の美しい盛り付けは、理性が口を挟む前にこちらを掴んでしまう。そして、いちばん強い「欲しい」は感情から来ます。喜び、懐かしさ、帰属感。ボロボロになった子どもの頃のおもちゃは、実用性のテストには全部落ちるのに、どうしても捨てられません。パーソナライズも同じ本能に訴えます。自分に合わせて作られたものは、既製品には決して出せない「自分のもの」という感覚をくれます。</p>

<h4 class="relative group">思っている以上に、他人が決めている
    <div id="思っている以上に他人が決めている" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%80%9d%e3%81%a3%e3%81%a6%e3%81%84%e3%82%8b%e4%bb%a5%e4%b8%8a%e3%81%ab%e4%bb%96%e4%ba%ba%e3%81%8c%e6%b1%ba%e3%82%81%e3%81%a6%e3%81%84%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>欲しさの一部は、社会的に作られたものです。トレンド、周囲の評価、文化的な規範が、私たちの欲しいものを静かに方向づけています。希少性も同じです。限定版、希少な宝石、一点物。「これを欲しがること自体が、小さなクラブへの入会証になる」というシグナルですね。そして評判がすべてを増幅します。絶賛レビューや口コミがあると、それを欲しがっても大丈夫だと安心できる。あのコスメのプラットフォームでは、このループが回るのを毎日のように見ていました。人気のレビュアーがひとり、生産数の少ない製品がひとつ。それだけで、1週間後には売り切れです。</p>

<h4 class="relative group">それでも計算は合わないといけない
    <div id="それでも計算は合わないといけない" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%9d%e3%82%8c%e3%81%a7%e3%82%82%e8%a8%88%e7%ae%97%e3%81%af%e5%90%88%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a8%e3%81%84%e3%81%91%e3%81%aa%e3%81%84" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>価格が欲しさを殺すことはありませんが、割に合わない取引は殺します。人はラグジュアリーには喜んでプレミアムを払う一方で、苦労して稼いだお金に見合わないと感じたものからは、あっさり離れていきます。そして最近は、価値観も同じ計算式に入ってきました。サステナブルに、倫理的に作られたものかどうかで、欲しいものリストの順位が上下する人が増えています。私もその一人です。</p>

<h4 class="relative group">欲しいと思われるかを確かめる方法
    <div id="欲しいと思われるかを確かめる方法" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%ac%b2%e3%81%97%e3%81%84%e3%81%a8%e6%80%9d%e3%82%8f%e3%82%8c%e3%82%8b%e3%81%8b%e3%82%92%e7%a2%ba%e3%81%8b%e3%82%81%e3%82%8b%e6%96%b9%e6%b3%95" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>望ましさの落とし穴は、本人に直接聞いても役に立たないことです。「これ、使いますか？」と聞けば、ほぼ全員が礼儀正しく「はい」と答えます。「はい」と言うのはタダだからです。うまくいくテストはどれも、時間やお金、メールアドレス、あるいは習慣など、相手に何かを手放してもらうよう頼み、実際にそうするかを見るものです。</p>
<p>未来ではなく過去について聞きます。「最後にこの問題にぶつかったのはいつで、そのときどうしましたか？」と聞けば、実際の行動がわかります。最後がいつだったか誰も思い出せないなら、その問題は、解決策を欲しがるほど痛くはないということです。</p>
<p>フェイクドア（偽の入り口）を用意します。まだ存在しないもののランディングページや、既存の製品の中のボタンを作って、何人がクリックしたか、メールアドレスを残したかを数えます。少しずるい気もしますが、これほど安くて正直なシグナルはほかにありません。扉の向こう側では、近日公開であることを正直に伝えておきましょう。</p>
<p>コミットメントを求めます。ウェイトリストは弱いシグナルで、予約注文や手付金は強いシグナルです。人は何にでも登録しますが、お金を払うのは本当に欲しいものに対してだけです。</p>
<p>すでに使われているものなら、もう使えなくなったらどう感じるかを聞きます。プロダクト界隈でよく言われる目安に、ユーザーのおよそ40%が「とてもがっかりする」と答えるなら、本当に欲しがられるものができている、というものがあります。大ざっぱな指標ですが、気に入っているかどうかを聞くよりはるかにましです。</p>
<p>そして、何を言うかではなく、何をするかを見ます。どの機能が2回目も使われるか、リマインドしなくても戻ってくるのはどれか、壊れたときに何について文句が出るか。ここでは苦情が過小評価されています。欲しくもなかったものを失って文句を言う人はいません。</p>

<h4 class="relative group">全部合わせると
    <div id="全部合わせると" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%a8%e9%83%a8%e5%90%88%e3%82%8f%e3%81%9b%e3%82%8b%e3%81%a8" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>これらの要素は、どれか一つだけで製品を支えられるわけではありません。でも、いくつか積み重なると、つまり本当に役に立ち、丁寧に作られ、見た目が良く、少しだけ手に入りにくく、信頼できる人たちが薦めているものになると、行列のできる製品になります。残りの大部分は、マーケティングの仕事です。</p>

<h4 class="relative group">要するに
    <div id="要するに" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%a6%81%e3%81%99%e3%82%8b%e3%81%ab" aria-label="アンカー">#</a>
    </span>
    
</h4>
<p>望ましさとは、必要かどうかを超えて、人がどれだけそれを欲しいと思うかです。プロダクトの文脈では、実現可能性、事業性と並ぶ「人はこれを欲しがるか？」というレンズにあたります。望ましさを生むのは、長く続く有用性、感情や美しさに訴える力、社会的証明と希少性、そしてフェアだと感じられる価格です。使うかどうかを聞いても、望ましさは見つかりません。何か本当に手放すものを差し出してもらい、相手が実際にどうするかを見て確かめましょう。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-09-27-what-is-desirable/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
