SHOEISHA iD

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

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

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

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

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

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

ADR以外のドキュメントの利用や、ADR運用の注意点

 内山氏は「全てのドキュメントをADRで代替するわけではありません」と話す。チームのワーキングアグリーメント、サービスのDesign Doc、Production Readiness Checklistなどの重要なドキュメントは、ADRと共存しながらも別途管理されている。内山氏のチームでは、ADRとワーキングアグリーメントは別に管理されており、基本方針やコードレビューの方針などが記録されている。ADRの利用は柔軟であり、チームやプロジェクトのニーズに合わせて異なる形で活用されている。

 開発者は、サービスをプロダクションにリリースする際に、Production Readiness Checklistを用いてチェックを行う。このプロセスの一環として、コードを書く前にDesign Docを作成し、リリース前にProduction Readiness Checklistを埋めることが求められる。その場合、個々の意思決定の記録だけではなく、体系的に網羅された情報が必要となる。SREは、サービス特性を確認するためにADRよりもこれらのドキュメントをチェックすることが多い。

 Design DocとProduction Readiness Checklistの運用について初期検討で意思決定が行われた際には、ADRを記録し、その上でDesign Docを網羅的に作成する。続く初期開発の段階で意思決定が行われた場合も同様にADRを記録し、Production Readiness Checklistを埋めていく。このプロセスを経て、プロダクションにリリースができた後、エンハンス開発での意思決定時にもADRを記録すると流れとなっている。

 「スタディサプリ」には重厚長大なドキュメントもある。ADRが軽量で使い勝手がいいからといって、重厚なドキュメントが不要になるわけではない。例えば、技術的な挑戦を伴う設計を実施した場合、結果論的にアーキテクチャが形成され、意思決定が不明瞭になることがある。またプロダクトマネージャーやカスタマーサポートと協力する際には、網羅的な仕様を参照するシーンもある。加えて、機能が複雑化した結果、自然言語で網羅的にまとめなければならない資料もある。

 内山氏はADR運用上のいくつかの課題も挙げた。目立つのは、意思決定を行った後にその内容をADRに記録し忘れるケースである。この問題に対処するために、承認済み以前のステータスを有効活用する方法が考えられる。具体的には、意思決定前の段階である下書き、提案済みのステータスのときから記述しておくのだ。

 特定のADRを廃止扱いにすることも難しい。複数の意思決定が連続して行われる状況では、新しい意思決定が以前のものを覆すことがあるからだ。ADRのシンプルなテキストベースの記録形式では、過去のADRとの関連性を把握するのも難しい。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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング