AI支援開発とは

AI支援開発は、匿名化された何百万件ものコードパターンから得られた専門知識を活用して、開発者がソフトウェアを開発する際にコンテキストに適したツールやパターンを推奨する機能です。これにより、複雑なタスクにおいてもロジックフローをすばやく正確に作成できるようになるため、開発に集中し、生産性を高めることができます。

また、オンラインヘルプやその他の情報源をタイミングよく提示するヘルプと、ビルド済みコンポーネントのサジェスチョンによって、負担や知識不足を解消できます。

AI支援開発のメリット

AI支援開発には主に2つのメリットがあります。

1つ目のメリットは、コーディングスキルがないユーザーでもソフトウェア開発に参加しやすくなることと、既存の開発者のスキルを強化して開発効率や生産性を向上させられることです。開発者の欠員は米国だけでも100万人にのぼっており、AI支援開発がこの人材不足の解消に役立つ可能性があります。

2つ目のメリットは、AIで開発のベストプラクティスを特定し、徹底させることができる点です。ベストプラクティスに従わないと、ソフトウェアの実行速度が低下したり、バグやセキュリティ脆弱性が発生しやすくなったりします。AI支援開発によってこれらを防止することで、将来的にも有効でパフォーマンスやレジリエンスの優れたソフトウェアを開発できます。

AI支援開発の仕組み

このトピックの本題に入る前に、まず人工知能(AI)の定義をはっきりさせておきましょう。

OutSystemsでは、タスク(ここではコードの記述)を高速化したり自動化したりするための機械学習や自動推論といったテクノロジーなどを指す言葉としてこの用語を使用しています。

そのため、OutSystemsにおけるAIの利用は、機械学習を適用して開発者をサポートしたり、開発者が職務をより迅速に、エラーをあまり発生させず遂行できるようにしたりするなど、個人への配慮を基本としています。

ソフトウェア開発ライフサイクル(SDLC)を通じた開発プロセスの支援にAIを適用するにあたり、OutSystemsでは3本の柱を意識しています。今説明した仮想エキスパート機能は、ガイダンスの提供、一般的なタスクの実行、コードのレビュー、ソフトウェア品質の検証を行うなど、テックリードのような役割を果たします。

  • ガイダンス: 開発者が行き詰まったときに適切な支援をAIで提供し、すぐ開発作業に戻れるようにします。たとえば、スマートガイダンス機能には、開発環境からアクセスできるコンテキスト化された検索エクスペリエンスがあります。これは、作業中のタスクの完了に役立つオンラインリソースを提供します。ロジックフローの次のステップのサジェスチョンを表示する機能もあります。最大6つのサジェスチョンが提示されるため、わざわざサイドメニューに移動して使用したい要素を多数のノードやデータから探し出す必要がなくなります。
  • 自動化: 多くの一般的な操作を自動化できます。反復的な作業や時間のかかる作業には機械学習が適しています。初級開発者のスキルでは手に余るようなタスクについては、過去の類似するプログラミングタスクから学習したデータを自動化によって適用できます。これにより、開発者の生産性と集中力が向上します。
  • 検証: Discovery Toolは、AIを利用してモジュール間の依存関係を分析し、違反を特定して、適切に配置されていない要素(アクション、画面、エンティティ)に赤色のフラグを表示します。たとえば、アーキテクチャ検出ツールは、ベストプラクティスを徹底し、重複するコードを特定することで、技術的負債を削減します。

AIは、OutSystemsのパートナーが使用しているテストツールでも重用されています。テストが必要となる重要な領域を特定し、その後のテスト実行を自動化することで、DevOps時代のスピード感ある生産スケジュールに遅れることなくテストを実施できるのです。

アプリケーションのテストが失敗した場合も、AIが修正の必要な領域を開発者にフィードバックしてくれます。

AI支援開発の未来

優秀なDevOps担当者は1日に何度もクリーンなコードを本番環境にリリースします。AIによる自動化を利用しなければ、このようなスピードを維持することはできません。ましてや加速させることなど論外でしょう。

OutSystemsとしては、開発プロセスにおけるAIの役割は今後さらに拡大すると予想しています。AIは、シンプルなタスクをより簡単にし、複雑なタスクを対処可能なものにします。また、不要なタスクや反復的なタスクを減らしつつ、複雑なアプリケーションに求められる性能は維持します。

OutSystemsのミッションは、ソフトウェアの力によってあらゆる企業のイノベーションを支援することです。OutSystemsプラットフォームは、開発プロセスの各段階にAIを導入することにより、開発チームが既存の能力を最大限発揮し、現状維持のためだけの作業に時間を費やすのではなく、真の違いを生み出すソフトウェアの開発に集中できるようにします。

AIは、ソフトウェア開発ライフサイクルだけでなく、エンドユーザーアプリケーションのエクスペリエンス向上にも役立ちます。OutSystemsプラットフォームで簡単に実装できる自動画像検出、センチメント分析といった機能がそのよい例です。

先ほど説明したとおり、AI支援開発はソフトウェアエキスパートであるテックリードのような存在として、作業中いつでも開発者に寄り添い、サポートします。先ほど説明したとおり、AI支援開発はソフトウェアエキスパートであるテックリードのような存在として、作業中いつでも開発者に寄り添い、サポートします。