本文へ移動

のなさばどっとねっと

AIで加速する開発とボトルネックのわたくし

投稿 / 最終更新

AIを使い始めたらどんどん開発が加速し、わたくしの判断がボトルネックと化している話を適当に書いていきます。

AIで加速する支援ツール開発

最近、storm-lua-minifystorm-mclというツールの 開発を進めています。これらはゲームソフトStormworks: Build and Rescue での制作の効率化、履歴管理、AI支援を受けるためのツール群としてやっているものです。

以前の私では自力で実装するのに大変時間がかかっていた機能なども盛り込めており、 AI時代だからこその仕上がりとなりつつあります。

しかし、お金も限られておりまして、トークンリミットにぶち当てながらの開発です。結構つらい。 1週間に進められる量にかなり限りがあります。月100ドル払えばたぶんリミットには 当たらなくなるのですが…… これが一つ目のボトルネックでございます。

二つ目のボトルネックが、やはり承認作業。もう全コードのレビューは諦めていますが、それでも 設計の良し悪しを判断してコメントすることは、品質維持上重要だと思っておりまして、 planの承認、目につく怪しい部分や手抜きの検出と、まあこのあたりがボトルネックです。 リミットがあるのでこのボトルネックは目立っていないんですけどね。

三つ目のボトルネックが、開発の定石を知らないこと。10年前の新常識にゆっくり追いついている というあまりにもひどい状況でして、これってどうしたらいいんですか? を無限に聞いています。

うーん。

確実に開発スピードも品質も上昇しています。コードを書く時間が減ったけど、ものもできている。 これなのに不満が残るこの感じ、なんなんでしょうね。仕方ないか。

定石を取り込んでボトルネックを減らそう

CONTRIBUTING.mdを書きなさいと言われるようになってきたので、ついでで開発フローの見直しを することにしました。というわけでChatGPT(GPT 5.6 Sol)に教えてもらった指針をダラダラ書きます。 (なお、この記事に直接的なAI生成物を含みません)

今はGit Flowっぽい何かで動いていますが、今後この「新しいフロー」にしていきます。

新しいフローの概要

GitHub FlowとGitLab Flowの間みたいなフローにします(GPTは改変型Trunk-Based Developmentだと 言っていますが、どうもそうじゃない感じがする)。 GitHubフローからデプロイをタグ付きのコミットだけに、下げたものだと思っていただければ。

すっごく雑に書くと、master製品候補版で、リリースしてもまあ大丈夫って感じの品質、 そこからrelease/*を切ってmasterにPRで取り込んだら取り込み時点をタグ付きにして 製品バージョンですよ~という方針です。また、featureブランチはmasterに取り込みます。

私のプロジェクトでlong term supportをやることが稀なので、GitLab Flowともちょっと違う。

プロジェクトの成長に合わせて若干運用を切り替えていきますが、初期はmasterへ直接、 成長してきたらPRでSquashマージに切り替えという感じ。Merge commitマージは必要な時だけです。

製品候補版として出す以上はCIちゃんとやる必要がありまして、でもわたしテストって何を どう書いたらよくわかってないんですよね……

リリース手順も簡単にメモ。

  1. リリースブランチを切る
  2. npm ci相当で更新をかけ、ビルドし、テストなども通す
  3. アップデート処理をする(pnpmならpnpm version [version] --no-git-tag-versionをするとよい。vを含まないバージョン値が推奨?)
  4. ドキュメントとか--versionオプションのバージョン値を改め、コミット、PR
  5. PR取り込んだら、リリース・タグ・GitHub Release

詳しい手順はもう都度聞かないと自信がない…… 機械化は早めにすればするほど良さそうですね。

時代も加速、ボトルネックは凡人の判断?

とんでもない時代になってきました。すべてが加速している。

ボトルネックはわたくしが判断するという点になってきています。恐ろしいこと。

でも、最新に追従できない技術者であってはならないなぁと思います。今後も頑張ります。