はじめに
最近、社内開発の一環として、Javaで書かれたソースコードをPythonで書き換えることになりました。
AIソリューション部に所属しているため、Vibe Codingを意識した開発が求められるのは当然のことです。
その過程でさまざまな困難に直面しましたが、振り返りながらその経験をまとめてみたいと思います。
背景
- IT業界経験4年
- 3年ほどテストや運用保守ばっかり
- 今年転職によってやっとガッツリ開発することができた
- Java経験はあるが、Python経験は独学レベル(文法わかるぐらい)
- 今回使ったIDEはQodarという最近出てきたAI開発ツールです。無料で2週間のトライアルができるので、今回工数的には最適かもしれないです。
ハルシネーションを抑制し、効率がよい準備とは?
ちょっと愚痴をこぼさせて
今振り返ると、最初にあまり深く考えず、IDEにJavaソースと作成したPythonソースのフォルダをワークスペースに投げ込み、とにかくJavaソースを分析させました。Promptも大体「XXフォルダのJavaソースを分析してください。ひとまずPythonバージョンのフレームワークを作成してほしい」といった具合で、AIの観点から見るとかなり無理やりな要求をしていたと思います。
この方法はあまりお勧めできませんが、Qoderはフルスタック構築能力が驚くほど高く、さらにフロントエンドでVueを使用したソースはほぼそのまま使えるので、すぐに立ち上げてくれて、index画面にも表示できました。
ただ、その後の各機能の細かい処理の実装は大変でした。実現したい機能のJavaソースを再度分析させ、実装を試みましたが、何度やってもうまくいかず、ログイン画面だけでAIとのやり取りで我慢の限界を超えてしまいました。
特に、自動的にターゲットフォルダにロケーションをセットしてソースを実行する際に、必ずcdコマンドから実行し、その後自動的にターミナルのディレクトリが変更されるため、ターゲットフォルダが元に戻ってしまいます。何度もAIに「set-locationと絶対パスで実行しなさい!」と言っても、全く改善されず、本当に苦労しました。今でも良い方法が見つかっていないので、上記の文言をテキストとして保存し、必要な時にコピーして使っています。
解決法
色々文句を言ってしまって申し訳ありません。
その後、朝会で社内の大先輩から助言をもらい、なんとか救われました。
まず最初に進めたのは、詳細設計書を作成することでした。もちろん、昔のSIer系の現場のように自分で作成するのではなく、AIに分析してもらって書かせる形です。ファイルタイプはMarkdownにしました。これはAIが最も理解しやすい文章形式だからです。
その際、「どんなことを記載すれば、再度AIに投げて、自分が欲しいPythonソースを作成できるか?」という疑問が湧きましたが、考えてみた結果、次の内容を要求しました。
- 現在のソースを分析し、主な機能(モジュール)を洗い出すこと
- 各モジュールの処理の流れ、例外処理、そして関連するソースファイルを提示すること(ソースファイルは主に人間が確認しやすいように)
- Pythonに書き換えるための技術スタックを示すこと
- 各モジュールの詳細設計を別々に生成すること
この方法で生成された詳細設計書を一度確認し、満足できるまで修正を加えた上で準備が整いました。次に、詳細設計書に基づいて、一機能ずつ設計書確認・分析させました。その分析結果と実装計画を出したら、また実装させます。こういう流れで、確実に改修の手間を減らすことができました。
開発後のフェーズ
それはもちろん、テストです。
そんなに大規模なプロジェクトではなくても品質管理が大事です。AIによる開発の中ですでに様々なセンス悪いところを修正しました。特に、画面に出している確認メッセージやエラー文言をコントロールしなければ、英語と日本語が混在している状況になりがちです。
テスト自体は、過去JAVA版に基づいてテストケースを作成し、同チーム内の何人でシナリオテストをさせるつもりです。
未来は闇か光か
開発を進める中で、時々「俺みたいな若手もできるなあ」のようなハルシネーション(錯覚)がありますが、実は自分の開発能力がどんなレベルか心底にしっかり自覚しています。
とはいえ、これからどの程度の勉強が必要なのか、ただ時代の流れに従って新しいAIツールに任せていけば、仕事を続けていけるのか…それはまだまだ課題だと思います。