>_tech-draft
OpenAIのアイコン
OpenAI
動画公開日
タイトル

How PMs use the Codex app

再生時間

2分 20秒

AIアシスタントで開発を効率化!PMがPRのテスト失敗を解決した実例

ポイント

  • 本記事では、コードに不慣れなプロダクトマネージャーが直面する開発中のテスト失敗を、AIアシスタントがいかに解決したか実例を解説します。
  • AIアシスタントの「スキル」を活用し、煩雑なBuildkiteテストのデバッグを自然言語での対話で効率化し、具体的な解決ステップを学べます。
  • さらに、問題解決の過程でAIアシスタントのスキル自体を改善させ、開発の学習ループを加速させるAI活用の奥深さを理解できます。

AIアシスタントで開発を効率化!PMがPRのテスト失敗を解決した実例入門

導入:PMの視点から見た開発の課題とAIアシスタントの可能性

チームのプロダクトマネージャー(PM)として、私自身が日常的にコードを書く機会はそれほど多くありません。そのため、コードが変更される際や、その周辺のコードを深く理解するのが難しいと感じることがよくあります。エンジニアに質問したり、タスクを起票したりする際には、不明瞭な点がないよう、できるだけ情報を整理して伝えるよう心がけています。

しかし、開発プロセスにおいては予期せぬ問題に直面することが少なくありません。例えば、PR(Pull Request)が承認された後でもテストが失敗するようなケースです。このような状況で、私はAIアシスタントの強力なサポートを借りて、どのように問題を解決し、さらには開発プロセス自体を効率化したのか、具体的な事例を通してご紹介します。

1. 不明なUIボタンの発見とチームへの確認

ある日、ユーザーインターフェースの中に、何をするボタンなのかが非常に分かりにくいものがあることに気づきました。私の直感として、まず最初に「このボタンは一体何をするのだろうか?」という疑問が湧いたのです。もしユーザーが混乱するようであれば、それは改善の余地があるサインだと感じました。

そこで私はすぐにチームに問い合わせを行いました。「このボタンは私には奇妙な振る舞いに見えますが、これは何のためにあるのでしょうか?」と。確認の結果、このボタンは現在不要であることが判明しました。もちろん、理由もなく誰かが作った機能やボタンを削除するようなことはしたくありません。しかし、不要と確定したのであれば、削除することが最善策だと判断しました。

2. PR作成と予期せぬテスト失敗

不要なボタンを削除する変更を行うため、私はPRを作成しました。その後、PRは無事に承認されたのですが、Buildkite(ビルド・テストパイプラインツール)でテストが失敗していることが判明したのです。正直なところ、私は最近すっかり怠惰になってしまい、「Buildkiteに入ってテストログを一つ一つ確認しなきゃ」と思うと、「あぁ、面倒だな」と感じてしまう傾向がありました。

テストの失敗は開発の足かせとなり得ます。原因を特定し、修正するには時間と労力がかかります。特に私のように普段からコードを深く追っていないPMにとって、大量のログの中から問題の根源を見つけ出すのは一苦労です。しかし、幸いなことに、私が使っているAIアシスタントには、このような状況を打開する素晴らしい「スキル」が備わっていました。

3. AIアシスタントによるテスト失敗のデバッグと解決

テスト失敗のログを直接追う代わりに、私はAIアシスタントの「スキル」タブを活用しました。私はそこに「Buildkite」と入力し、AIアシスタントに「Buildkiteのログを取得して。なぜ失敗しているの?」と質問しました。するとAIアシスタントは即座にログをフェッチし、問題の原因を特定してくれました。

AIは私に「Buildkiteトークンをインストールする必要があります」と明確に指示してくれたのです。私はその指示に従い、トークンを取得するためのコマンドを実行しました。そして、再度AIアシスタントに対し、「トークンを取得するコマンドを実行したので、PRを修正してください」と依頼しました。AIアシスタントは、リポジトリのトップレベルにある、すべてのスキルが格納されているメインフォルダの情報を利用し、この問題を修正してくれました。

AIアシスタントとの対話例

  • 私: build kite fetch logs. Why failing?
  • AI: Okay, you need to install the build kite tokens.
  • 私: I ran the command to get a token now fix my PR.

このように、自然言語での対話を通じて、AIアシスタントは複雑なデバッグ作業をサポートしてくれました。

4. AIアシスタントの「スキル」改善と学習

今回の問題解決の過程で、私はAIアシスタントに次回の対応方法を学習させるための重要なステップを踏みました。私はAIに対し、「Buildkiteトークンの設定方法について、今回尋ねる必要があった。次回からはその手間をなくしたい。だから、ロールアウトを読み込み、何が修正に役立つかを検討し、そのスキルを更新してほしい」と具体的に伝えました。

おそらく単に「スキルを更新して」と言うだけでもよかったかもしれません。しかし、AIがどのように考えるべきかを助けるような形で指示を出すことで、より高品質な結果が得られると感じています。特に私は「codex on low」という、細かな指示を通じてAIの学習を促すという、過小評価されがちなテクニックをよく使っています。この一連のプロセスを通じて、なんと2つのスキルがその場で改善されました。

まとめ:帰納的な学習ループとAIの可能性

今回の経験は、まさに「帰納的な旅路」と呼ぶにふさわしいものでした。まず、ユーザーからのフィードバックを通じてUIの問題を発見し、チームに質問を投げかけ、変更の必要性を認識しました。そして変更を加えましたが、PRでテスト失敗に遭遇しました。そこでAIアシスタントのスキルを使ってPRの失敗を修正しただけでなく、その過程でAI自身のスキルを2つも改善することができました。

このように、AIアシスタントは単なるツールにとどまらず、開発プロセスにおける学習と改善のサイクルを加速させるパートナーとなり得ます。時間と共にAIはコードベースでの作業において、どんどん賢く、より良いサポートを提供してくれるようになるのです。これは非常に楽しく、開発効率を飛躍的に向上させる可能性を秘めた経験でした。今後もAIアシスタントを積極的に活用し、開発プロセスのさらなる最適化を目指していきたいと考えています。

参考動画

https://www.youtube.com/watch?v=6OiE0jIY93c