見出し画像

ソフトウェアエンジニアはこれから「操縦士」から「管制官」になっていくのではないかという話。

こんにちは、株式会社HQ(エイチキュー)でソフトウェアエンジニアをしている増田です。HQは「テクノロジーの力で、自分らしい生き方を支える社会インフラをつくる」をミッションに掲げるスタートアップ企業です。初期プロダクトとして社員の個別最適なリモートワーク環境の構築を支援する「リモートHQ」を開発、運用しています。

前回の投稿ではHQに参画して2か月経過したのを契機に、スタートアップにおいて「熱狂」が果たす役割と、それに一従業員としてどのように向き合っていくべきなのかについて書いてみました。

流石に入社して2か月が経過し社内で使われているツールやフレームワークへの習熟度も増してきましたが、この2か月はやることなすこと全て慣れない・知らないことに囲まれた状態での仕事でした。ただ以前より圧倒的に違うなと感じるのが、ChatGPTを筆頭にした生成AIの存在です。今回はエンジニアの仕事に与える生成AIの影響について少し書いてみたいと思います。


2024年にリリース予定の「Github Copilot Workspace」

「Github Universe 2023」にて「Github Copilot Workspace」のデモが発表されると、IT系のメディアをはじめ各所で大きな話題になりました。それが「エンジニア不要論」のような言葉を伴って宣伝されたことは全く驚きではありません。

Copilot WorkspaceについてGithubから発表された記事の冒頭、以下に引用した文章がまさしくHQに参画したばかりの私の状況のようで、思わず「うんうん」と頷きながら読んでしまいました。

How can developers overcome the high effort of getting started on complex tasks and truly collaborate with AI to make progress quickly?

How often have you been faced with a task that involves a repo, programming language or framework you are not familiar with? Not knowing where to start can be overwhelming, and the mental effort needed to make sense of the task and its context in order to decide what to do can be just enough to keep you from going into the task at all.

GitHub Next | Copilot Workspace

自分の経験値が足りてない言語、ライブラリー、フレームワーク、開発環境、方法論、そういったものにキャッチアップをしながらもタスクを前に進めなければならないとき、生成AIが爆発的な力を発揮するのをここ数ヶ月で体感しています。また一般的な知識についてのみならず、開発対象となるソフトウェアのドメイン知識、つまりあくまで社内の知識についても、「既に実装済みの機能A-1に加えて並列的な機能A-2を実装する」といったシチュエーションで、Copilotのような生成AIが文脈を理解する大きな助けとなっています。

加えて、例えばHQではGithub Actionsを使ってビルド、テスト、デプロイのワークフローを管理していますが、ああいう「カチッとした」もの書く時にはもはや書き方や読み方を調べる手間をすっ飛ばし、生成AIに記述や解説をお願いする日々です。コーナーケースが存在しない限り、自分で細かい記述方法を理解する必要はないかもしれません。更には、テストケースの生成についてもかなり良いものを自動的に生成してくれます。

こういった経験を踏まえると、Github Copilot Workspaceのような機能が今後、我々の支持に従い、半自律的に機能を追加したり、それをテストしたり、問題を直したりといった未来は容易に想像が付きます。既に要素技術は揃っているという印象で、あとはUIとしてそれらをどのようにユーザーである開発者に提供するのか、というフェーズにあるように思います。実際に、様々な場面で生成AIを使うことのあるソフトウェアエンジニアであればそのような世界を既に経験しているでしょう。

ソフトウェアエンジニア「操縦士」よりも「管制官」になっていくのではないか

今年Github Copilot Workspaceが公開されたタイミングで、再び「エンジニア不要論」が話題に上ることは確実のように思います。そして私がこの件について思うのが、今後のエンジニアはパイロット(操縦士)ではなく管制官になっていくのではないかということです。MicrosoftやGithubがパイロットをメタファーに使い始めたことにより、「AIという副操縦士を従えた操縦士」というイメージがにわかに一般的になりつつあると思いますが、今後はむしろ、環境構築、開発、テスト、不具合修正、様々な箇所で働くAIパイロット達を最大限にコラボレーションさせるための統制を取る役割、空港のメタファーを用いるなら管制官になるのではないでしょうか。

操縦士から管制官になっていく過程で、ソフトウェアエンジニアのスキルはどのように変化していくべきなのでしょうか。一方ではまず、管制官のメタファーそのままに、空港全体(プロダクトの技術領域全体)を見渡す、より大局的な視点が求められるようになるでしょう。ソフトウェアエンジニアの役割が〇〇エンジニア、□□エンジニアと細分化されるようになって久しいですが、AIの助力を得ながらその全体を、そしてそれを今で言うフルスタックエンジニアの何倍かの生産性でこなすことが求められるようになるのではないでしょうか。

もう一方では、AIでは手の届かない技術領域、ドメイン領域、AIの知識の及ばない知識領域(例えばまったく新しいハードウェアに対するドライバを書くとか)についても求められるようになりそうです。今で言う〇〇エンジニア、□□エンジニアの上澄みと呼べるような、トップのエンジニアがここに属することになりそうです。こちらは敢えて航空関係のメタファーを用いるなら、「神の手を持つ整備士」とか「とんでもない困難な着陸をこなせる操縦士」とか「世界中のどんな要人の対応も可能なフライトアテンダント」とか、そういう存在ではないでしょうか。

一言でまとめるなら「中間領域がどんどんAIによってこなされるようになる」未来がソフトウェアエンジニアには待っていそうで、そこに向かって大きく前進する2024年の象徴のひとつがGithub Copilot Workspaceのリリースとなりそうです。

まとめ

Github Copilot Workspaceのリリースを皮切りに、いや、既に起こっている変化の延長線上として、ソフトウェアエンジニアの役割が今後どのように変化していくのかについて考えてみました。私が初めてプログラミングを書いてからもう30年以上の月日が流れていますが、その中で起こったどの変化よりも大きい変化になりそうです。

最後に

株式会社HQでは「テクノロジーの力で、自分らしい生き方を支える社会インフラをつくる」というミッションに共に挑む仲間を募集中です。開発チームではGithub CopilotもChatGTPもフル活用して開発業務を進めています。少しでも興味を持たれた方、よかったら下記採用ページを覗いてみてください。


いいなと思ったら応援しよう!

この記事が参加している募集