SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

『チームトポロジー』の著者が語る、成功するプラットフォームとチームのあり方とは?【PEK2024】

「Platform Engineering Kaigi 2024」Manuel Pais氏 講演レポート


  • X ポスト
  • このエントリーをはてなブックマークに追加

 Platform Engineeringとは、ソフトウェアエンジニアリング組織において、開発者の認知負荷低減を目指し、セルフサービス機能を提供するためのツールチェーンやワークフローを設計・構築する技術分野。近年、DevOpsの文脈で様々な組織が実践している。日本における初の専門カンファレンスとして「Platform Engineering Kaigi 2024」が開催され、参加申込が990人を超えるなど、大きな盛り上がりを見せた。イベントでは、Platform Engineeringが注目されるきっかけとなった書籍『チームトポロジー』の著者、Manuel Pais氏が来日し、Platform Engineeringの中心的コンセプトの一つであるPlatform as a Product(製品としてのプラットフォーム)と、それを支えるチームのあるべき姿について考察した。

  • X ポスト
  • このエントリーをはてなブックマークに追加

Platform as a Product 〜開発チームのためのプラットフォーム

 まずPais氏は、プラットフォームを定義するところから本セッションを始めた。ここでは、プラットフォームを「魅力的な社内製品としてまとめられたセルフサービスAPI・ツール・サービス・ナレッジ・サポートの集合体」だと位置づける。

 プラットフォームの存在意義は、開発チームの仕事をやりやすくすることだ。具体的には、開発チームの認知負荷を下げること。そして開発チームが、リードタイム・デプロイ頻度・平均修復時間・変更失敗率といったメトリクスを改善しながら、顧客への価値提供や課題解決への集中を支援することだ。

 しかし、プラットフォームを適切に実装しないと、開発チームの認知負荷が増加し、逆に生産性が低下する可能性がある。具体的には、利用時に常にプラットフォームチームへの依頼が必要となるものや、サービスの統合が不十分で複数のインターフェースを使い分けねばならないもの。そして頻繁にダウンしたり、速度が遅すぎたりするなど、パフォーマンスが低いものが挙げられる。そのような開発チームに苦痛をもたらすプラットフォームは、そのうち使われなくなる。

 逆に、優れたプラットフォームが備えるべき性質は何だろうか。Pais氏は、先程のプラットフォームの定義を引用しながら、以下の特徴を列挙する。まずプラットフォームは、セルフサービスで利用できなければならず、プラットフォームチームの作業を待つ必要はない。またプラットフォームチームは、そのために必要なナレッジとサポートも提供しなければならない。

 加えて、プラットフォームは、インフラ、監視、データなどの物事をシンプルにし、デリバリーを加速させるためのものだ。そのためにはプラットフォームは、できるだけシンプルに厳選された、相互補完的なサービスやパターンで構成されるべきだと、Pais氏は言う。

 
プラットフォームはできるだけシンプルに厳選された、相互補完的なサービスやパターンであるべき

 例えば、手順やノウハウを記した、シンプルなWikiページであっても、立派なプラットフォームになりうる。Wikiページがあることで、新しいメンバーがすぐに仕事に取りかかり、より早く会社に価値を提供できるようになるからだ。

 次に、「プラットフォームが製品である」とは何を意味するのだろうか。

 Pais氏は、ここでの「製品」を以下のように定義する。製品とは、機能・デザイン・マネタイズ・コンテンツが一体になったものだ。製品を使うかどうかはユーザーの自由であり、強制されるべきではない。また製品は、ユーザーのペルソナやジャーニーに沿って慎重に設計される。製品は、ユーザーの仕事をシンプルにし、テクノロジーの変化に応じて進化すべきものだ。

 これらの要素をプラットフォームに当てはめると、製品としてのプラットフォームは以下の性質を備えることになる。

  1. プラットフォームは、開発チームが自ら進んで使うべきものだ。使用を強制されるものや、誰も理解できないものは役に立たずに廃れる。また、利用を促進するためのマーケティング活動も必要になる。
  2. プラットフォームはユーザーとなる開発チームを念頭に置いて設計する必要がある。ユーザーとの対話を通じて、そのニーズに基づき、機能追加や、タスクやワークフローの簡素化をしなければならない。
  3. 毎週・毎月のように起きる変化に対応できないと、プラットフォームは開発チームから信頼してもらえない。そこでプラットフォームは、明確かつ柔軟なロードマップに基づいて、提供する機能を進化させる必要がある。

 このような製品としてのプラットフォームを発展させるには、熟練したプロダクトマネージャーが必要だと、Pais氏は言う。つまりユーザーである開発チームのニーズを理解し、優先度をつける能力を持つ技術者でなければならない。

 プラットフォームは時間とともに成長していくが、提供するサービスは厳選するべきだ。そしてプラットフォームチームと開発チームのインタラクションの中で、適切な規模感を探る必要があると、Pais氏は続ける。

次のページ
チーム間のインタラクションがプラットフォームを育てる

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

Innerstudio 鍋島 理人(ナベシマ マサト)

 ITライター・イベントプロデューサー・ITコミュニティ運営支援。 Developers Summit (翔泳社)元スタッフ。現在はフリーランスで、複数のITコミュニティの運営支援やDevRel活動の支援、企業ITコンテンツの制作に携わっている。 Twitter:@nabemasat Facebook Web

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19937 2024/12/25 15:54

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング