開発生産性の本質とは? AI運用の3原則
そもそも開発生産性とは何を指すのだろうか。中津川氏は、DORA[2]による開発生産性の定義を紹介した。
[2] DORA(DevOps Research and Assessment):Google Cloud所属の研究組織。毎年、DevOpsの調査・研究レポートであるState of DevOpsを発行している。
開発生産性は「速度」「品質」「レビュー」「フロー」「体験」の5つのカテゴリーで構成される。
速度:リードタイムやデプロイ頻度など、開発プロセスのスループットを測る指標。
品質:本番障害件数やバグ再発率、変更失敗率など、成果物の信頼性を評価する。
レビュー:レビュー待ち時間やPRサイズ、差し戻し率といった、コードレビュープロセスの効率を可視化する指標。
フロー:会議時間やコンテキストスイッチ回数など、開発者が実装作業に集中できているかどうかを示す指標。
体験:開発者満足度や認知負荷をアンケートなどの定性的手法で測定する指標。
企業ごとに重視する軸は異なるが、これら5つのカテゴリーを組み合わせることで、開発生産性の実態を多角的に把握できる。中津川氏は、コードレビューツールを提供する立場から開発生産性を測る上でのレビューの重要性を強調した。GitHubのデータから算出可能なメトリクスも多いため、それらを分析することでAI導入による真の成果を可視化できると説明する。
この前提を踏まえて、中津川氏は開発組織でAIを効果的に活用するための3つの原則を提示した。
(1)AIに与えるコンテキストのガバナンス
AIに何を任せ、どのような情報をコンテキストとして与えるか、逆に与えてはならない情報は何かを定義する必要がある。人間が何を判断し、何に責任を持つかを組織として設計しなければならない。シャドーAI化を放置すれば、個人のAIツール経由で機密情報や顧客情報が流出する深刻なリスクが高まる。判断を個人任せにせず、組織としてポリシーを統一することが重要である。
(2)全員が見られる場所でAIを利用する
コーディングエージェントは基本的に個人のPC上で動作するため、AIとの対話で得られた知見やコンテキストは個人の中に閉じやすい。勉強会などで成功事例を共有しても、試行錯誤の過程が見えにくく、組織全体のスキルアップにはつながりにくい。そのため、コードを変更した原因や意図をチーム全員が閲覧できる場所に残すことが推奨される。
例えば、Issueとプルリクエストをリンクさせ、そこにAIとの作業履歴を記録すると効果的だ。特に新加入のメンバーにとって、過去の意思決定の意図が可視化されていることは、オンボーディングの質を大きく左右する。
(3)品質と安全性の担保
AIは強力な開発支援ツールであり、成功時の効果は絶大だが、暴走するリスクも伴う。例えばエラーからの復旧を試みる中で環境変数を勝手に探索するなど、危険な行動をとるケースがある。コードレビューやテスト、CI/CDといった適切な品質ゲートの設置は不可欠だ。しかし、それを人力だけで運用すればシニアエンジニアの負荷が際限なく増えてしまう。そのため、品質ゲート自体にAIを積極活用するフェーズへ移行すべきだと中津川氏は提言する。

