生成 AI の考えを理解するために、ADR を作成する

生成 AI の考えを理解するために、ADR を作成する
この記事の操作
Markdownで見る

Chrome(最新版)のBuilt-in AIが必要です。

Chrome(最新版)のBuilt-in AIが必要です。

最近オライリーの「ソフトウェアアーキテクチャの基礎」を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 やコードを読み、プロンプトの調整やルール・ドキュメントを整備してみましょう。考え方や意思決定の傾向がわかれば、ガードレールの設置方法もそこまで難しくないはずです。

シェア:

Hidetaka Okamoto profile photo

Hidetaka Okamoto

Developer Experience Engineer

Developer Experience Engineer。AWSやCloudflare上へのサーバーレスなアプリ開発を得意とする開発者。元Stripe Developer Advocate / AWS Samurai 2017など、サービスの使い方や活用Tipsを紹介するコンテンツ作成や登壇などを得意とする。

⭐ この記事への反応

はてなアカウントでスターを付けることができます

関連記事

読書メモ: ITエンジニアの英語術 最強の教科書

なんで最強? 書いた人に聞いてみないと真相は不明ですが、個人的には「英語でやりとりする必要が出たとき、とりあえず知っとくと困らない」内容ではあるかなと思います。 どういう内容? すごく乱暴に書くと、「英語で返事を5秒以内 […]

読書メモ:転職と副業のかけ算 – コミュニティでの転職についての雑感

Twitterで話題になっていたので読んでみました。 読んだ本 3行で 「高値で売る」と考えると、辞めたくない時に転職活動を始めるべきかも 転職エージェントだけじゃなくてコミュニティも有効そう ただし「軸ずらし」の難易度 […]

読書メモ: A4アンケートで自社製品・サービスの強みをさぐる

なんのためにアンケートをするか 自社製品・サービスの強みを理解する どういう理由で選ばれたのか、どういう人に選ばれているのかを知る リアルな声を活かした広告や商品ページ・セールストークの土台にする 商品・サービスで伸ばす […]

生成AIコーディング時代の認知負荷問題とフラクタルアーキテクチャによる解決策

生成AIによるコード生成が開発現場に急速に浸透する中、表面的な生産性向上の裏で深刻な問題が顕在化しています。コード品質の低下、レビューコストの増大、そして開発者自身がコードの詳細を把握できなくなるという事態が広がっていま […]