プロダクトエンジニアの出現、領域の越境と拡大
こんにちは、アセンド株式会社CTOの丹羽です。突然ですが「プロダクトエンジニア」という言葉を聞いたことはありますか?
プロダクトエンジニアとは、開発の中心にプロダクトの価値追求を置くソフトウェアエンジニアの職種を指します。近年、スタートアップ企業を中心にプロダクトエンジニアという職種を新たに設定し、採用募集を行う企業が増えています。
ソフトウェアエンジニアの職種は多く存在し、ソフトウェア開発の時代変化と技術進化によって新たな職種が発生しています。以前から存在していたフルスタックエンジニアや、2010年代後半に出現したフルサイクルエンジニアのことを知っている人は少なくないはずです。しかし、近頃は新たに「プロダクトエンジニア」という職種が出現しています。本記事は、このプロダクトエンジニアの役割について解説していきます。
エンジニアのフルスタック化、領域越境の加速
近年、一人のエンジニアが従来に比べてより広い領域を担当するようになっています。これが一般化してきた主な背景には、ソフトウェア開発技術のコモディティ化があります。
ライブラリやフレームワークの普及により技術的な難易度は下がり、計算機の性能向上と廉価化により性能問題は減少しました。また、クラウドプラットフォームの発展やCI/CDなどの開発ツールの進化により、開発生産性が向上しています。加えて、技術コミュニティの発展により、技術知見が積極的に共有されていることも大きな要因です。これらにより、各領域へのキャッチアップ効率と開発生産性は格段に向上しました。
実際に筆者がCTOを務めているアセンドでは、TypeScriptでの言語統一により、毎日デプロイをする高い生産性を実現しています。Full Stack TypeScriptを採用することで、フロントエンド、バックエンド、ネイティブアプリを同じプログラミング言語であるTypeScriptに統一しました。これによりエンジニアは個別での言語習得は不要となり、シームレスな開発者体験の実現とともにフルスタック化を実現し、開発生産性も向上しています。
そのほかにも、アジャイル開発やスタートアップのエンジニアリソース問題からの要求、DevOpsのような開発支援的役割の普及による開発効率の向上などが理由として挙げられます。そして、生成AIなどの急速な技術発展によりコーディングはより容易なものとなり、人間ならではの意思決定の役割が求められるようになっています。このようにエンジニアの多能工化の流れは今後も加速していくと考えられます。
プロダクトエンジニアの出現
技術のコモディティ化に伴い、エンジニアはよりソフトウェア開発の本質であるプロダクトに向き合うことが可能となりました。エンジニアのフルスタック化が進み、プロダクト開発全体をカバーすることで、学習とフィードバックを受けてプロダクトの継続的な改善と全体最適を考えた開発ができるようになりました。これがプロダクトエンジニアという職種の出現の大きな背景となります。
企業がソフトウェアを作る目的は顧客の課題解決と収益の向上であり、多くのソフトウェア開発はこの目的を果たす必要があります。しかし、エンジニアは技術的な専門性を必要とすることから顧客の課題解決ではなく、技術的課題の解決に集中せざるを得ず、ソフトウェア開発とビジネスが分業される状態が発生していました。そんな中、技術のコモディティ化が進むことでプロダクトエンジニアのように、製品や事業の成否を関心の中心において開発に取り組むことが可能となりました。
また、顧客からのプロダクト要望がより多様化したことも、プロダクトエンジニアが必要となった背景にあります。顧客要求は多様化し見えづらくなっていることから、従来の固定的な要件をもとに売れるソフトウェアを開発することはだんだん難しくなっています。厳しいですが、どんなにフルスタックで生産性が高く開発したとしても、開発要件が誤っていれば顧客課題を解決できない不要なプロダクトでしかありません。仮説検証をもとに探索的に要件を整理し、開発するプロダクトエンジニアの重要性は高まっています。
ここまで紹介した中で、プロダクトエンジニアという働き方は「けっして新しいものではない」と気づく人もいるかと思います。プロダクト志向を持ち、技術的な領域を問わずに越境してプロダクトの成功を支えてきたソフトウェアエンジニアが、もしかしたら皆さんの周囲にいるかもしれません。そのエンジニアを的確にあらわし、適切な責務に整理された職種がプロダクトエンジニアに設定されたとご理解いただければと思います。