AI(人工知能)ニュース

AIに仕事を奪われないために、プログラマーが磨くべき3つのスキル

仕事が奪われそうなイメージ

AI(人工知能)が実用化されると、人間の仕事を奪われてしまうのではないかと心配になりますよね。

実際「10〜20年後には、今の仕事の約半数はAI(人工知能)やロボットに奪われてしまう」というショッキングなレポートが、国内のシンクタンクから発表され、コーディングやデバッグが主要業務のプログラマーはAI(人工知能)に取って代わられる可能性が高いとされています。

システムやソフトウェアは、おおまかには「企画、設計、開発、運用保守」というサイクルで開発運用しますが、その中でのプログラマーの開発フェーズは、設計結果に基づいてのコーディングやデバッグを担当。

ですが近い将来、開発工程の全ての業務を自動化することは難しいものの、AI(人工知能)を適用することにより、定型的なコーディングやデバッグなどのプログラマーの業務は、AI(人工知能)に取って代わられてしまうでしょう。

しかし、プログラマーという職業がなくなるわけではなく、むしろ仕事の内容が変わっていきます。

それでは今回は、AI(人工知能)による開発や運用保守の自動化が進む中で、プログラマーの役割の変化、そして変化した役割に適応するにはどんなスキルを磨けばよいかを、わかりやすくお伝えしましょう。

なぜプログラミングが必要か

プログラムのイメージ

まず、なぜプログラミングが必要なのかお話しします。

そもそもコンピュータは指示をもらわないと動けません。この指示を記述したものがプログラム。プログラムとは、0と1が並んだ2進数という数値で記述された機械語というコンピュータ専用の命令群から構成されています。

この機械語のプログラムは0と1の数字の羅列ですから人間にはものすごくわかりずらく、プログラム作成にはものすごく手間がかかり、また、間違いが多いものでした。

そこで、プログラム言語というコンピュータ用の人工的な言語規則を定めて、この言語でソースプログラムを記述し、それを機械語のプログラムに変換するというプログラム作成のやり方が生まれました。

プログラム言語で書かれたソースコードは、人間が読んで理解しやすく書かれています。ですからこれにより、一挙にプログラム作成が容易になり、コンピュータの利用が普及したのです。

自動化できることは人間からコンピューターに仕事がシフトする

プログラムを使うイメージ

では、そのプログラムの仕事をコンピュータがやるというのはどういうことでしょう。

先ほどお伝えしたように、プログラムを容易にするためにプログラム言語で書かれたソースコードを記述します。そして、そのソースコードを機械語に変換する作業は、コンピュータでコンパイラというプログラムを使って行います。

すなわち、コンピュータがプログラム作成に参加しているのです。

そして、ITが進展するにつれて、プログラム作成の要件を与えてソースコードを自動的に生成することが試みられました。

例えば、コンピュータで処理可能な仕様記述言語を定めて設計書をその言語で記述します。そして、仕様記述言語とプログラム言語間の変換をコンピュータで行うことでソースプログラムの自動生成を進めるというもの。

現在では、仕様を画面から入力するとソースプログラムを作成してくれるモデリングツールが数多く製品化されています。

ただし、上記のコンピューターが行う作業は、与えられて規則に従って変換作業を実施するのみで、ゼロからプログラムを生み出しているわけではありません。着実にプログラム作成の自動化は進んでいますが、まだまだ、人間の力が必要です。

AI(人工知能)が行うプログラミングとは

プログラムのイメージ

それでは、「コーディングやデバッグが主要業務のプログラマーはAI(人工知能)に取って代わられる」という話は嘘なのでしょうか。

プログラムはコンピューターが動作する手順を記述するものであり、その手順に間違いがあってはならず、また、間違いがない事を説明できる論理性が求められます。

しかし、AI(人工知能)的なアプローチでは間違いもありますし、なぜその結論に至ったかという説明ができません。したがって、AI(人工知能)が要件を満たすプログラムをゼロからコーディングすることは難しいでしょう

一方、AI(人工知能)はこれまでに作成されたプログラムの特徴を学習し、要件に合致するプログラムを見つけ出すこと、あるいは、プログラミングの手伝いとして情報を提供することは得意となるかもしれません。

こうした点を踏まえると、機械やAI(人工知能)に仕事を奪われないためには、プログラマーとしては以下のスキルを高めることが必要です。

今後プログラマーが磨くべきスキル:ゼロから作り出す力

生み出すイメージ

プログラマーの主要な仕事はコーディングとデバッグ(テスト)ですよね。テストはLSI開発などではほぼ自動化されており、プログラム開発でも単体テストなどから順次自動化されるでしょう。

コーディングには以下の2つの側面があります。

  • 仕様書に記述された要件を指定のプログラム言語を前提として手順化すること。
  • その手順をプログラム言語の規則に従ってソースプログラムとして書き下すこと。

手順は何通りもあり、プログラマーの個性が出ます。

うまい下手、効率的か、エレガントかなどいろんな評価ができるでしょう。しかし、どのプログラムでも設計要件を満たすような手順を新しく生み出しています。

この「新しく生み出す」ことは、現在のAI(人工知能)にはできません。

ですからプログラマーは、複雑な要件を分析して新たにプログラムとして手順化するスキルが求められます。

今後プログラマーが磨くべきスキル:マネジメントする力

チームワークのイメージ

ところで、システムが複雑になればなるほど、規模が大きくなればなるほど、多くのプログラムが必要となり、多数のプログラマーが参加するプロジェクトを実施することになりますよね。

こうした共同作業ではプロジェクト計画づくり、進捗管理、品質管理、メンバ間の調整などプロジェクトのマネジメントの成否が、システムの成否に大きく影響します。

ですから、個々の定型的なプログラミングやテストはコンピュータに任せるとしても、マネジメントは人間が行う仕事であり、今後はマネジメントスキルが求められます。

今後プログラマーが磨くべきスキル:コミュニケーションする力

コミュニケーションのイメージ

そして、システムの開発を円滑に進めるには、ステークホルダーやプロジェクトメンバー間の円滑なコミュニケーションが必要です。

今チャットボットなどAI(人工知能)が人間なみの会話をこなすようになっていますが、QAなど人間の質問に答えることを主眼としており、まだまだ、プロジェクトメンバー間のコミュニケーションを円滑にするのは人間の仕事。

したがって、こうしたコミュニケーション能力の向上が一層求められるでしょう。

 

新しいものを作るイメージ

今回は、AI(人工知能)に負けないために、プログラマーが磨くべきスキルについてお話ししました。AI(人工知能)やロボットの時代のプログラマーの姿が想像できましたよね。

まとめると、AI(人工知能)が行うプログラミングとは

  • 今後プログラマーが磨くべきスキル:ゼロから作り出す力
  • 今後プログラマーが磨くべきスキル:マネジメントする力
  • 今後プログラマーが磨くべきスキル:コミュニケーションする力

今後、ますますAI(人工知能)やロボットが生活の中に浸透するでしょう。いわゆる機械化や自動化がAI(人工知能)によって飛躍的にレベルアップし、人間の行動の大部分を代替できる能力を身に付けてきます。

そして、ベルトコンベアが工場で働く人から単純作業を解放したように、AI(人工知能)はシステム開発やソフトウェア開発の現場から比較的定型的なプログラミングやテスト作業から開放するでしょう。そして、システム運用監視の現場でも同様な状況が見られるようになります。

それによりプログラマーの仕事内容も、これまで上流工程の仕事とされていた領域に向かうことになりスキルアップが必要になるでしょう。

日々進化することはなかなか厳しい事ではありますが、一歩一歩進化を実感できることはやりがいにもつながりますよね。ぜひ、普段からスキルアップに努めていきましょう。

コメントをどうぞ

トップへ戻る
タイトルとURLをコピーしました