自由研究的貢献
Claude codeを使って事業を楽にするようなアプリを作ってみました。今回はそれを作る中で感じたVibe Codingのやり方と、それを使った事業貢献についてまとめていきたいと思います。
何を作った?
今回作ったのはSQLを変換してくれるWebアプリです。これはチームで他の人が作ったSQLを、うちのチームで使えるように整形する必要がありました。このタスクが週に2〜3件ほど来るのですが、場合によっては変形・整形するSQLの数が多く、朝の人のタスクを奪うということが起こっていました。こういったタスクなので、ランダムに階級もレイヤーも関係なく割り振ってはいたのですが、場合によってはマネージャー層に当たることもあり、彼らの貴重な時間をただSQLを変換する、変形するというところに充てているのは時間の無駄だと感じていました。また、この変換をする中でちょっとエラーがあったり、ちょっとしたLLMに聞いてもわからない、こちらのシステム上の変換しなきゃいけないポイントというのがあって、こういったエラーがあるとLLMに聞いてもわからないし、何人かを巻き込んで確認するという事態に陥っていました。
そこで、過去の変換前のSQLと変換後のSQLから共通点を導いて、それをある意味ルールベース的に自動で変換してくれるアプリというのを作りました。ここでは、私がPythonや機械学習エンジニアなので、Streamlitと呼ばれるPythonで使えるWebアプリ構成ツールを使って開発しました。
確認するという時代に陥っていましたそこで過去の変換前のSQLと変換後のSQLから共通点を導いてそれをある意味ルールベース的に自動で変換してくれるアプリというのを作りましたここでは私がPythonとか機械学習エンジニアなのでStreamlitと言われるPythonで使えるWebアプリ構成ツールを使って作りました。
実働
実際に自分が行ったのは、変換前と変換後のSQLから共通点を見つけること、過去のSlackのログなどからどういったミスがあって、人々が時間を使ってしまっていたのか、簡単に分からないようなミスを見つけていました。それを見つけた設計書的なものをClaudeコードに渡して、「こういう課題があるから作ってください。このSQLファイルを投げたら全部やってくれるようにしてください」というふうに依頼しました。
実装するとすれば、最初のどういう課題があって、どういうふうに変換して、どういうふうに出力してくださいくらいをある程度最初から組めていたので、ほぼ一発解答で出すことができました。実際は9割くらい完成していて、出来上がったSQLをコピペして自分たちのシステムに貼るので、コピペしやすいように出力してくださいというところだけ複数回やり直しましたが、機能の根本的なところは一発で出すことができました。
この機能を作ろうと思っていて、実際にローンチするまで大体3時間くらいという印象です。
チームの反応
チームメンバーが集まるミーティングでこれを紹介して、実際にSnowflake上にStreamlitを展開しました。チームメンバーから上がった反応としては、作ってくれてよかったとか、好意的なものがほとんどで、悲観的なものについてはありませんでした。ある意味、新人が自分から考えて何か便利ツールを作ってくれたというところを好意的に受け止めてもらったのかなという印象です。この開発体験を踏まえて思ったこととしては次の章でまとめますね。
バイブコーディングの根本的な役割
今回感じたのは、ちょっとした困りごとで手動でも直せるんだけど、プログラムだったら便利だよねくらいのものであれば、バイブコーディングでもいいのかなというふうに感じました。今回のプログラムにも欠点らしい欠点はあって、その一つが提供される変換前のクエリの書き方が変わった際には一発で動かなくなるというところです。今の提供されているファイルはExcelに書かれているのですが、こちらExcelに書かれている部分、4列とかから始まってるんですが、これが一つでもずれた瞬間に多分エラーになります。これ自体は普通にプログラムを書き換えればいいだけなので、すぐに対処できるようにはできるんですが、柔軟性はないです。今回はスピードだけ重視で、できるのかなと思って試してみたらできちゃったという形になっています。なので、こういったできるかなっていう確証がないまま、多分できるだろうなくらいで、こういった会話で求められるのは楽だよなというふうには感じました。
ただ、これをユーザーに提供するシステムに入れるには、多少のエラーがあった場合にエラーコードを吐き出すとか、そういった仕組みが必要なので、そこに関しては設計ができる能力が必要かなとは感じました。
まとめ
新卒がチームに配属されて2ヶ月の間に、ちょっとあったらいいのになと思う機能を搭載したWebアプリを作ってみました。これでチームの開発時間がどのくらい捻出できたのかというのは確認してみようと思っています。今の推定だと、作業時間を約75%短縮できたかなと考えていまして、だいぶいい感じなのではと個人的には思っています。
だから将来的には、このSQLのクエリの変換依頼が来たら、自動で変換し直してコピペするだけ、あるいはコピペすらやってくれるようにして完全自動化を実現できたら、文字通り作業時間をゼロにできるので、さらに効率化が進むと考えています。
そういった機構が付けられればいいななんて思いながら、SQLとにらめっこしておりました。
コメント