複雑化するクラウドネイティブ時代の開発環境
北村氏は、多くの企業がクラウドネイティブ開発を進めている目的は「ITイノベーションの加速とシステムの信頼性を両立し、ビジネス成果を向上すること」だと指摘する。しかし実際は、クラウドネイティブのツールが飛躍的に進化した結果、開発者にはツールの学習コストが生じ、認知負荷が高まっている。これがイノベーションを阻害するという課題が生まれているのだ。
「Platform Engineering」は、こうした課題を解決するために生まれたプラクティスである。
Platform Engineeringは、プラットフォームの力で開発者のジャーニーを整備し、開発者体験を向上する取り組みだ。これによって開発者の作業を効率化することで、開発スピードと品質の向上を両立できる。また、開発者のストレス軽減を実現し、モチベーションと定着率の向上につなげることが可能だ。
北村氏は、Platform Engineeringには「適切なツールやプロセス、テストシナリオ、そしてオンボーディングといった要素が必要になる」と説明する。
開発者向けプラットフォーム「IDP」とは
こうした開発環境を実現するために、昨今注目されているのが「IDP(Internal Developer Platform)」である。これは「開発者体験の向上に寄与するためのあらゆるツールを具備して、開発者に提供していく」プラットフォームだ。さらに、ツールの適切な使い方を示すオンボーディングの機能も備える。
多くの場合、IDPを整備・提供するチームとしてプラットフォームエンジニアリングチームが組成され、エンドユーザーである開発者(開発チーム)に必要な環境を届けていくことになる。
北村氏は、プラットフォームエンジニアリングチームはIDPを「あたかも自分たちのサービスやプロダクトとして扱うべき」だとし、「開発者たちの満足度を高めるために必要な機能をIDPに実装して提供し、提供した後は利用状況のヒアリングを行い継続的な改善活動も行う必要がある」と説明した。
プロダクトとして提供する限り、正しく価値を提供できているのか測る評価指標も必要になる。北村氏は、見るべき指標としていくつかのパフォーマンスインジケーターを示し、中でも「開発開始までの期間」を重視することを推奨した。
チームの立ち上げから開発開始までの期間を短縮するためには、「開発環境」「ルール」「ノウハウ」の3つの要素をスムーズに整備する必要がある。従来、開発前には「開発環境」だけを準備することが一般的だった。しかし、クラウドネイティブ開発においては「いかに開発者の認知負荷を低くし、開発を始められる状況まで持っていけるかが鍵」。ツールを渡すだけでなく、それを活用して開発する上での明確なルール・ノウハウまで提供する必要があるのだ。
そこでレッドハットは、「Golden Path」という仕組みによって開発者のノウハウ習得をサポートする方法を提唱している。