技術的決定の70%は文書化されていない
設計レビュー、コードレビューの議論、スプリント計画、技術負債のトリアージ。エンジニアリングチームは週に8〜12時間を技術ミーティングに費やしています。GitHubの2024年レポートによると、技術的決定の72%がチームメンバーの記憶のみに依存しており、ドキュメントは一切ありません。
3ヶ月後、「なぜこう作ったのか?」という疑問が再び浮上します。そしてチームはゼロから議論をやり直すことになります。
なぜ技術的決定は消えるのか
コンテキストのないコードレビュー
PRレビュアーはコードを見ます。マイクロサービスをモノリスより選んだ理由や、RedisではなくMemcachedにした理由は見えません。設計意図を知らないレビュアーはアーキテクチャ自体を疑問視します。作成者はチームが既に合意した内容を再説明します。この往復で、PRのマージ時間に平均1.5日が追加されます。
ADR不在の本当のコスト
どのチームも「Architecture Decision Recordsを書こう」という会話を一度はしたことがあるでしょう。そして「後でドキュメント化する」が起こり、後は永遠に来ません。
決定が大きいほど — マイクロサービス移行、データベースシャーディング戦略、認証システムの変更 — 記録がない場合のコストは高くなります。ThoughtWorks Technology RadarはADRを「Adopt」として推奨していますが、実際に一貫して維持しているチームはわずか15%です。
新規メンバーのオンボーディングボトルネック
新しい開発者は、コードが何をするかだけでなく、なぜそう書かれたかを理解する必要があります。シニアエンジニアが毎回口頭で説明するのは双方にとって非効率です。新しい開発者がフル生産性に達するまで平均3〜6ヶ月かかり、その大部分が「なぜ」を解明する時間です。
そのシニアエンジニアが休暇を取ったり退職したりすると、その知識は永遠に失われます。これは構造的問題です:チームの知識は人と共に蒸発します。
「オンボーディング中に『なぜこれらのサービスはgRPCで通信するの?』と聞いたら、『ああ、当時理由があったんだよ』と。その理由を自分で突き止めるのに3週間かかりました。」 — バックエンド開発者、シリーズBスタートアップ
戦略1:「Decision Log」文化を構築する
決定がなされたその瞬間にキャプチャする。「後で書く」という計画はほぼ実現しません。
各ミーティングに「Decision Recorder」を指名します。記録するのは3つだけ:何が決定されたか、なぜ、どんな代替案が検討されたか。それだけです。
例:「AWS API GatewayをKongより選択 / 理由:Kongの運用経験がない、インフラ管理オーバーヘッドを最小化 / 代替案:Kong, Traefik, カスタム実装」— 3行で十分です。
Knoiを使えば、専任の記録者は不要です。ミーティングは自動的に文字起こしされ、AIが技術的決定を抽出します。
フォーマットより習慣が重要です。毎回のミーティング後に3行のDecision Logを書くチームは、完璧なADRテンプレートがあるのに一度も記入しないチームとは、6ヶ月後にまったく異なる場所にいるでしょう。
戦略2:PRを設計コンテキストと連携する
コードレビューの質は、レビュアーが持つコンテキストの量に比例します。PRテンプレートに「Design Context」セクションを追加:設計根拠、検討した代替案、この方法を選んだ理由。
例えば:「React QueryよりSWRを選択 / 理由:バンドルサイズが30%小さい、キャッシュ無効化ロジックが直感的」で、レビュアーはアプローチを疑問視するのではなく、実装品質にフォーカスできます。
チームがKnoiを使っているなら、PR説明に設計ミーティングのリンクを貼るだけで十分な場合が多いです。
本当の価値は6ヶ月後に現れます。レガシーコードの修正が必要な時、git blameからコミット、PRを経て完全な設計コンテキストを辿れます。PRがチームの技術的決定アーカイブになります。
戦略3:「オンボーディングパッケージ」を構築する
オンボーディング最大のボトルネックは「なぜ」の説明です。主要な設計ミーティングの記録をオンボーディングパッケージにまとめれば、新規メンバーはシニアエンジニアからの繰り返しの説明なしに、自分でコンテキストを構築できます。
チームの最も重要なアーキテクチャ決定5〜10個を選びましょう。「パフォーマンスより開発速度を優先」「外部依存を最小化」といった暗黙の原則が、具体的な決定事例と紐づくと明確になります。
Knoiで設計ミーティングの記録があれば、キーワードで検索して関連するものを直接追加できます。このアプローチを採用したチームは、新規開発者の最初のPRまでの時間を平均40%短縮しました。
「オンボーディングパッケージにKnoiの設計ミーティングリンク10個を追加しました。新メンバーは最初の週にほとんど『なぜこう作られているの?』と聞きませんでした。代わりに改善提案を始めました。」 — エンジニアリングマネージャー、50人のフィンテックスタートアップ
導入ガイド
第1週:Decision Logを開始
- すべての技術ミーティングに3行Decision Logを導入(決定、根拠、検討した代替案)
- 既存ツール(Notion、Confluence、Knoiなど)に「Tech Decisions」スペースを作成
- 「Decision Champion」を1人選んで文書化の習慣をリード
第2〜3週:PRワークフローと連携
- PRテンプレートに「Design Context」セクションを追加
- PRに設計ミーティングの記録(またはKnoiリンク)を貼り始める
- コードレビューで「設計コンテキストがない」フィードバックを積極的に行う
第4週:オンボーディングパッケージを構築
- 過去6ヶ月の主要な技術的決定5〜10個を選定
- 各決定をミーティング記録、Decision Log、関連PRにリンク
- 新規メンバーのチェックリストに「オンボーディングパッケージをレビュー」を追加
Before vs. After
| 項目 | Before | After |
|---|---|---|
| コードレビューのコンテキスト | 「なぜこうしたの?」の繰り返し | PRに設計根拠があり、レビューは実装品質にフォーカス |
| 技術的決定 | Slackの断片 + 口頭の引き継ぎ | 検索可能なDecision Logアーカイブ |
| ADRのメンテナンス | 「後で書く」= 書かれない | ミーティング記録がリビングADRとして機能 |
| 新規メンバーのオンボーディング | シニアへの繰り返し質問、3〜6ヶ月の立ち上がり | パッケージで自主学習、40%高速化 |
| レガシーコードの変更 | 「なぜこう作ったの?」— 誰も知らない | git blame → PR → 完全な設計コンテキスト |
| ナレッジの保持 | キーパーソンの退職 = 知識の喪失 | 記録ベースの組織知識、永久保存 |
まとめ
技術的決定はコードと同じく資産です。コードはGitにありますが、そのコードの理由は通常どこにもありません。
Decision Log、PRコンテキストリンク、オンボーディングパッケージを組み合わせれば、技術的決定が検索可能なチーム資産になります。
まずは3行のDecision Logから始めましょう。Knoiのようなツールで習慣を自動化すれば、追加のドキュメント負担はありません。
決済モジュールv2 設計レビュー
核心要約
決済モジュールv2のアーキテクチャ設計をレビュー。マイクロサービス分離方針とAPIゲートウェイ導入を確定。既存モノリスから決済・精算・通知の3サービスに分離し、第1フェーズは決済コアから着手することを決定。
議論内容
アーキテクチャ設計方針
- 既存モノリスから決済・精算・通知の3サービスに分離する方針を確定
- APIゲートウェイを導入しサービス間通信を一元管理
- 第1フェーズは決済コアサービスから着手し段階的に移行
コード品質とテスト戦略
- 単体テストカバレッジ80%以上を必須基準に設定
- E2Eテストは決済フロー全体を対象に構築
- コードレビューは2名以上の承認を必須とする
| PR | 状態 | レビュアー | 優先度 |
|---|---|---|---|
| 決済API基本構造 | レビュー中 | 宋開発 | 高 |
| 精算バッチ設計 | ドラフト | 金開発 | 中 |
| 通知サービス設計 | 未着手 | 未定 | 低 |
決定事項
- マイクロサービス3分割(決済・精算・通知)方針を最終確定
- APIゲートウェイにKong採用を決定
- 第1フェーズの決済コアサービスを4月中にリリース目標に設定
アクションアイテム
- ☐宋開発:決済コアサービスのAPI設計書を3/10までに作成
- ☐金開発:精算バッチの技術検討書を3/12までに提出
- ☐宋開発:APIゲートウェイのPoC環境を3/14までに構築
核心インサイト
- モノリスからの段階的移行により運用リスクを最小化できる
- APIゲートウェイの早期導入がサービス間依存性管理の鍵となる
* 実際に出力されるAI要約は会議内容によって常に異なります。
Knoi AIが自動生成した設計レビュー要約
ユーザーの声
“コードレビュー中に「なぜこう実装したんだっけ?」と思う瞬間ありますよね。 以前はSlackを遡っても見つからなかったのが、今は1ヶ月前の設計会議を検索すればすぐ出てきます。意思決定のコンテキストがすべて記録されているから。”
— ライアン, 開発者
