SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 Summer セッションレポート

アジャイルな開発をより円滑に! 日々の意思決定を残す「アーキテクチャ・デシジョン・レコード」とは?

【B-9】日々の意思決定の積み重ねを記録するアーキテクチャ・デシジョン・レコード

  • このエントリーをはてなブックマークに追加

 システムのアーキテクチャは、日々の意思決定の結果として形成されるものであると言える。この観点から、Developers Summit 2023 Summerにて登壇したリクルートの内山高広氏は、「スタディサプリ」の開発における意思決定の記録方法として、なぜ特定の決定がなされたのかを簡潔に記録する「アーキテクチャ・デシジョン・レコード(ADR)」というドキュメントの手法を紹介した。

  • このエントリーをはてなブックマークに追加

アーキテクチャ・デシジョン・レコード(ADR)とは?

 内山氏は現在、小学生/中学生/高校生向け学習サービス「スタディサプリ」のWebプラットフォーム開発を担当している。Ruby on Rails、React、GraphQL、node.js、Goなどを扱うWebエンジニアである。内山氏はまず、アーキテクチャ・デシジョン・レコード(ADR)とは何かを説明した。

 ADRは、テキストベースの軽量なテンプレートを使用して、アーキテクチャ上の設計判断を記録するドキュメント形式である。通常、Markdownなどの形式で書かれ、タイトル、コンテキスト、ステータス、影響などのフォーマットで構成される。ステータスに関しては、チームに提案した後に「提案済み」にし、チームの合意を得たら「承認済み」に変更、有効ではないと判断した際には「廃止」とする。一つの意思決定に対して一つのADRを作成することが特徴である。

 内山氏によると、ADRは2011年にMichael Nygard氏がブログで紹介したところから広まっていったと言われ、テクノロジーリーダーであるThoughtWorks社のMartin Fowlerは、新技術の評価集においてADRの採用を評価している。ADRを支援するCLIツールも存在し、GitHubには関連するリポジトリがあり、その人気を示すように4000ほどのスターが集まっている。ADRは広く使われている手法なのだ。

アーキテクチャ・デシジョン・レコード(ADR)とは
アーキテクチャ・デシジョン・レコード(ADR)とは

 「スタディサプリ」開発チームメンバーは、社内で行われた『Design It!』(O'Reilly Japan)の読書会を通じてADRの存在を知り、その後、複数のプロジェクトでの活用が提案され、実際にADRを使用することになった。内山氏はRuby on Railsで書かれたモノリスシステムからGoによるマイクロサービスへの移行プロジェクトにおいてADRを採用した経緯を「スタディサプリ」のプロダクトチームブログに記したことが今回の登壇につながった。

 このプロジェクトでは、設計決定が十分に記録されておらず、なぜそのような決定がなされたのかが、後から明確でない状況に気づいた。そこで、GitHubのissueコメントに意思決定のADRを記すことにした。その結果、プロジェクト全体の意思決定が散逸しなくなり、何を記録すべきかも明確になった。

 また、全ての会議の議事録や網羅的な設計ドキュメントを書くのは現実的ではないため、チームでの意思決定後にADRに記録することにした。これにより、意思決定をカジュアルに記録する文化が形成され、ADRに関するコミュニケーションが自然となった。内山氏は「チームメンバーから議論の経緯を忘れがちだったのでADRの登場は革命だったという声が実際にあがっています」と語った。

次のページ
ADRの効率的な使い方とは

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2023 Summer セッションレポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18736 2024/01/17 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング