AIでアプリ開発って簡単ですか?
エンジニアサイドが思う開発の辛さと楽しさ
ようやく前任から引き継いだアプリの開発が収束して、形としても満足いくものに出来上がった!!!なかなか言語化できないつらさで、結構大変でした!!
仕事ばかりやってられる訳でもなかったので、時間も限られる中でどう進捗出そうか苦心して苦心しました。
AIを使って開発してる本職エンジニアの方なら分かってくれると思いますが、「仕様を簡単に実現できるか」と言われるとそんな簡単ではないです。
ハードル上げに行ってるわけではないですが、実際に商用で使えるようなアプリに仕上げるってのは、そんな簡単に「10時間でできました〜」みたいなことではないですからね!!
詳細はここから書いていきます!
気になる方はぜひサブスクライブお願いしますね。
今回のスタート
弊社ではAI駆動開発を武器に、中小企業様の経営課題、事業課題を開発力で突破する受託開発・DX支援を実施しています。
前任のエンジニアが退職することになり、私の方でプロジェクトを巻き取ることになりました。
何が問題か
もうある程度アプリが形になってきてる。
見た目上は。
そう、わたしはこう見えてもエンジニア10年選手ではあるので、気にする観点がたくさんあります。
データ構造
業務要件を満たす仕様か
不具合が起こりにくい設計ではないか
異常系のカバーがされているか
要件漏れしてないか
などなど、ざっと挙げただけでも多岐にわたります。もちろん全然観点としてはこれだけでは足りません。
ちょっといじるだけで分かるんですよ。これダメだ。
作り直し地獄
前任者の仕様で疑わしいところは全てお客様に聞いて、仕様漏れをふさぐ。
これでうまくいくと思うじゃないですか。
いかないんですよ。
仕様の穴って、後から塞いでもなかなかしんどくてですね。となると、結局は作り直しなんですね。
疑わしいデータ構造の部分を全て作り直しました。
大変だった。
振り返るとissueとプルリクエストで300件を超えました。
仕様が変わる
お客様との話の中で、話してること、話してないことが明確に分かってきます。
これは顧客の声を元にシステム作る時にあるあるなんですが、「言われたものだけ」を作ると破綻するんです。絶対に漏れます。お漏らしです。
そこを拾うと、仕様の不整合がどうしても出てしまいます。
不整合を解消するには、前提となった根拠を議論して、ひっくり返す(こちら側からもあちら側からも)必要が出てきます。
そうするとまたデータモデルが崩れる箇所が出てきます。
この繰り返し。
結果的にとったアプローチ
あるべき論でこちらから提案する
両方とってどちらも立たずにならないように課題を潰す
途中からこれをやるためには、課題管理が最も重要です。
そのため、改めて私が入ったタイミングで、スプレッドシートでの課題管理表を作成し、気になる点は全て(互いに)書き出していくようにしました。
すると、めっちゃ出てくるんです。
これ、チャットじゃ無理ですからね。絶対にレコードとして管理しないとダメです。
なんせチャットでは漏れます。
結果
かなり端折ってしまいますが、3月からの2ヶ月半で
約65,000行。
AI時代に「これは多くない」と思われるかもしれませんが、ほぼ出来上がったと言われてた矢先の改修です。
普通にヤバいよね。
まとめ
AIで楽に開発できるアプリって、
対向システムが少ない
データベースのテーブル数が少ない
利用者が2つくらいまでの立場
AIが内部で呼ばれない
こんなケースが多いのかなと思ってます。
今回はかなりそこから外れてたために、本来であれば仕様が複雑化してるはずでした。
しかし、そうなってなかった。
ということで教訓にしてほしいこと
↓↓
勘所、着眼点、AI活用したとしても、そこに渡すコンテキストとして全て大事です!!
要件は?議事録は?全てがコンテキストになる
とにかく手戻りは悪。仕様は最初で仕留める。
皆さんには苦しんでAI駆動開発して欲しくないので、
もっとお客様との駆け引きや仕様決定のやり取りを楽しんで、期待値はほどほどに調整しながら開発プロセスから学びを得てください!!
辛い辛い言ってますが、案外フルスタックで自分がまるっと開発したのは久し振りだったので、そういう意味では学びになったし、楽しかったですけどね!
さいごに
こんな感じで、エンジニアならではのAI活用トークも記事にしていきますので、ぜひサブスクライブよろしくお願いします!!

AIアプリ開発の難しさと楽しさの話、エンジニアサイドからの率直な発信として参考に読ませてもらいました。開発と運用の両側からSNS運用を時短させてる個人開発者で、こういう投稿はかなり参考になります🥺フォローさせていただきましたので、フォロー返していただけたら嬉しいです。