最近オライリーの「ソフトウェアアーキテクチャの基礎」を1章ずつですが読んでいます。その中で見かけた「アーキテクチャデシジョンレコード(ADR)」に生成 AI を開発者・アーキテクトとして迎え入れる際のヒントを感じたので、雑感としてまとめました。
生成 AI は、「何を考えているかわからない奴」になりがち
ここ半年、会社や個人開発・OSSなどで Devin / Cursor / Claude Code などいろいろ使い込んでいます。チーム内での生成 AI に関する悩み事などを聞いたりもするのですが、共通して生成 AI に対して感じている事柄なのかなと思ったのは、「こいつ、何をやらかすかわからないから怖い・どう向き合っていいかわからない」という不安ではないかと最近感じています。
人間だと 1 on 1 や歓迎会、あとはSlack / Backlog / JIRA やオンラインでの通話などで人柄やバックグラウンドを窺い知ることができます。その中で「この人は多分、こんな人なんだろうな」という仮説が各メンバーの中に生まれ、それぞれが仮説に基づいてコミュニケーションや業務を執り行います。そして「ドライだと思ってたけど、意外と情に厚い人だね」のように少しずつ考えを修正し、仲を深めていく・・・。これが企業やチームにおける新しい人が参加した時の馴染み方だったのではないでしょうか。そしてこの中で、「あの人とどう接していいかわからない」と判断されてしまうと、組織内で孤立しやすくなります。この辺りは現在大手企業がオフィス出社への回帰を決めている要因の1つであるとも言えるかもしれません。
しかし生成 AI については、これまで感覚的にやってきた相手を理解するフロー・手続きを行うことがとても困難です。相手のパーソナルな部分やバックグラウンド、そもそも彼らにあるのでしょうか?
何を考えているかをアウトプットさせる
兎にも角にも、「よくわからないやつ」には仕事を依頼できません。つまりは生成 AI やそのサービスについて、機能ではなく振る舞いや考えなどを理解する必要があります。となるとやるべきことは1つで、「とにかく観察する」ことです。
新しく開発者をチームに迎え入れる場合、まずは練習用のアプリ開発課題を渡したり、いざとなればテックリードや教育担当者がすぐに直す・リカバリーできる小さなタスクから任せると思います。これと同じことを生成 AI にやらせましょう。注意すべきなのは、TODO リストを作らせようという意味ではない点です。EC系のサービスを開発する会社であれば、カート機能や決済機能・トランザクション処理などを要件に含めた練習課題を渡すべきですし、ウェブ制作会社であればサイトを作らせてみるなど、この後控えている実務に近いものをやらせましょう。
その中で今構想していることは、「開発時にアーキテクチャデシジョンレコード(ADR)も一緒に書かせる」ことです。実装・開発したソフトウェアのアーキテクチャ(インフラ構成からクラス・DB設計まで)について、「なぜこの構成にしたか」や「他に検討して却下したものは何か」といった意思決定をアウトプットさせます。書籍で紹介されているフォーマットでは、以下の項目を作成することを提案されています。
- タイトル: 何を決定したかを一言で説明する
- ステータス: アーキテクチャの決定についての現状。採用されたのか、却下されたのか
- コンテキスト: なぜこの決定が必要になるのかの背景
- 決定: 何を、どうやって決定したか
- 影響: この決定でどんな影響が起きるか
- コンプライアンス: 全体のアーキテクチャ決定などを順守できているか
- 備考
重要なことは、フォーマットがあることです。どこに何を書くべきかが決まっているドキュメントとしてアウトプットさせることで、生成結果を人間が確認する際の認知負荷を軽減できます。
書籍の発売も生成 AI コーディングも半年以上前から存在するものですので、誰かすでにやっているだろう・・・と思っていましたが、 Route 06 という会社の方がとても綺麗にまとめてくださっていました。
相手を理解するための ADR
この記事で書かせる ADR は、生成 AI コーディングツールという、どう向き合って良いか分かりかねている存在を理解するためのツールです。そのため、この取り組みを始める際は、会社のプロダクトなどではなく何かしらのデモアプリ開発から始める方が良いかと思います。複数のサービスに同じ指示を出し、 ADR やアプリの実装をみんなでレビューし合う社内イベントなどをやっても良いかもしれません。自分が責任を負わなくて良いアプリやコードに対して、みんなでワイワイ言い合う会は、存外楽しいものです。
生成された ADR やコードを読み、プロンプトの調整やルール・ドキュメントを整備してみましょう。考え方や意思決定の傾向がわかれば、ガードレールの設置方法もそこまで難しくないはずです。