2025/12/09

テクノロジー

AI時代も変わらない、ソフトウェア開発の基礎

この記事の目次

    本記事は【Advent Calendar】の7日目の記事です。


    組織でのAI活用をどう進めるのか。その土台整備について調査を進める中で、1つの結論に至りました。国内外の著名なエンジニアや調査レポートが一貫して指摘していたのは、従来のソフトウェア開発の原理原則がこれまで以上に重要になるということでした。AI時代だから何か特別なことをするのではなく、今まで良いとされてきたことを、地道に学習と実践をしていくしかないと考えております。

    以下では、この考えに至った情報について、述べていきます。

    AIは「増幅器」である

    2025年のDORAレポートは、AIの本質を「増幅器」と表現しています[1]。高パフォーマンス組織の強みを拡大する一方で、苦戦している組織の機能不全も拡大します。強力な自動テスト、成熟したバージョン管理、迅速なフィードバックループといった堅牢な制御システムがなければ、AIによる変更量の増加は技術負債につながる危険性が高くなります。

    ファインディ株式会社CTO室の高橋裕之氏は、日本の現状に警鐘を鳴らしています[2]。IT従事者798名への調査で、開発フレームワークについて「よくわからない」と「ウォーターフォール」が合わせて55%を占めました。旧式のバージョン管理ツールを使用している割合も高く、GitHub Copilotなどを活用できる土台すら整っていません。高橋氏は「これらは積み重ね。一足飛びには手に入らない」と述べています。DevOpsやAgileといった基盤がなければ、AI導入は逆効果になるとの考えを述べていました。

    本質的な課題は変わっていない

    株式会社LayerXが主催のAI Coding Meetup #2, #3で和田卓人氏は、AIによってテストを書くハードルが大きく下がったと述べています[3][4]。学習コストも実装コストも、AIの力でクリアできるようになりました。しかし、0からAIに書かせるとテストの品質はあまり良くないといいます。

    問題は、AIがモックオブジェクトを多用してカバレッジを上げようとすることです。和田氏はこれを

    • 2011年から13年頃にソフトウェアエンジニアリングの歴史で起こったことを綺麗にトレースしている

    と指摘しています。当時、ユニットテストに情熱的な人たちがテストを書きまくった結果、モック地獄に陥りました。AIは今、同じ轍を踏もうとしています。

    では、どうすればいいのか。和田氏の答えは、人間側が良いお手本を示し、それを模倣させること。AIは模倣が上手なので、良いテストコードを見せれば良いテストを書いてくれます。逆に言えば、構図は変わらないのです。プロジェクトは最初に書かれた品質を薄く引き延ばす方向にしか進まない。人間側がどういうお手本を見せるかに、今のところはだいぶ影響されている、と和田氏は述べています。これはDORAレポートの「増幅器」という指摘と方向性が一致しています。良いものは良く増幅され、悪いものは悪く増幅される。結局、分かっている人でなければ、ある程度のクオリティのコードをAIに書かせることすらできないという結論に到達するのではないかと考えられます。

    基礎知識がないと問題に気づけない

    合同会社DMM.comのアプリケーションアーキテクト・ミノ駆動氏は

    • 日進月歩なAI技術に右往左往せず。今こそ基礎に立ち返ろう

    と述べています[5]。的確に指示する専門知識があっても、不十分な回答が返ってくることがあります。その不十分な回答を判断できず、技術的負債を知らず知らずのうちに拡大させてしまう。そうなるとAIを使っても開発がスケールしない。

    元マイクロソフトのエンジニアの中島聡氏も同様の見解を示しています[6]。AIは「動くコードを書く」ことには長けていますが、必ずしも保守性や拡張性まで考慮された「良いコード」を書いてくれるわけではない。エンジニアには「コードが汚くなってきたな、リファクタリングしなければ」と自ら気付き、能動的に行動することが要求されます。この判断には、設計の原理原則やソフトウェア品質特性への理解が不可欠です。

    海外の視点

    オライリーメディアの創立者であるティム・オライリー氏は

    • 新しく学び、行うべきことがたくさんあります。

    と述べています[7]。また、同じ記事内で、Palantirのシャム・サンカー CTOの言葉も記載されていました。

    • プログラマーの役割は、従来型ソフトウェアで可能なこと、AIで可能なこと、依然として人間が行う必要があること、そしてそれらをどう組み合わせて実際にワークフローを達成するかを理解することだ

    Zedエディターの創設者ネイサン・ソボ氏は本質的な問いを投げかけています[8]

    • 職人として、私たちはAIに注目し、「AIはより優れたソフトウェアの開発にどのように役立つのか?」と自問すべき

    コード生成が容易になっても、技術的負債が積み上がるのに対応する必要性は常に存在し続ける。それが周り回ってAIの活用も妨げる要因になることを指摘しています。

    Microsoftは「エンジニアリングの基礎」を基盤の1つとして位置づけています。AIによる効率的で高品質な開発に注力することに加えて、コードリポジトリ、ビルド/リリースパイプライン、開発およびテスト環境のセキュリティのベストプラクティスに従い続けると宣言しています[9]。AIを積極的に導入しながらも、従来のエンジニアリングの基礎を土台にしていることがわかります。

    学ぶべき内容は変わっていない

    調査を通じて感じたのは、組織も個人も、学ぶべき内容はAI登場以前と大きく変わっていないということです。変わったのは、学ぶべき量がまた増えたこと、そして基礎の重要性がより明確になったことです。

    重要視されていた要素を整理すると、以下のようになります。

    • 設計の原理原則
    • ソフトウェア品質特性の理解
    • テスト戦略とCI/CDの成熟
    • バージョン管理とコードレビューの文化
    • DevOpsやAgileといった開発プロセスの基盤

    これらはすべて、AI登場以前から「良い開発」の条件とされてきたものです。

    高橋氏の言葉を借りれば、DevOpsもAgileも「技術」ではなく「文化・方法論」です。文化は購入できず、組織自身が育てるしかありません。同様に、エンジニアとしての基礎力も、自分自身の手で築き上げるしかありません。

    AIは、技術的な課題に加えて、組織課題まで把握して解決してくれるようになるのでしょうか?

    少なくとも現時点では、その土台は人間が築く必要があると感じています。AIは強力なツールですが、それを使いこなすための土台は、地道な学習と実践の積み重ねでしか手に入らないと考えております。合同会社DMM.comのAX戦略[10]やフリー株式会社の取り組み[11]など、他社の取り組みも参考にしながら改善していきたいです。

    ジュニアエンジニアとして、AI時代でも人間が基礎を学ぶことの重要性がわかり、嬉しくもあり、自分の足りないところをたくさん感じて悲しくもなりました。地道に頑張っていきます。

    最後まで読んでいただきありがとうございました。

    イベント告知

    12月23日にイベントを開催します!申し込みはこちらから▼

    https://mynaviit.connpass.com/event/376769

    ※本記事は2025年12月時点の情報です。

    著者:マイナビエンジニアブログ編集部