PlatformCon 2023 Day2。 Day2といってもDay1 / Day2 の各セッションは初日の日本時間 17:00 に公開されているので厳密に2日目のセッションというものではないのですが、一応Day 2の「Stories」トラックのものをご紹介したいと思います。
タイトルは「How to enable platform engineering」
内容
体制
発表者の組織では 「Enablement」と「Platform Engineering」の2つの役割から構成されてます。
■ Platform Engineering
役割は
- Cloudリソースの提供
- DevOpsツールの提供
- インテグレーション
- セキュリティオートメーション
- テスト環境やテストデータの提供
といった内容のサービスを提供しています。(こちらは Team TopologiesでいうStream alinged teamまたはComplicated subsystem team といった役割になるかと思います)
■ Engiineering Effectiveness
こちらの役割は
- Dojo の提供
- Software Engineering Practiceの提供
- Quality Engineering Practiceの提供
- コミュニティ
といったものです。(Team Topologiesで言えば Enabling Teamの役割といったところ)
Platform Teamのポイント / Platform Capabiliities as a Product
2つのポイントが指摘されていました。
1) Product Management Principles
Platform Teamでは複数のサービスをいくつかのチームが提供することになります。その場合にそれらサービス全般に渡る組み合わせ可能な(Composable)プロダクトスイートとして扱うようにしています。 (Microsoft Officeのようなものをイメージし、ExcelやWordなど個別のサービスを組み合わせた MS OfficeというProduct Suiteを意識したProduct Managementを行っているそうです)
2) Put the engineer at hte core of the design
それぞれのPlatform productとして、機能・非機能要件を定義しそれにあわせてエンジニアを配置してるとのことです。
FeedbackをQuickに得るように
どんなプロダクトも完璧なプロダクトというものはありません。完璧を求めすぎると無駄な投資を生むことにも繋がります。不完全なものでも素早くリリースし、フィードバックを得ていくことが重要です。(このあたりは一般的なプロダクト開発でもまったく同じことが言われていると思います。Platform もProductであるということで、同じ原則を適用すべきということだと思います)
そのフィードバックですが、2種類のフィードバックを意識して効果的・効率的に収集しているとのこと
● 間接フィードバック
モニタリングやユーザーデータコレクションを構築し、そこからユーザーの利用パターンなどを得るようにしているそうです。
● 直接フィードバック
Enablementを行っているDojoや、Platform Product teamが直接出向いてフィードバックを得るようにしています。また InnerSource Productといったものも活用しているそうです。
実際のプロダクトの導入の例
Security Scanning Productsの導入を例にその流れを説明されました。
まず第一にプロダクトのゴールを定義します。これが重要で、以下で説明するようにProductの提供とEnablementが行われるため、「何を実現したいのか」を明確にすることで複数のチームが実施する際にも互いの役割が明確になっていきます。
そしてProductチームとEnablementチームの活用です。 技術要素の提供も重要ですが、顧客である開発チームがすぐにそのPlatformを活用できるようにEnablementの内容が重要になります。
今回の例では以下のような成果を得ることができました。
- コードスキャンパイプランアクションの共有
- リポジトリに対するスキャンの自動適用
- IDEとの統合
- スキャン時間を35分から2分に短縮
これにより脆弱性リスクが格段に低減されているとのことでした。
感想
Team TopologesのPlatform Groupの概念をよく整理・適用できているいい事例じゃないかと思います。1つのことだけではなく、様々な領域のサービスをPlatform Suiteとして提供するというのもよくできているものですし、さらにEnablementまでしっかり考慮されているというのはとても興味深い事例です。
さらに、InnerSourceの活用もしている。
まさに私達が、「こういう世界を作りたい」と考えていたものをすでに具現化しているなという印象でした。
ぜひ、こうしたPlatform Teamをつくり、より良いPlatform Engineeringを実現していきたいですね。