📝 2025年06月29日 05:22 の投稿
以下のテキスト情報から、自然で読みやすいブログ記事を作成してください:
プロジェクト完成度の法則:AIコーディングで学んだ厳しい現実
ポエム
AI
コーディング
ChatGPT
ClaudeCode
最終更新日 2025年06月29日
投稿日 2025年06月29日
22 views22 ビュー
31153dc1-f9d2-45a6-8706-0610850eeb63.png
はじめに
うーむ、久しぶりにこんな技術ネタでブログを書くことになった。最近のAIコーディングブームに乗っかって、いろいろ試してみたんだが、結果的に時間を大量に無駄にしてしまった話をしたいと思う。
そして、その過程で発見した「プロジェクト完成度の法則」について語ってみたい。これは、AIコーディングに限らず、すべての開発プロジェクトに当てはまる重要な法則だと思う。
まあ、アクセス数も増えてきているし、こういう実体験ベースの話も需要があるんじゃないかと思うんだよね。
プロジェクト完成度の法則を実証する体験
この法則を実感したのは、以下のような体験からだった。
パターン1:0%スタート(失敗例)
「ブログシステム作って」とAIに頼む
↓
いかにもそれっぽいコードが出力される
↓
実際に動かそうとするとエラーの嵐
↓
修正に修正を重ねるが、新しい問題が次々発生
↓
結果:何日も格闘して結局使い物にならない
パターン2:100%完成プロジェクトの活用(成功例)
既に動いているオープンソースプロジェクトをベースにする
↓
AIに「この機能を追加して」と依頼
↓
既存の構造に沿った修正案が提示される
↓
結果:短時間で安定した機能追加が実現
この違いは何か?土台の有無なんだよね。
なぜAIは「雪の家」しか作れないのか
AIコーディングの本質的な問題は、パクりコードの寄せ集めだということ。GitHubにあるコードや、Stack Overflowの回答、チュートリアルサイトのサンプルコード...そういうのを適当につなぎ合わせてるだけ。
だから、全体としての整合性がない。
例えば:
フロントエンドはReact(の古いバージョン)
バックエンドはFlask(セキュリティガバガバ)
データベースはSQLite(本番環境に不適)
それぞれは動くかもしれないけど、組み合わせた時の整合性なんて考えてない。
しかも、AIって「高機能にしよう」とする傾向があるから、こっちは「簡単なブログシステム」って言ったのに、勝手にユーザー認証機能、コメント機能、管理画面、メール通知機能...なんでもかんでも付けてくる。
結果、複雑すぎて自分でも理解できない「雪の家」の完成。
イメージで言えば「子供のお遊び」レベル。試験的なものとか、とりあえず見かけ上動いているデモとか、そういうレベルなら全然イイんだけどね。本格的な開発には使えない。
ワンショットコードの現実
結論から言うと、AIがワンショットで出してくるコードで、そのまま動くものなんてほぼない。たまに動くとしても、それは本当に簡単なものか、運が良かっただけ。
「Hello World」レベルなら動くかもしれないけど、実用的なアプリケーションを作ろうと思ったら、結局は自分で書き直すことになる。それなら最初から自分で書いた方が早いんじゃないか?って思うよね。
発見:プロジェクト完成度の法則
数ヶ月間のAIコーディング格闘を通じて、重要な法則を発見した。これを「プロジェクト完成度の法則」と呼んでいる。
【プロジェクト完成度の法則】
100%完成しているプロジェクト → そのまま完成度高いレベルで使える
0%から始めるプロジェクト → AIでの成功率は0%
この法則は、家の建築に例えるとよく分かる。
雪で作った家は気温で溶ける。泥の家も雨で崩れる。でも、鉄筋コンクリートの家は台風が来ても大丈夫。AIが生成するコードは、見た目は立派だけど、構造的には「雪の家」「泥の家」レベルなんだよね。
つまり、屋台骨ができるまでは自力でやらないとダメ。やっぱり家と一緒だよねえ。
ゴミコードリポジトリの完成
気がついたら、自分のGitHubリポジトリには、「何か分からん状態で大量ゴミぶら下げて動いているプロジェクト」が量産されていた。本当に情けなくなるよ...
コミットログを見ると、「AI生成コード追加」「修正1」「修正2」「また修正」「やっぱり書き直し」みたいな感じで、まともな開発の軌跡が全然ない。
プロジェクト完成度の法則に基づく正しい開発戦略
この法則を理解してから、開発戦略を根本的に見直した。
鉄筋コンクリートの家を建てる手順
STEP1:自力で屋台骨を構築(0%→30%)
プロジェクト構造の設計
基本的なアーキテクチャ
コア機能の実装
セキュリティ設計
STEP2:機能別スニペット集で補強(30%→80%)
データベース接続のスニペット
ユーザー認証のスニペット
APIエンドポイントのテンプレート
フロントエンドのコンポーネント
STEP3:AIに細部の作業を依頼(80%→100%)
テストコードの自動生成
ドキュメント作成
コードレビュー
バグの原因調査
完成度別:AIとの適切な付き合い方
0%-30%(構築期):AIに依存してはダメ
全体設計は自分で考える
コア機能は自分で実装
セキュリティは自分で設計
30%-80%(成長期):選択的にAIを活用
動作が確認できる小さな機能単位で利用
既存コードとの整合性を常にチェック
必ず自分でテストしてから組み込む
80%-100%(仕上げ期):AIに丸投げOK
動かない原因調査とか、そういう難解な作業
テスト自動化
ドキュメント整備
メンドクサイものはAIに丸投げがベター
プロジェクト完成度の法則が教えてくれること
この法則から分かるのは、ある程度プログラム経験者なら理解できる重要な真実:
結局、最初からAI提案のものは「どっかのパクりコードの寄せ集め」に過ぎない。ワンショットで出されたコードは、ほぼ動かないと考えた方がいい。たまたまラッキーなものや、難易度の低いものは可能だが、それは例外。
気がついたら、自分のGitHubリポジトリには「何か分からん状態で大量ゴミぶら下げて動いているプロジェクト」が量産されていた。本当に情けなくなるな...
でも、この経験も無駄じゃなかった。プロジェクト完成度の法則を発見できたからね。
これからのプログラミング学習
これから何年かこの業界にいると思うけど、やっぱり基本的なプログラミング能力は必要だと思う。AIがコード書いてくれても、それを読んで理解できなかったら意味がない。
特に、ある程度のプログラム経験者なら、AIが生成したコードの問題点は分かってくると思う。逆に、初心者がいきなりAI使ってコード書こうとすると、もっと大変なことになりそう。
「AIがあるから勉強しなくていい」じゃなくて、「AIを使いこなすために基本を学ぼう」って考え方の方が建設的だよね。
まとめ:プロジェクト完成度の法則を活用しよう
【プロジェクト完成度の法則】
100%完成 → 完成度高いレベル
0%スタート → 成功率0%
この法則を理解して、適切にAIを活用すれば、開発効率は格段に向上する。雪の家じゃなく、鉄筋コンクリートの家を建てよう。
屋台骨は自力で。細部はAIと協力で。面倒な作業はAIに丸投げで。
この使い分けができれば、AIコーディングも怖くない。また面白いネタがあったら書いてみるつもりです。
要件:
1. 自然で読みやすい文章にしてください
2. 画像解析結果については、ぼやかして抽象化してください
3. 技術的な分析よりも、読者が楽しめる内容にしてください
4. 1500字以内の本文にしてください
https://lifehacking1919.hatenablog.jp/entry/2022/01/30/153627 と口調を合わせてください
5.タイトルは不要で本文のみとする
記事として完成した形で出力してください。
※ AI生成サービスが一時的に利用できないため、シンプルな形式で投稿しています。