https://adr.github.io

複数人で開発することがモバイルアプリケーションでも増えてきています。コードを実装する上で「ここはどういうルールで実装するべきなのか?」「他の部分では古い設計だけど、新しい設計にしたほうが良いからしてしまおう」など複数人で開発しているとどのようにコードを書くべきか迷う場面が出てきます。そのとき参照すべきドキュメントやルールはチーム内で揃っていますか?現状の設計が古いとしても開発初期段階ではその設計が最善だったかもしれませんし、新しい設計を入れるにしてもチームで意思統一ができていないと設計もバラバラになり、修正やリファクタリングも難しくなります。そういうときのためにArchitectural Decision Recordsを書いておくと後で迷う場面が出てきても「なぜこういう設計になっているんだっけ?」という迷いが生じなくなります。フォーマットは色々ありますが、下記のような内容を書いておくのが良いです。

https://qiita.com/fuubit/items/dbb22435202acbe48849

  • タイトル(Title)
  • ステータス(Status)
  • 意思決定者
  • コンテキスト(Context)
  • 決定(Decision)
  • 結果(Consequences)

自分も「テストコードを書くためにこういう設計にしたい」と業務で思ったときはADRを書いてミーティングを開く手順を踏むことにしました。全員の意志が同じ方向に向かっているとレビューや会話もスムーズになりますし、新しいメンバーが入ったときもルールを統一して開発に挑めます。