AIコーディング時代の技術負債と向き合う話
非エンジニアの技術負債について
はじめに
以前一緒に働いていた人(以下Aさん)から連絡が来た。
Aさん:「最近個人で開発してリリースした、iOSアプリの改修を手伝ってほしい」
課金・サブスク機能を実装したいとのこと。ネイティブアプリは初めてだったが、面白そうだと思い話を聞くことにした。
最初の違和感
ざっくりアプリの概要など最初の打ち合わせで少し引っかかることがあった。
y(私):「コードはどこで管理していますか?」
Aさん「ん? ローカルだよ。」
GitHubやバージョン管理は行なっていないとのこと。 リリース済みのプロダクトがバージョン管理なしで動いている。
y:「どうやって複数人で開発するんですか? githubは使わないんですか?」
Aさん:「git使うメリットがわからないけど、ついでに色々聞こうかなって」
y:「。。。。」
ペアリングでGitHubへ
その日のうちにペアリングでGitHubリポジトリを作成してpushまで一緒に進めた。 すべてのコードを見ることができないので、一旦ローカルのソースコードをpushしてもらうようにした。(gitgnoreは確認していなかった)
ここで早速問題が発覚した。GitHubがpushを自動でブロックしたのだ。理由はAPIキーがコードに含まれていたから。 GitHubのシークレットスキャン機能が守ってくれた。githubってそんな機能もあるのね、初めて知った。
そして画面共有でリポジトリを確認すると、ファイル数が2700以上。
gitignoreが未整備なため、node_modules .env、などが全てpushされていた。
さらにold/というフォルダがあり、タイムスタンプ付きのファイルが大量に並んでいた。手動バージョン管理の痕跡だった。
AIコーディング時代の副産物
Aさんは元々開発経験がある。ただ10年以上のブランクがあり、現在はChatGPT・Claude・Gemini・manusなどを駆使してコードを書いているとのこと。
Aさん:「自分はどのファイルが何をしているからさ」
そう言っていたが、gitignoreが未整備で2700ファイルが存在している現実がある。 AIコーディングで「動くものが作れる時代」になったことで、品質管理の概念がなく技術負債を多く抱えててもリリースまで到達できてしまう。
「バイブコーディング」 非エンジニアが自然言語でシステム開発を雰囲気でできる。 アイデアのある人たちがソースコードを保有できる画期的な素晴らしいものだと心の底から思っている。
しかし、サービスは作って終わりではない。ユーザが作った本人のみなら何も問題はないが、 そのサービスが誰かに使われ続ける限り、直し続けれる環境、仕組みを担保することが 人間のコアスキルになるのではないかと今回の件で感じた。
おわりに
AIコーディングで「動くものが作れる時代」だからこそ、「ちゃんと作れる人」の価値は上がっているのかもしれない。
この案件がどう進むかはまだわからないが、経験として記録していこうと思う。