見出し画像

AIによる開発者体験の改善でわかったAI自動化の課題

note株式会社推薦チームの漆山です。

推薦チームでは、開発プロセスの効率化と品質向上を目的に、AIを利用した自動レビューシステムの改善を続けています。

前回の改善まででは、プルリクエストの説明文とレビューの自動生成をPython + Amazon Bedrockで実装しました。コミュニケーションの質を上げ、レビューなどの工数を削減することができました。

この記事では、直近の改善点とともに、自動化に取り組んできたからこそ見えてきた課題について紹介したいと思います。

直近の改善点

プロンプトの改善と実行環境の整備

基本的なプロンプトの見直しを行い、レビューの質を高めました。ユーザーストーリーを評価する際に、チェック項目に基づき定性的な評価を行い、必要な修正点を可視化するようにしています。

<checklist>
1. タイトルは要求者の観点で記述されているか?
   - "As a [role], I want [goal/desire] so that [benefit]" の形式に従っているか
   - 日本語の場合: "〜として、〜したい。なぜなら〜だからだ" の形式に従っているか
2. フィーチャーは本文で明確に定義されており、他と区別できるか?
   - ストーリーの目的が明確に述べられているか
   - 誰がユーザーで、何を望んでいるかが明確か
   - ビジネス価値や顧客価値が明確に示されているか
3. 本文で受け入れ基準は定義されており、テスト可能か? 
   - 受け入れ基準が明確で、テスト可能か
   - ストーリーの完了を判断できる基準が含まれているか
</checklist>

実際の回答

Diataxisの導入

ドキュメントを書くフレームワークとしてDiataxisというものがあります。ドキュメントをTutorial、How-to Guide、Technical Reference、Explanationの4つに分類したうえで、どのように記述するのかを決めていく考え方です。推薦チームでは、以下のように分類しています。

  • Tutorials 

    • 初心者向けの段階的な学習ガイド

  • How-to guides

    • 特定のタスクの実行方法を説明する実践的なガイド

  • Explanations

    • 概念やシステムの背景情報を提供する文書

  • References

    • 詳細な技術情報や仕様を記述した文書

このフレームワークを導入し、プルリクから技術ドキュメントを生成するアプローチを試みています。この方法で、APIの実装に基づいたドキュメントを自動生成し、説明文やチュートリアルを作成しています。ドキュメントの下書きをAIが担当することで、0→1の作業負担を減らすことができます。

ラベル付与でレビューを実行できるように

ラベルを貼り付けるとGitHubActionsが起動して、自動でレビューが走るようにしています。フィードバックが迅速に反映される仕組みを導入したことで、計画段階での課題発見が容易になりました。

コードを書き進めながらレビューを行えるようになったことで、フィードバック文化の醸成とともに、より直感的なコミュニケーションが可能になっています。

これらの改善施策により、より本質的なエンジニアリングの作業に集中できるようになりました。

振り返りのログを集約

スプリントの振り返り情報をGitHub Discussionsに集約することで、過去の活動を簡単に参照できるようにしました。情報が散らばることを防ぎ、スプリントごとに効率的な知識の蓄積が可能となっています。

AI自動レビューの課題と問題

AIによる自動化の恩恵は大きいですが、改善を進めていく中で課題も浮き彫りになってきました。

注意して使っていかなければ思わぬ思考の落とし穴にハマってしまう可能性もあります。

情報量の制限

レビューや振り返りログの自動生成の際に、情報量の制限をしていないと、不必要な情報まで大量に文章が生成されてしまうことがあります。

情報の過多によって何を議論すべきかが不明確になってしまい、余計に時間がかかってしまうことがありました。どんな情報が必要なのか明確にプロンプトに組み込み、情報量をチームとして調整することが必要です。

学びを制約する可能性

AIによる自動化が、メンバーの主体的な学びを制約することになってしまうケースがあります。情報が整理されることで、メンバーの洞察を得る余地を狭めることが考えられます。効率を向上させる一方で、人間の思考を奪うリスクも伴っているのです。

プロンプトの調整を通じて、AIの活用方法を見直し、バランスの取れた自動化を実現することが重要視されています。振り返りの成果を収集するだけでなく、それが実際の学びや今後の行動指針につながるようなフローに改良する必要性があるでしょう。

生成AIのフィードバックの性質と限界

生成AIが提供するフィードバックは、一般的なベストプラクティスを抜粋したものになりがちです。全体的な品質向上には寄与しますが、具体的なプロジェクトやチームの特性にフィットしたアドバイスの提供にはなり得ないことがあります。

AIが生成したアドバイスを気軽に採用してしまうと、チームの実情に合わず、かえって問題が複雑化する恐れがあります。

AIのフィードバックがよりチームに適したものになるようにするには、問題を具体的に定義し、AIの回答がチームにとって有効かどうかを判断するためのコンテキストを重視したプロンプト設計が必要です。チームの目的と状況をしっかり反映した問いをAIに投げかけることで、より適切で実用的なフィードバックを得ることができるようになります。

今後の改善と取り組み

今回は課題を多くあげましたが、自動化による効率化は、基本的には我々にとって大きな恩恵があります。また、推薦チームの自動生成は一人あたり月間約10ドルほどで利用できていることから、コストパフォーマンスとしてもメリットがあります。

今後は、データ活用の機会を広げることで、生成AIが持つ可能性も飛躍的に増加する見込みです。データをより多角的に理解し、Slackの内容やプロジェクトのイテレーションから情報を活かした自動化を模索しています。このアプローチが成功すれば、よりプロジェクトにフィットした自動生成が可能になると考えています。

AIを活用しながら、ドキュメント生成などの効率を最大限に引き出し、データを戦略的に活用することで、開発環境を向上させることを目指しています。まだまだ改善の余地はあるため、今後も取り組んでいきたいと思います。

※ こちらの記事はインタビュー内容をもとに、AIで自動生成したものをライターが編集しました

▼noteの技術記事がもっと読みたい方はこちら