オープンエーアイのChatGPTは、サービス開始から2ヶ月で1億人のユーザーを獲得したと推定され、コンピューティング史上最も急成長したコンシューマー向けアプリケーションとなった。しかし、興奮が冷めやらぬ一方で、人工知能(AI)が単なる技術の誇大広告なのか、それとも「本当の」次の大きな出来事なのかという疑問が残る。
1997年から98年にかけて、マイクロソフトはVisual C++を使い、ソフトウェア開発プロセスの民主化に貢献した。それまではユニックスやその他の言語がこの分野を支配しており、コーディング能力はVIエディタのスキルに比例していた。ウィンドウズでは、シンプルなテンプレートを活用したフレンドリーなコードエディターが使えるようになった。アプリケーション固有の変更箇所を教えてくれ、プログラムをコンパイルすれば、Windowsアプリケーションの「Hello World」がビンゴとなった。
これはAIなのか?それとも、テクノロジーがコーディングの世界を民主化した例なのだろうか?
2023年にズームインすると、GitHub Copilotは入力したコメントだけに基づいてプログラムを書いてくれる。
我々は確かに長い道のりを歩んできた。
しかし、2008年頃に勢いを増し、今もなお健在であるStack Overflowをどう見るかという疑問が生じる。今日、ほとんどのコーダーは、すぐに回答が得られるこの便利なプラットフォームを活用し続けている。答えをコピーペーストするだけではないが、コードはメモ帳にコピーされ、オリジナリティを高めてからプログラムに追加されることが多い。
好むと好まざるとにかかわらず、Stack Overflowのようなツールは、ソフトウェア開発の民主化に向けて進行中の勢いを示す素晴らしい例でもある。
繰り返しになるが、プログラムを書く前に、私たちは目の前の論理的な課題を解決し、コードの構造を設計し、他のいくつかの基準を満たす必要がある。AIがロジックを書く手助けをしてくれるのか?別のプログラミング言語で「Hello World」と言いたいだけなら話は別だ。
経験上、AIは、すべての構文を覚え、どの命令がメモリ使用量を少なくするかなどを知っている優秀なプログラマーと、何とかしてコードを提出し、バーを叩くことが仕事である普通のプログラマーとの間のギャップを縮めるのに役立つだろう。
説明のために、もうひとつの役割、プログラム・マネージャーを取り上げてみよう。AIはプログラム・マネージャーをどのように支援するのだろうか?
AIは、自動化されたステータス・レポートの作成、ダッシュボードの作成、プログラムの進捗状況の通知などを支援することができる。つまり、ワークフローをさらに自動化・合理化し、人為的ミスによる冗長や遅延の可能性を減らすことができる。とはいえ、人間が主導する明確な役割を果たすことに変わりはない。
しかし、もしあなたがプログラム・マネージャーであったなら、何かがおかしいと直感することも知っているはずだ。それは、あなたに質問を続けさせ、データが隠しているものを突き止めるまで切り刻ませ、そして、"このままでは本当に遅れるぞ "と叫びそうにさせるものだ。そして、それに基づいて行動する!
もしプログラム・マネジャーがプロジェクトの遅れを本当に知るために常にステータス・レポートを見る必要があるとしたら、そのシナリオはちょうどクリケットのバッターがテレビのリプレイでウィケットがどのように割られたかを見ているようなものだ、と私たちは感じている。遅すぎるのだ。
AIは確かにソフトウェア分野を民主化する原動力として役立ち、十分な意思決定ツールを提供し、データから深い洞察を集めるのに役立つだろうが、最終的な推論には依然として人間の手が必要だ。
未来は、反対の予感にもかかわらず、それほど暗くはない。
ドメイン固有のラージ・ランゲージ・モデル(LLM)を活用することで、汎用的な自動化スクリプトを追加作成するだけでなく、与えられたフォーマットとドメイン知識に基づいて、複数のテストケースとシナリオをほぼ瞬時に生成できるようになった。これらは、テスト自動化フレームワークのパラメータが必要とする特定のデザインパターンに合わせて調整する必要があります。
テスト結果からAIがさらに推論を行うことも可能で、これには、いくつのテストが同時に実行されたのか、すべてのデバイスが同時に再生した時間はどのくらいだったのか、などが含まれる。しかし、プログラムがどこで壊れるかという知識は、過去に何が壊れたかという知識、アドホックテスト、そしてより重要なことだが、どこでエラーが発生するかという感覚から生まれる。私たちが目撃しているのは、より大きな人間と機械の相乗効果の台頭である。
研究によれば、人間の手が必要であるにもかかわらず、トレンドとしてのAIはその範囲を拡大し続けるだろう。では、AIはここにとどまるが、それはテスターの仕事を奪うことを意味するのだろうか?おそらくそうだろう。
しかし、テクノロジーが人間に取って代わるというよりも、こうした新たなソリューションに関する知識と活用能力を持つ個人が、同業者に取って代わり、次のレベルの技術民主化を推進することになるだろう。
過去が示しているように、未来は本当に大胆に採用し、曲線の先端にとどまる人々のものだからだ。