AI(人工知能)が実用化されると、人間の仕事を奪われてしまうのではないかと心配になりますよね。
実際「10〜20年後には、今の仕事の約半数はAI(人工知能)やロボットに奪われてしまう」というショッキングなレポートが、国内のシンクタンクから発表され、コーディングやデバッグが主要業務のプログラマーはAI(人工知能)に取って代わられる可能性が高いとされています。
システムやソフトウェアは、おおまかには「企画、設計、開発、運用保守」というサイクルで開発運用しますが、その中でのプログラマーの開発フェーズは、設計結果に基づいてのコーディングやデバッグを担当。
ですが近い将来、開発工程の全ての業務を自動化することは難しいものの、AI(人工知能)を適用することにより、定型的なコーディングやデバッグなどのプログラマーの業務は、AI(人工知能)に取って代わられてしまうでしょう。
しかし、プログラマーという職業がなくなるわけではなく、むしろ仕事の内容が変わっていきます。
それでは今回は、AI(人工知能)による開発や運用保守の自動化が進む中で、プログラマーの役割の変化、そして変化した役割に適応するにはどんなスキルを磨けばよいかを、わかりやすくお伝えしましょう。
なぜプログラミングが必要か
まず、なぜプログラミングが必要なのかお話しします。
この機械語のプログラムは0と1の数字の羅列ですから人間にはものすごくわかりずらく、プログラム作成にはものすごく手間がかかり、また、間違いが多いものでした。
そこで、プログラム言語というコンピュータ用の人工的な言語規則を定めて、この言語でソースプログラムを記述し、それを機械語のプログラムに変換するというプログラム作成のやり方が生まれました。
プログラム言語で書かれたソースコードは、人間が読んで理解しやすく書かれています。ですからこれにより、一挙にプログラム作成が容易になり、コンピュータの利用が普及したのです。
自動化できることは人間からコンピューターに仕事がシフトする
では、そのプログラムの仕事をコンピュータがやるというのはどういうことでしょう。
すなわち、コンピュータがプログラム作成に参加しているのです。
そして、ITが進展するにつれて、プログラム作成の要件を与えてソースコードを自動的に生成することが試みられました。
現在では、仕様を画面から入力するとソースプログラムを作成してくれるモデリングツールが数多く製品化されています。
ただし、上記のコンピューターが行う作業は、与えられて規則に従って変換作業を実施するのみで、ゼロからプログラムを生み出しているわけではありません。着実にプログラム作成の自動化は進んでいますが、まだまだ、人間の力が必要です。
AI(人工知能)が行うプログラミングとは
それでは、「コーディングやデバッグが主要業務のプログラマーはAI(人工知能)に取って代わられる」という話は嘘なのでしょうか。
しかし、AI(人工知能)的なアプローチでは間違いもありますし、なぜその結論に至ったかという説明ができません。したがって、AI(人工知能)が要件を満たすプログラムをゼロからコーディングすることは難しいでしょう。
こうした点を踏まえると、機械やAI(人工知能)に仕事を奪われないためには、プログラマーとしては以下のスキルを高めることが必要です。
今後プログラマーが磨くべきスキル:ゼロから作り出す力
プログラマーの主要な仕事はコーディングとデバッグ(テスト)ですよね。テストはLSI開発などではほぼ自動化されており、プログラム開発でも単体テストなどから順次自動化されるでしょう。
コーディングには以下の2つの側面があります。
- 仕様書に記述された要件を指定のプログラム言語を前提として手順化すること。
- その手順をプログラム言語の規則に従ってソースプログラムとして書き下すこと。
手順は何通りもあり、プログラマーの個性が出ます。
うまい下手、効率的か、エレガントかなどいろんな評価ができるでしょう。しかし、どのプログラムでも設計要件を満たすような手順を新しく生み出しています。
この「新しく生み出す」ことは、現在のAI(人工知能)にはできません。
今後プログラマーが磨くべきスキル:マネジメントする力
ところで、システムが複雑になればなるほど、規模が大きくなればなるほど、多くのプログラムが必要となり、多数のプログラマーが参加するプロジェクトを実施することになりますよね。
こうした共同作業ではプロジェクト計画づくり、進捗管理、品質管理、メンバ間の調整などプロジェクトのマネジメントの成否が、システムの成否に大きく影響します。
今後プログラマーが磨くべきスキル:コミュニケーションする力
そして、システムの開発を円滑に進めるには、ステークホルダーやプロジェクトメンバー間の円滑なコミュニケーションが必要です。
今チャットボットなどAI(人工知能)が人間なみの会話をこなすようになっていますが、QAなど人間の質問に答えることを主眼としており、まだまだ、プロジェクトメンバー間のコミュニケーションを円滑にするのは人間の仕事。
今回は、AI(人工知能)に負けないために、プログラマーが磨くべきスキルについてお話ししました。AI(人工知能)やロボットの時代のプログラマーの姿が想像できましたよね。
まとめると、AI(人工知能)が行うプログラミングとは
- 今後プログラマーが磨くべきスキル:ゼロから作り出す力
- 今後プログラマーが磨くべきスキル:マネジメントする力
- 今後プログラマーが磨くべきスキル:コミュニケーションする力
今後、ますますAI(人工知能)やロボットが生活の中に浸透するでしょう。いわゆる機械化や自動化がAI(人工知能)によって飛躍的にレベルアップし、人間の行動の大部分を代替できる能力を身に付けてきます。
そして、ベルトコンベアが工場で働く人から単純作業を解放したように、AI(人工知能)はシステム開発やソフトウェア開発の現場から比較的定型的なプログラミングやテスト作業から開放するでしょう。そして、システム運用監視の現場でも同様な状況が見られるようになります。
日々進化することはなかなか厳しい事ではありますが、一歩一歩進化を実感できることはやりがいにもつながりますよね。ぜひ、普段からスキルアップに努めていきましょう。
コメントをどうぞ