【社長日記】Geminiでアプリを作ってみた(その後)

 前回、Geminiで評価シートを入力するというアプリを作ってみたという記事を書きました。当社は7月から新年度なのですが、新年度からはこのシステムを社員全員に使ってもらうべく、今週リリースできました。

 前回Geminiが作ったコードは動かなくなってしまい、その後、私が修正したコードをGeminiにアップロードしてそれをベースに使用するように指示したものの、軌道修正はできず、動作するコードを出力することはできずじまいでした。リリースするまでに対応必須な問題は、Geminiに個別に質問しながら自分で修正しました。私が修正したのはコードの量でいえば10%程度でして、90%はGeminiの生成したコードをそのまま使っています。

 最後に実際に社内で使ってもらうために、Googleドライブの共有ドライブでデプロイしました。権限の問題があり、社員全員が使えるようになるまでに何度かデプロイしなおしましたが、Geminiはだいたい役に立ちました。「だいたい」と言いますのが、一発でバチっと決まらず、指示通りに実施すると動作しません。起きた事象を伝えると、私の指示がわかりにくかったですと謝罪して、正しい手順を教えてくれました。いちいち謝罪するのがちょっと気になります。社内でもGeminiはすぐ謝るよね、と話題になっています(笑)

 作ったものは、マトリックス的な表のある「評価入力画面」と、評価者が自分の部署のメンバーの入力状況の一覧を見て、各自の評価入力画面に遷移するための「評価者ポータル」と、被評価者が年度ごとの評価を選んで入力画面に遷移するための「被評価者ポータル」の3画面のあるアプリケーションで、データベースの代わりにGoogle Spreadの8つのマスターシートと3つのデータシートに対する入出力があります。gsファイルが1つとhtmlファイルが3つで構成されています。もともとがExcelの1シートで表現されていたものなので、それほど複雑ではありません。

 その実装に費やした時間は32時間です。以下のような経緯をたどりました。

  1. 仕様を伝える。 (2時間)
  2. 3つの画面を1つずつ実装しプロトタイプ完成。コード生成回数50回。 (10時間)
  3. 機能追加を試みるが、動作するアプリが生成できない。コード生成回数40回。 (10時間)
  4. Geminiに支援してもらいつつ自分でコードを修正する。 (10時間)

 感想ですが、最初はGeminiすごい!と思いました。しかし、途中からはポンコツモードに入ってしまいました(上記3)。要求のちょっとした複雑さに対応しきれないように思えます。マスタメンテ画面みたいなものは作れるものの、状態によって機能が変わるような画面は苦手なのかなと思います。また、Geminiの生成したコードはインデントなどはしっかりしていて一見キレイなのですが、たまに無駄なコードがあったり、行儀の悪い実装も混じるので、一通りのレビューは必要だと思いました。

 この評価入力システムをいつか作ろうと思っていたのですが、私一人では作れませんでした。Geminiなくしては絶対にできなかったことは間違いありません。AIの進歩はすごいなと思いましたが、一方で、まだしばらくは人間のエンジニアの力が必要とされるな、とも思いました。

 以下はGeminiの画面です。Canvasというところに生成したファイルを置いてくれます。チャットではGoogle Action Script(GAS)について無知な私が質問しているところです。現役プログラマーの人でも、不慣れな言語や環境を扱う場合には結構使えるのではないかと思います。一方で、慣れている環境では、自分で書いた方が結局早いと思う人もいると思います。Geminiは一度にまとめて直してくれないので、50回もデプロイしてはテストするを繰り返しました。途中で面倒になってきたのですが、プログラミングの勉強にはよいと思います。
 

Geminiの画面