本記事では、システム開発チームの最大の時間消費要因であるコードリーディングの課題と、それを解決するための生成AIツール「mutable.ai」の活用方法を紹介します。mutable.aiの導入すると、ベテラン・新人開発者双方の開発生産性向上とチーム全体のスキルアップが期待できます。
はじめに
あるクライアントのシステム開発チームの稼働時間を作業別に分析したところ、コードリーディング(コードを読むこと)に大きな作業時間を割いていることが分かりました。
チームの直接的な業務には、打ち合わせ、仕様作成、コード実装、コードレビュー(他者が書いたコードのレビュー)、問い合わせ対応などがあります。これらの業務すべてに共通し、不可欠な作業がコードリーディングです。
そこで、本記事ではコードリーディングにおける生成AIの活用事例について紹介します。
コードリーディングの重要性と課題
あるクライアントで実施したアンケート調査では、コードリーディングは全作業中20%を占めていました。長年にわたって開発が続けられているシステムでは、ソースコードの量が膨大になり、数万ファイルに及ぶ事も少なくありません。また、複雑なロジックや仕様変更が重なっている場合、理解するために多くの時間と労力が必要なためです。
新人開発者とベテラン開発者の課題
新人開発者にとっては、広大なコードベースのどこから手を付ければ良いのか分からないという問題があります。一方、ベテラン開発者も自分の業務を進めながら新人をサポートする必要があり、負担が大きくなります。結果として、チーム全体の生産性が低下してしまいます。
「mutable.ai」とは
「mutable.ai」は、大量のソースコードを解析し、自然言語での質問に答えることができる生成AIツールです。コードの説明、特定の関数やクラスの役割、依存関係など、開発者が知りたい情報を即座に提供します。
「mutable.ai」を選択する理由
同様のツールを比較したところ「mutable.ai」は以下の点で優れていました。
- 高い解析能力:大規模なコードベースでも誤った回答(ハルシネーション:AIが実在しない情報を作り出してしまうこと)が少ない
- 使いやすいインターフェース:ChatGPTライクなUIで、直感的に質問ができる
- セキュリティ:SaaSとして提供されているが、オンプレミスな環境への導入も可能なため、企業内情報管理ルールに適合しやすい
参考:mutable.ai と adrenaline で Copilot Chat の限界を超える
「mutable.ai」導入の目的
以下2点を目的として設定しました
- コードリーディングにかかる時間の削減
- チーム全体の知識共有と生産性向上
解決策
ベテラン開発者への解決策
ベテラン開発者は「mutable.ai」を活用して、自身の疑問点を解消しながら効率的にコードリーディングを進めます
ある機能の実装箇所を特定する
- カスタマーや営業からの不具合報告や動作ロジックに関する質問に対し、その機能がどのファイルで実装されているかを自然言語で検索できます。例えば、問い合わせ文をそのままチャットで質問し、調査を開始できます。
- 新機能の追加要望が企画チームから寄せられた際、関連機能が実装されているファイルを自然言語で検索できます。これにより、影響範囲の調査が効率的に行えます。
実装箇所の依存関係、アルゴリズムの解説
実装箇所を特定した後、具体的なソースコードについての依存関係や、アルゴリズムを、自然文による対話で把握できます
新人開発者への解決策
ベテラン開発者のチャット履歴を、新人開発者に共有できます。これにより、新人はベテランの思考プロセスや問題解決の手順を学ぶことができます。また、疑問点があればチャット履歴を参照することで、自己解決が可能になります。
導入による効果
ある開発チームに「mutable.ai」を導入し1ヶ月後に行ったアンケート調査で以下のような結果が出ました
コードリーディング時間の削減
- ベテラン開発者の約65%が「コードリーディングに費やす時間が減少した」「コードリーディングに費やす時間が大幅に減少した」と回答
- ベテラン開発者の55%が「ソースコードに関して質問・相談を受ける時間が減少した」「ソースコードに関して質問・相談を受ける時間が大幅に減少した」と回答
- 新人開発者の約50%が「ソースコードに関して質問・相談をする時間が減少した」「ソースコードに関して質問・相談をする時間が大幅に減少した」と回答
チーム全体のスキルアップ
新人開発者の約55%が「ソースコードについて相談する際、自分なりの考え・答えを持てるようになった」と回答
その他の意見
アンケートの自由記述では以下のような意見が得られました
ポジティブな意見
- 「コードリーディングを行う際の心理的負担が減った」(ベテラン)
- 「相談する前にチャットでリハーサールできる感じでした」(新人)
- 「単純に楽しい」(ベテラン)
ネガティブな意見
- 「嘘が交じっているので、分かってる人が使わないと危険」(ベテラン)
- 「チャット履歴が共有される前提だと、自由にチャットしずらい」(ベテラン)
まとめ
コードリーディングはシステム開発において不可欠な作業ですが、全体作業における比率が高い事が大きな課題でした。「mutable.ai」の導入により、効率的なコードリーディングと知識共有が可能となり、チーム全体の開発生産性向上が期待できます。
一方で、AIの回答に誤りが含まれる可能性や、プライバシーに関する懸念もあるため、以下のような対策を行う必要があります
- AIの回答を鵜呑みにせず、必ず人間が確認する習慣づけ
- チャット履歴の共有ルールの明確化と、個人情報保護に配慮した運用
- 定期的なツールの使用方法や効果的な活用についての研修実施
- 導入計画・導入支援。社内情報セキュリティ管理部門や法務部門との調整
- 社内マニュアル作成、オリエンテーション実施
- 社内利用ナレッジ蓄積のためのキャンペーン企画・実行
- KPIの策定、計測企画
開発生産性向上には万能な解決策は存在しない(「銀の弾丸などない」)ため、課題を分析し、それぞれに適した解決策を試行錯誤していく必要があります。
なお、クライアント情報保護のため、本記事で記載した数値等の一部は文脈を損なわない範囲で加工しています。
弊社トースターの導入サポート
今回の記事は、コーポレイトサイト・リニューアルのドラフトがてら書いたものなので一応宣伝です。mutable.aiはSaasなので誰でも気軽に利用できます。もし以下のサポートが必要な場合はお気軽にお声掛け下さい