AI時代の新卒エンジニアが成長するためにPRにクイズBotを追加してみた
FLINTERSの平山です。
先日、社内のAI勉強会である「AIの芽」に登壇させていただいた時の内容についてまとめていきたいと思います。
AI時代の新卒エンジニアとして
最近はClaude codeやGithub Copilotの普及によりAIがコードを生成してくれる時代になってきました。
一方で開発チームの振り返りではこんな課題が共有されました
- レビュアーの負担増: 以前はコードを見れば書き手の理解度が推測できたが、AIを使うと一見して問題ないように見えるため、本質的な問題を見過ごしがちになる 。
- 説明責任の所在: AIが生成したコードであっても、それを作成した本人が説明責任を果たすべきである。
- 教育的な懸念: AIに聞けばすぐに答えがわかるため、「わかった気」になってしまい、技術の深い理解が妨げられる危険性がある 。
実際なぜこのコードで実装したのか、などの背景理解や説明責任の能力を、仕事をこなすごとに身につけていかねば会社としても人間を雇う意味もないですし、自分の価値も上がらないですよね。そこで新卒としてより成長するための補助としてプルリクエスト(以下PR)にクイズを追加し、改めてタスクの理解やコードの理解を確認するためのクイズBotを作成してみました。
クイズBot
開発者がPRを作成すると、GitHub Actionsが起動し、変更点に関するクイズを自動で生成・コメントします。開発者はそのクイズに回答し、Botが自動で採点を行います。
このBotの目的は以下の2つです。
- コードを書いた本人が、クイズに答えることを通して自身の理解度を確認できるようにする。
- レビュアーが、本人の理解度を把握した上でレビューできるようにする。
クイズの内容
- なぜこの技術を使ったのか (why this over that)
- 使っている技術はどのようなものか (what is)
- 今回の変更で得られるメリット/期待効果は何か (Benefits)
- 何が問題で変更したのか (Prior problem / pain)
- 今回全体で行ったことの要約 (Summary)
という内容の問題を作るプロンプトにしてみました。
今回は実験的に変更を行った差分とその周り数行を取得しクイズとその答えを作成、その後ユーザー回答と作成した答えを元にLLMが判定を行うといった仕組みでクイズBotを作成しました。
クイズ:
解答例:
答え合わせ:
出来としてはまだまだプロンプトや表示の仕方など改善点が多いのですが...。
このような回答と採点を表示しておくことでレビュアーも開発者の理解度やレビューポイントについて把握できるので結果としてレビューの負担が軽減されるメリットがあるのではないでしょうか。
最後に
今回はデモとしてPRクイズBotを作成しました。今後は、より熟練のエンジニアが問題のプロンプトを調整したり、メンターが作業ごとに「このタスクではこの観点を学んでほしい」といった意図をプロンプトに組み込んだりすることで、より実用性が高まるのではと考えています。
また将来的には、クイズの正答率や今まで取り組んできた作業内容、加えて個人の得意分野や成長したい分野から次のタスクを自動でアサインするような仕組みも面白いかもしれません。
AIに仕事を奪われるのではなく、AIを使いこなしながら自身の価値を高めていく。そのための主体的な取り組みの一つとして、今回のBot開発の知見が誰かの参考になれば幸いです。
Discussion