この連載では、「プラットフォームエンジニアリング」を軸に、デベロッパーエクスペリエンス(開発者体験)の最適化とビジネス成果の最大化を両立させるための視点と実践例を紹介します。初回となる本稿では、強力なプラットフォームチームを構築するためにリーダーが考慮すべき3つの重要なポイントを説明します。

プラットフォームエンジニアリングチームは、開発チームが信頼性の高い安全なソフトウェアを構築するためのゴールデンパス(推奨される最適な開発手順)を提供する、セルフサービス機能を構築します。これが適切に機能すれば、モニタリング、セキュリティ制御、CI/CDパイプライン、クラウドリソース管理といった複雑な技術的タスクを担ってくれるため、デベロッパーはビジネス価値をもたらすコードを記述するという、本来の重要な作業に専念できます。

しかし、多くのリーダーは重要な本質を見落としがちです。プラットフォームチームの成功を測る指標は、テクノロジースタックの洗練度や機能の数ではありません。他のチームがビジネス価値をより迅速に提供できるように、プラットフォームがいかに効果的に支援できているかという点にあります。つまり、プラットフォームチームが成功を収めるには、デベロッパーチームとのコラボレーションが不可欠なのです。

プラットフォームエンジニアリングの取り組みが失敗に終わる理由

多くのプラットフォームエンジニアリングの取り組みが失敗に終わるのは、技術選択が悪いからではなく、最も重要な要素である「真のコラボレーション」を行っていないためです。デベロッパープラットフォームは単なるテクノロジースタックではなく、チーム間の関係を深め、コラボレーションの在り方を根本的に変革するものです。

優れたプラットフォームエンジニアリングチームは、デベロッパー、セキュリティエンジニア、運用担当者の日常業務について十分に理解しています。さらに、各チームが抱えるプレッシャー、使用するパフォーマンス指標、頭を悩ませる問題についても把握しています。

また、すべての業界に共通したパターンもあります。プラットフォームチームがデベロッパーの認知負荷を軽減しつつ、ユーザーが手軽に感じられるセルフサービス機能を作成できれば、多くの人が恩恵を受けられるというパターンです。企業はより迅速なデリバリーを実現し、デベロッパーは影響度の高い仕事に専念できます。結果として、顧客により質の高いサービスが届けられます。

「優先順位」「コミュニケーションフレームワーク」 「デベロッパーエクスペリエンス」がカギ

では、強力なプラットフォームチームを構築するためにリーダーが考慮すべき、3つの重要なポイントについて見ていきましょう。

1. 成果に基づき優先順位を決める
優れたプラットフォームチームは、デベロッパーが達成すべき成果に応じて、チームの優先順位を調整します。しかしながら、この調整は言うほど簡単ではありません。プラットフォームチームがIT部門の管轄下にあり、開発チームが事業部門に属しているような場合はなおさらです。

このような組織内のズレを解消するために、プラットフォームチームはデベロッパーが真に求めるものを優先する必要があります。適切な指標とは技術的な成果物ではなく、成果そのものです。測定すべき成果を以下にいくつかご紹介します。

・導入率の向上:各チームの日常業務を楽にするプラットフォームこそが選ばれます。
・デベロッパーのベロシティ:プラットフォームを使用しているチームは、そうでないチームに比べて素早くリリースできます。
・デベロッパーの満足度:定期的なフィードバックにより、デベロッパーがプラットフォームの利用に満足しているかを測定します。
・サポートの負担軽減:適切に設計されたインターフェースと包括的なドキュメントを用意すれば、デベロッパーが自己解決できるようになるため、サポートチケット件数が劇的に減ります。

優れたプラットフォームチームのリーダーは、デベロッパーの生産性とビジネス成果との間にある直接的な関連性について、経営陣に対してしっかりと理解を促します。今やデベロッパーエクスペリエンスへの取り組みは、もはや付加的なアプローチではなく、戦略的に不可欠であると言えます。

2. 強力なコミュニケーションフレームワークを構築する
自分の意見が聞き入れられ尊重されていると感じるデベロッパーは、単なるユーザーから重要な協力者へと変わります。自分の要望がプラットフォームの進化に反映されることを理解しているため、改善に役立つ洞察を提供してくれます。優れたプラットフォームチームは、率直なフィードバックを収集するために、ユーザーリサーチセッション、デベロッパーエクスペリエンスに関するアンケート、オフィスアワーなどの手段を使用します。

さらに、プラットフォームの名前も重要です。「デベロッパー支援プラットフォーム」や「デベロッパーエクスペリエンス向上チーム」といったチーム名であれば、デベロッパーを管理するためではなく、デベロッパーを支援するというチームの目的が明確に伝わります。

忘れてはならないのは、プラットフォームはサービスであり、デベロッパーはその顧客であるということです。

3. 喜ばれるデベロッパーエクスペリエンスを提供する
プラットフォームチームの基本使命は、複雑さと認知負荷を排除して、ソフトウェアデリバリーを高速化できるようにすることです。すなわち、正しいやり方を最も簡単なやり方にするという意味です。

デベロッパーエクスペリエンスに影響するのは機能性だけではありません。重要なのは喜びを想像すること、そして、プラットフォームチームが技術的な機能だけでなく、人間としての体験の大切さを示すことです。最高のプラットフォームは、疑問を想定し、混乱を招くことなくユーザーを導いてくれるエラーメッセージを備えた、自然で直感的なインターフェースを提供します。

プラットフォームエンジニアリングの優秀さは、複雑なものをいかにシンプルに見せられるかにあります。重要なのは、洗練されたシステムを構築するのではなく、複雑さを軽減し、デベロッパーがビジネス価値の創出に専念できるようにすることです。

これから進むべき道

プラットフォームエンジニアリングによる真の効果は、デベロッパーエクスペリエンスに絶え間なく注力し、機能および効率と組み合わされて初めて発揮されます。ここで、プラットフォームチームのリーダーのみなさんに向けたアドバイスを送ります。

1.重要な指標を測定する:導入率とデベロッパーのベロシティを追跡しましょう。
2.ユーザーの中から「チャンピオン(導入推進担当者)」を育成する:キーパーソンとなるユーザーを特定し、すべての機能の設計プロセスに参加してもらいましょう。
3.正しいやり方をいちばん簡単なやり方にする:デベロッパーが、「他の選択肢よりも純粋に優れているから」という理由でそのプラットフォームを選択したときこそ、成功と言えます。

成功を収めている組織は、プラットフォームが人的要因と技術的要因に等しく依存する協調的なエコシステムであると認識しています。プラットフォームチームは、成果、コミュニケーション、エクスペリエンスに注力することで、ソフトウェア開発チームにとって信頼できるパートナーとなり、組織におけるソフトウェアの構築方法を根本から変革できるのです。