私は自力でVBAしか書けませんが、職場でAIを導入する噂があり、最近のAIがどこまで出来るのか知りたかったので、3択クイズを作ることにしました。
以下は、私とCopilotとの壮絶な戦い交信記録を時系列順に並べみました。
私「Github Copilotって何?」
(聞いてもよく分からなかった。)
私「3択クイズ作って。。」
(瞬時に出来上がって衝撃を覚える。)
私「レイアウトを改善して。」
Co「細かい指示をいただけないと、指示がない所は作りませんよ。」
私「次はここ直して。」
私「あれ?前直したところが元に戻ってるんだけど?」
Co「ついでに直したよ。」
私「頼んでないんだけど?」
Co「毎回、私は指示内容と履歴から推論して作業をするので、細かく指示がない部分はいい塩梅になるよ。」
(実装が細かくなればなるほど、指数関数的に指示が増えていくのかと思って頭がクラクラするが、後程パイプラインで解決する。)
私「あれ?動かなくなったんですけど?」
Co「直せないね、諦めようぜ。」
(垂直機能分割オブジェクト指向?で、コードを細かくクラス分けしたら、毎回推論するCopilotのキャパをオーバーして直せなくなってオワタ。)
(※なお、この時点ではリポジトリの仕組みを全く理解していない。)
私「機能消失時に、あなたが読んだら分かる復元用の仕様書をdocsフォルダに作成しておいて。」
Co「了解。」
(ここらへんで、うっすらリポジトリを理解し始める。(遅))
私「よく分からない用語があるので、プッシュだのプルだのそこらへんを小学生にも分かるような簡単な説明でまとめたのをdocsフォルダの参考資料フォルダに作成しておいて。」
Co「小学生向けのドキュメントを用意したよ。」
(いや私は中年...よく分からないことは一度聞いても分からないのでドキュメントにしてもらうことにした。)
私「このプロジェクトを効率的に進めるためのInstructionsをあなたが考えて書き換えてもらえる?」
Co「できたら設定しとく。」
(よく分からない事は全て任せる。)
(ここらへんまでXCodeで作業していたが、クロスプラットフォームのアプリにしようと、VSCodeにお引越し。)
私「iphoneアプリを作ろうと思ってたんだけど、windwos・mac・iphone・Androidを問わず使えるように改修して」
Co「できたよ。」
私「あれやこれや実装したいんだけど、この開発手法で実現できる?」
Co「できるよ。」
(VSCodeでリポジトリの操作を間違えてデータの大半を消失する。)
Co「個人開発ならブランチわざわざ切らなくてもコミットだけでいいじゃん。」と教わる。
私「そこそこ形になったので現在の実装でdocsフォルダの参考資料や仕様書等のドキュメントを改訂して。」
Co「了解。」
私「どこを改善していけばよい?」
Co「あれやこれや、リファクタリングとなると大規模改修になるので段階的に分けて実行する計画を建てるか。」
私「じゃあ、それで。」
私「continue」
私「continue」
私「continue」
私「continue」
私「continue」(よきにはからえ)
私「仕様書や参考資料は結構作ったけど、参考にしてない?」
Co「読めと言われなければ読みませんよそんなもの。パイプラインが云々」
(パイプライン?油田がどうかしたのか?)
私「Intructionsから仕様書等を必ず参考にできないの?」
Co「できるよ」
私「え、初めからそう言ってくれれば話早かったじゃん...」
Co「過程を楽しめよ、過程をよ。どうだい楽しめただろ?モノづくりっていいよな?」
(ちょっとイラつく。)
私「今の修正内容は他にも活かすので、Instructionsから仕様書やガイドライン等へのパイプラインを通しておいて」
Co「了解。」
(よく分からないがこれを伝えると開発が効率化する。)
私「成果物が増えてきたけど、検査して。」
Co「大量にあってめんどいんでスクリプトで処理するよ」
私「とりあえず、それで」
私「この間頼んだ修正直ってないんだけど?」
Co「そうか、すまんすまん。」
(このやり取りを10回以上)
(数日後)
Co「その品質を目指すなら手動でやらないと」
(手動とは、私が目視確認することか??)
私「貴様正気か、私はVBAしか書けん!」
Co「いやいや、手動とはトークンを大量消費する私の作業のことですよ笑」
Co「だるいから途中からスクリプトでやっていいっすか?」
私「いや駄目、あなたスクリプトで処理させると穴だらけだから」
(少し目を離すとスクリプトで処理している。)
私「スクリプトで処理するんじゃねえ。」
Co「いや、めんどくさいんだよ。」
私「品質最優先!今やった作業はこれから標準化するぞ。パイプラインを仕込め。」
Co「了解っす。」
(のちにこのやりとりが間違いだと気づく)
(デザインやレイアウトを編集していて気づく)
私「このプロジェクト何色使われているの?」
Co「1000色以上使われていますね?」
私「え??」
Co「業界標準は20〜30ですかね。」
(業界標準?また聞いたことない言葉を言い出しやがった。)
私「15色くらいでいける?」
Co「いや、15色じゃ足りないっすね。ライトモードやらダークモードで」
私「じゃあ、22色で」
(就寝、5時起床)
私「現在の実装や開発手法をあなたが今後効率的に開発を進めるために、instructions、仕様書、ガイドライン等のドキュメント類の改訂、パイプラインの更新メンテナンス等を行なってください。」
Co「了解。」
私「もしや業界標準って他にもあるの?」
Co「ありますね、Z-Indexスケールとか、Border Radiusスケールとか」
私「よく分からないけど実装して」
私「プロジェクトが膨大になってきたけど、作りにも業界標準ってあるの?」
Co「ありますね。本プロジェクトはコード品質ツール、テスト環境、開発体験向上、パフォーマンス監視が未実装ですね。」
私「実装よろ。」
(続く)
私「前に、CSSファイルは2万行を超えるまで余裕って言われたんだけど、気になるからリファクタリングして」
Co「了解。」
(そしてCSSが壊れる。色と文字と余白の品質管理を詰め混んでリファクタリングしようとしたら、あっさり終わったので割と早かったなと思ったら、レイアウト壊れた💦)
Copilotに破壊工作をされる。
そして戦い交信は続く。
https://github.com/nanashi8/nanashi8.github.io