生成AIで大きく変わる!?近い将来、システム開発でプログラマーに求められることとは

こんにちは、まもーです🐬

最近生成AIが流行ってますよね~。みなさんもChatGPTに驚いて久しいのではないでしょうか?

そもそもChatGPTを使ったことがないという方もしいらっしゃったら!こんなブログは読むのをすぐに辞めて、まずは使ってみてください↓↓

https://chatgpt.com

ちょっとした世間話から人生相談まで、なんでも答えてくれてすごいです。が、当たり前のような顔をして嘘を付くので、ちょっと注意が必要です😱w

ChatGPTのスマホアプリを利用すれば音声入力もできます。例えばChatGPTに連想ゲームのゲームマスターをやってもらい、皆で質問して遊ぶこともできます。友人たちとの旅行で盛り上がること間違いなし!😄

さて…このChatGPTに代表される生成AIの普及状況について

PwCがレポートにまとめてくれてます。日本の大手企業の課長以上912名を対象に調査をされて、AI活用状況、期待通りの効果がでているかどうか、その理由、などが分かりやすくまとめられており、面白いのでぜひ読んでみてください。かなり活用が進んでいることがわかります😄

https://www.pwc.com/jp/ja/knowledge/thoughtleadership/generative-ai-survey2024.html

こういった生成AIは、IT企業が各企業と協力して業務に導入していますが、IT企業自体でももちろん活用されます。というのも、生成AIは実はプログラミング言語に詳しく、言葉でアプリ仕様を伝えることでプログラミングをしてくれるのです。
私も他の投稿でフラッシュ暗算作成中にChatGPTに恋しているように、質問をすれば、爆速でソースコードやその解説を出力してくれました😄人が書くよりも何倍も早くソースコードが出力され、しかもそれっぽく動くので、これではプログラマーの方の商売あがったりでは?と思うかと思います。

そんなことありません、、とはなりません。正直なところ、今後プログラムを書くだけの仕事の多くが、生成AIに職を奪われる可能性が高いと考えます。
日本のIT現場ではしばしば、オフショア開発という、他国のエンジニアにプログラム作成を依頼することがあります。そのときにネックになるのが、言葉の壁です😱作成を依頼した内容が正しく伝わらず、相当の時間がたったあと、全然違うプログラムが出来上がってくる、なんてことは頻繁に発生します。
それがChatGPTを利用すれば、言葉は日本語でそこそこ伝わり、一瞬でプログラムが出来上がるのです。そのため、ChatGPTが正しくプログラムを作成できる依頼(プロンプト)を上手に書くことができれば、つまりはプロンプトエンジニアが居れば、プログラム作成を、今までよりもコミュニケーションコスト低く高速に実施できるわけです。

じゃあプログラマーは解雇されてしまうのか

というと、単純にはそうはならないです。それはなぜかというと、ChatGPTが作ったプログラムが正しい動作をするかどうかが保証されていなく、保証する人が必要だからです🙆‍♂️

例えば生成AIで画像を作成した場合であれば、AIから出力された画像を人間がみて、作りたかった画像が出来上がっているかを判断しているかと思います。それと同じで、AIから出力されたプログラムも、その正しさを判断する必要があります。

一般的にプログラムの正しさは、プログラムのソースコード自体を確認するのではなく、プログラムを動作させて正しく動作をするかテストを実施して確認します。今後はプログラマーには、生成AIが無責任に作成したプログラムに対して、正確にテストができることが求められると予想します。もう一声付け加えると、テストを含めた、システムの品質管理ができる人への需要が高まるんじゃないかなーと、考えております🐬

ではシステム開発における品質管理は何をするかというと

品質を担保するための計画を立て、計画通りにテストができているかをチェックすることです。

システム開発においては大きく機能要件と非機能要件に分けて品質を管理します。

ここからもしかしたら小難しく感じるかもしれません、、😱そんな方は、一番下のまとめに飛んでくださいませ。。😇

まず機能要件の品質というのは、

簡単にいうと、設計どおりにシステム開発ができていて、そのシステムを使って業務ができれば、品質が高いということになります。

例えば、皆さんが家を建てるときに、工事で実際に出来上がった家が設計図通りでなかったら、怒りますよね。設計図どおりだけど、実際に見てみると思てたんと違う、、てなると、そこからは施工業者との交渉で無料で対応してもらえたり、仕様変更としてお金を払って直してもらったりするかと思います。

建物と同様に、システムにも設計書があります。そのため、システム開発会社としては、まずは設計どおりのものをちゃんと作ることを目指します。

次に非機能要件の品質というのは、

システムが機敏にうごいて、システムトラブルが発生しても業務影響なく解消できれば、品質が高いということになります。例えば、会社のシステムで1画面に入力するにあたって、画面が止まりまくって30分もかかってしまっては、使っていられないですよね🤣

こういった非機能要件の性質は性能・拡張性や可用性などと呼ばれており、非機能要件グレードという、IPAがまとめてくれている資料で他の性質も含めてまとめられているので、興味ある方はみていただいたら。。↓

https://www.ipa.go.jp/archive/digital/iot-en-ci/jyouryuu/hikinou/ent03-b.html

ちなみに非機能要件は結構難しいです。例えば、大地震が起きてもシステムが落ちないようにしろ、とか、隕石がおちたら~、など、考え始めると色んなリスクが想定されるからです😇

テストをするということ

テストは基本的に細かい部品から検証し、次に部品を組み合わせた状態で検証し、最終的にシステム全体として正しく動作するかを検証します。

家を建てるときも(また家の例になりますが🙄)、ネジとか柱とか、たくさんの部品を組み合わせて建てられます。どの部品も、部品自体が作られた後に検品を経た状態のものが、建築に使われますよね。そして部品を組み合わせて、組み立てた状態を確認する。全部組み立て終わったら、歩いたり階段登ったりして家として問題なく使えるか、耐震性に問題がないかなどを、確認します。

システム開発も同じで(また同じ論調になりますが🙄)、まずは最小のモジュールから動作をテストし、モジュールをある程度組み立てた状態でテストし、全部組み立て終わった状態でテストをします。このときに、最小モジュールの動作テストは網羅的に動作確認をしますが、モジュールをある程度組み立ててからのテストでは、改めて各モジュールの細かいテストはしません。あくまで組み立てた部分に対してのテストをする形になります。

そのように、システム全体をどのようなモジュールに捉えて、どのような単位でテストをするか、それぞれどのようなテスト観点とするか、といった方針が決まっていることが、テストをする上で何よりも重要になります。それを決めるにはシステムの構成(アーキテクチャ)に精通する必要があり、構成を決める人をシステムアーキテクトと呼んだりします。テスト計画ではこのような内容をみっちりと決めて、テスト計画どおりにテストができれば品質が担保できる状態を作ります。

品質を担保するということ

それは、テスト計画どおりにテストが実施できているか?を確認することになります。具体的な例としては、テストの仕様書にテスト計画が網羅的に反映できているか、テストの分量が妥当か、テスト仕様書の通りにテストが実施されているか、などを評価し、評価結果をもとに必要に応じて追加対応を行って品質を担保します。

テスト内容については例えば第三者によって計画書にあるテスト観点が含まれているか、ケースが網羅的に挙げられているか、をピックアップ確認をします。

テストの分量については、プログラム規模に対して妥当な分量のテストが実施されているか、実施した結果ちゃんと規模に対して妥当な不具合がでているか、を確認します。

そして重要なのが、発生した不具合の内容の妥当性・根本原因の確認です。

例えばモジュールを組み立てた状態でテストをしていたら、モジュール単体の不具合がたくさん出てきたとしましょう。その場合は、モジュール自体のテストが不足しているのでは?という評価になります。なぜテストが不足したのかを根本原因を確認し、テスト計画どおりにできてない部分があれば追加でテストを実施します。そもそものテスト計画に不備があることが発覚することもあるでしょう。その場合は、計画に不足している部分を盛り込み、その観点で追加テストを実施します。

このように、テスト計画が最初に作り込まれていると、品質懸念が発生したときに、計画を基準として何が不足しているのかがわかります。

スケジュールがないとプロジェクト活動が遅れているのか進んでいるのか、それがどれくらいかがわからないように、品質についても基準がないと、今の立ち位置がわからなくなります。プロジェクト進捗の基準がスケジュール、システム品質の基準がテスト計画になります。

このように、生成AIで作り出したプログラムに対して、テスト全体の計画や設計、テスト実施ができる人が、今後求められるようになるんじゃないかなーと、想像しています。

今はまだAIが平気で嘘をついていますが、今後更にAIが進化して殆ど間違ったことを言わなくなった場合は、品質管理についてもAIによってなされるかもですが。。😇ただ、企業で働く以上なにか不祥事があれば人間が責任を取る必要がありますので、AIが嘘をついている今のうちに品質管理のプロになって、責任あるポジションにつくのがもしかしたらよいかもしれません!

まとめ~~~

あ~~~~いろいろと脇道にそれて、そもそもテストとは~?とか、品質管理とは~?とかを雑に書きなぐってしまった🐬

まとめると、

  • 生成AIを利用すればプログラムを作るのは早くなるので、プロンプトエンジニアがこれまでのプログラマーの代わりを担う可能性は高い。
  • 一方で、生成AIが作成したプログラムの動作を担保することが難しいので、今後はテストや品質管理に重きをおいてスキルを身につけるのが良さそう。
  • 生成AIが嘘をつかなくなったら、テストや品質管理もAIができちゃいそうなので、それまでに出世しておこう。

でしたー!この記事を書いたのが2024年9月29日。この先どうなっているか楽しみですねー。

といったところで、本日は以上としますー

ありがとうございました🐬

よかったらシェアしてください!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

こんにちはー!故郷が元農家の、まもーです。
普段はITコンサルをしていますが、年を重ねるにつれ農業対してなにかできないか、という思いが強くなり手始めにこの雑記ブログを始めました。
アグリあんてなでは、ITに関するよしなにを主軸としつつ、農業に関する内容を収集したり発信していけたらと思っています。

コメント

コメントする

目次