はじめに
「あれ、これこの前チームで決めた気がするけどどーなったんだっけ。」とか、
「なんでこんな風にしてるんだっけ。」とか、
開発作業を通して、記憶の回収作業に翻弄された経験はないだろうか。
私はある。自分の記憶力の低さが嫌になる。
話は変わるが、先日Developers Summit 2023に参加した。興味深い内容、あまり興味が湧かない内容、様々だったと個人的には感じているが、その中の1つにアーキテクチャ・デシジョン・レコード(以下ADR)についての講演があった。
簡単に要約すると、テンプレートを用いて日々の意思決定を記録するといいよ!というものだ。
これじゃん。と思った。そんなADRについて以下で紹介しようと思う。
ADRとは
アーキテクチャ設計上の判断や決定事項を記録するドキュメント。
例えば
日付 | タイトル | 内容 | 理由 | ステータス |
---|---|---|---|---|
8/11 | ほにゃららアーキテクチャ | 新規システムのアーキテクチャにほにゃららアーキテクチャを採用する | ほにゃららだから | 承認済み |
ADRの産物
- プロジェクトを通しての意思決定が散逸しない。
- ドキュメントとして記述することで、メンバー全員の認識レベルが揃う。
- 「何を記録するべきで何を記録しないのか」が明確になる。
- 意思決定をカジュアルに記録しようという文化の形成
おわりに
ADR(Architecture Decision Record)と言ってはいるが、アーキテクチャに無関心な意思決定においても、ADRは活用するべきだ。
口約束だけではなく、カジュアルにドキュメントとして記録することが重要だと感じる。
「これ今度決めよう」みたいなことも記録してもいいと思う。
記録形式におけるテンプレートも自分たちのチーム好みのものを作ることで、より良い効果が得られると思う。
以上の結果、チームメンバー各々の認識がぶれることは少なくなり、自分の記憶力の低さが嫌になることも少なくなるだろう。