AIがソフトウェア開発に与える影響についての真実

AIがソフトウェア開発に与える影響についての真実

時間が経つにつれて、手作業でコードを書く人は減るでしょう。しかし、AIがソフトウェア開発に与える真の影響は何でしょうか?そこでローコードの役割は何でしょうか?

1min read

今年ドバイで開催された世界政府サミットで、Jensen Huang(Nvidiaのグローダー)は興味深い発言をしました。「過去10~15年間、このような舞台に登った人のほぼ全員が、お子さんがコンピュータサイエンスを学ぶことが重要であり、誰もがプログラミング方法を学ぶべきだと言うでしょう。そして実際には、それはほぼ全く逆です。」このような発言は波紋を呼んだでしょうか?ある程度までは、そうですが。

しかし彼は本当に正しいのでしょうか?完全にはそうではありません。理由は、現実はより複雑であり、AIがソフトウェア開発の仕事に与える影響はまだ観察と議論が進行中だからです。

生成AI、ローコード、開発の新しい時代

現在、Qodo(以前のCodiumAI)のような自律的な生成AIシステムがあり、コード生成、ユニットテストの作成、ドキュメント作成用のAIアシスタントを提供しています。その一方で、App Builderのようなローコードツールは、AIフィーチャー(App Builder AI)、UIコンポーネント、コード生成などを備えており、開発サイクルを効率化しています。

詳細は App Builder AI:アプリケーション開発をどのように効率化するのか をご覧ください

AIを搭載したコード生成ツールは既に開発者がコードを書く方法を変えていますが、ソフトウェア開発の仕事が完全に乗っ取られるまでには、まだ長い道のりがあります。ソフトウェア開発の動学は著しく変わっていますが、現時点ではAI革命はほぼ見られません。

真のところは、AIが開発者の役割を排除するのではなく、以下の方法で増強することです。

  • 経験の浅いプログラマーが専門家開発者よりも大きな影響を受ける

  • チームは建築的な方向性と品質チェックを実行する必要がある

  • ジュニア開発者が単調で反復的なタスクを処理できるようになります

  • プログラミングを加速し、より速くコードを書きます

  • 次の生産性ブームをもたらしますが、スキルアップと適応を要求します

  • ビジネス価値、敏捷性、成長を蓄積します

したがって、コンピュータプログラミングは、ほぼ人間中心の追求であることが期待されています。そして、Jensen Huangが言ったことに同意できる点が1つあるとすれば、それはこれです。「世界中のすべての人がプログラマーになりました。これは人工知能の奇跡です。今、あなたはコンピュータにやるべきことをやらせることができます。」しかし、人間の能力と能力はソフトウェア開発の核心に留まっています。

AIと App Builderのアイコンとソフトウェア開発への影響

McKinseyが生成AIの経済的可能性報告書で指摘しているように、「生成AIの時代は始まったばかりです。この技術に対する期待は非常に大きく、初期のパイロットプロジェクトは非常に有望です。しかし、この技術の利点を完全に実現するには時間がかかり、ビジネスと社会のリーダーたちはまだ大きな課題に対処する必要があります。これらには、生成AIに内在するリスクの管理、労働力に必要な新しいスキルと能力の決定、及び再スキリングや新しいスキルの開発などのコアビジネスプロセスの再考が含まれます。」

ソフトウェア開発者の変わる役割

一部の人々は、生成AIとローコードプラットフォームが従来のプログラマーに取って代わり、コーディングスキルを陳腐化させる可能性があることを懸念していましたが、これは誤解です。むしろ、ローコード開発とAIは、反復的なタスクを自動化してプロセスを効率化し、開発者がコアビジネスロジックと機能開発に集中できるようにし、反復的な技術的タスクと協調の課題に費やす時間を減らすことを目的としています。

McKinseyは以下のように示しています。「生成AIは、個々のワーカーの能力を増強し、彼らの活動の一部を自動化することにより、仕事の解剖学を変える可能性があります。生成AIおよび他のテクノロジーは、今日従業員の60~70%の時間を占める仕事活動を自動化する可能性があります。」

その結果、AIがソフトウェア開発に与える影響により、技術的スキルと非技術的スキルの混在を促進するシフトがあります。開発者は利害関係者間のギャップを埋め、要件をモジュラーコンポーネントに変換し、自動化がどこでどのように最も効率的に適用できるかを特定することを学習しています。

AIがソフトウェア開発に与える影響についての真実

さらに、ローコードプラットフォームとAIにより、非技術者を含む幅広い専門家のグループに、より多くの機会が提示されるようになりました。これらのツールは手作業でのコーディングの必要性を排除しています。シチズンデベロッパーの台頭を見ており、彼らはアプリ開発にますます関与するようになっています。C級経営者と利害関係者は、ローコードツールをフュージョンチームをもたらし、開発の生産性を向上させるツールとして使用する方法を学んでいます。

一方、開発者の役割には、ローコードプロジェクトの監督、コード検査(App BuilderのようなローコードツールはAngular、Blazor、Web Components、Reactなどの一般的なフレームワーク向けにコードを生成するため)、ベストプラクティスのガイダンスなどが含まれるようになっています。

それでは、プログラマーの職の安全性は危機に瀕しているのでしょうか?

まだそうではありません。特定のAI制限があります。AIの進歩とローコード開発は職の安全性を直接脅かすものではなく、むしろ開発者が行う仕事の種類をシフトさせています。これらのプラットフォームは反復的なコーディングタスクを自動化しますが、ローコードソリューションが独立では処理できない複雑なシステムデザイン、カスタマイズ、及び高レベルな統合には、開発者はまだ不可欠です。

手作業でのコーディングの必要性を減らすことで、開発者はアーキテクチャ、問題解決、プロジェクトライフサイクル内でのより戦略的な役割など、より高い価値のタスクに集中できるようになります。企業がAIとローコードを採用して配信を加速するにつれて、これらのプラットフォームを最適化および拡張する方法を理解している開発者は引き続き不可欠です。彼らの専門知識は、AI駆動のワークフローをガイドおよび管理する役割に進化し、したがって彼らの職の安定性を強化します。

AIとローコードが開発ワークフローに与える影響は?

ローコードとAIのソフトウェア開発の仕事への影響は、次のように機能します。より高速なプロトタイピング、初期コーディング作業負荷の削減、及び利害関係者が早期にレビューできるビジュアル、多くの場合WYSIWYGインターフェースを通じたフィードバックサイクルの簡素化により、ワークフローを効率化しています。これは、より協調的で反復的な開発を可能にすることによるワークフローの変更です。非開発者が貢献でき、要件収集と初期段階の修正を加速させます。

ただし、これらの自動化プラットフォームは、生成されたコンポーネントがより広い建築と性能基準に合致していることを確保するための監督も必要とします。全体的には、プロジェクトのタイムラインを加速させていますが、開発者がカスタマイズと最適化のために時々介入する必要があるため、バランスも求めています。

ソフトウェア開発でAIができることとできないこと

現在、AIを通じたコーディングはまだ最適ではありません。AIとローコードが運用する背景には、依然として文脈制限があります。これらのツールは、小さく、シンプルで、独立したコード片を生成するのに最も適しており、プログラミングのベストプラクティス(再利用可能で、シンプルで、モジュラーなコードを書く)に合致しています。

観点

生成AI

ローコード

コーディングアプローチ

確率的モデル。NLPモデルを使用する場合

決定論的モデル

コード生成の一貫性

同じ質問が複数回尋ねられた場合でも、結果は各プロンプトで異なります

同じタスクに対して同じ出力を生成し、一貫性を保証します

使用範囲

小さく、シンプルで、独立したコード片の生成に最も適しています

自動化されたエンドツーエンドのソリューションを構築するのに適しています

文脈認識

コード片がより大きなシステムにどのように統合されるかを理解していません

システム全体を包括的に理解することで、結合されたコードソリューションを生成できます

ベストプラクティスの調整

モジュラーで再利用可能なコードの作成をサポートしていますが、全体的なプロジェクト認識がありません

システム開発への一貫性したアプローチを確保し、自動プログラミングプラクティスに準拠しています

制限

文脈によって制限され、複雑な統合とカスタマイズのための人間の介入が必要です

完全にカスタマイズ可能なソリューションを提供することはできませんが、体系化された構造化開発において優れています

ここInfragisticsの製品開発マネージャーであるZdravko Kolevは、「シニア開発者はAIをより効果的に使用しています。彼らはより良い質問をし、その見返りとして、より具体的なより良い答えを受け取ります。より少ない文脈を提供するジュニア開発者は、より一般的な回答を受け取る傾向があります。生成AIまたはローコードソリューションの使用は、一般的で既存の機能を取得する反復的なタスクに非常に有益です。これにより、開発者はより生産的になり、より短い時間でより速くより高品質な出力を実現できます。」と指摘しています。

AIがソフトウェア開発に与える影響はそれほど深刻ではありませんが、ローコード(非常に強力であっても)は、完全にカスタマイズ可能なソリューションを提供する際には、依然としてある制限があります。その結果、開発者は時代遅れになるリスクはありません。

プログラミングの品質とセキュリティはどうなりますか?

AIの仕事への影響は、より速いソフトウェアロールアウトを促進することです。つまり、AIはソフトウェアの書き込みの量を増やしていますが、必ずしも品質を向上させるわけではありません。結果は、しばしば、高性能なミッションクリティカルアプリに必要な品質と構造なしで、メンテナンスが困難なスパゲッティコードになります。

時間が経つにつれて、手作業でコードを書く人は減るでしょう。特にフロントエンドソリューションでは、ローコードは短時間で大きな価値を提供します。開発者は、より高品質なコードを生成するための正しい質問をする方法を知ることに、ますます焦点を当てるでしょう。最終的に、AIがソフトウェア開発に与える影響は、開発者をスキルのあるプロンプトエンジニアに進化させるよう促し、AIまたはローコードツールを正確にガイドして目的の結果を達成する方法を知るようになります。

それにもかかわらず、企業はコードとプログラミング概念を理解し、レビューでき、それを保守でき、アプリがベストプラクティス、アーキテクチャの原則、およびコーディング基準を満たしていることを確認できる人材を必要とします。

App Builderとソフトウェア開発への影響

ローコード

ai low code app builder app builder ai low code low code ai