APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Blog Week】Platform Teamに必要な要素は何か?

はじめに

こんにちは、ACS事業部の吉川です。
我々ACS事業部では、お客様組織の効率化の一助として、Platform Engineering の考え方を取り入れることをお勧めしています。
Platform Engineeringとは何か、という点に関しては以下ブログをご参照ください。

techblog.ap-com.co.jp

「Platform Engineeringはじめよう!」としたとき、まず行うべきは Platform Teamの組成 でしょう。
Platform Teamは、効率よく開発業務を行うためのプラットフォームを開発者に対し提供します。
Platform Teamの必要性について書かれた以下のブログも合わせてご参照ください。

techblog.ap-com.co.jp

さて、Platform Teamを組成する際に、どんなことに気をつければよいでしょうか。
本記事ではこれからチームを作っていく管理職の方に向け、よくある疑問を例に取り気を付けるべきポイントをお伝えします。

Q. プラットフォームということはインフラエンジニアを集めればいいんでしょ?

A. 必ずしもそうではありません。

Platform Engineeringの文脈では、「Platform as Product」 という言葉がよく使われます。言葉どおり「プラットフォームをプロダクトとして扱う」、つまり 利用者である開発者をお客様と見立て、製品として機能・価値を提供する ということです。
外部に提供するサービスを立ち上げる際に、インフラエンジニアだけで行うことはほぼないでしょう。それと同じ考え方で、Platform Teamにはプラットフォームを開発するメンバーやデザイナーといった役割も必要でしょう。

そうは言っても、いきなりそんな多くのメンバーを集めるのも難しいとは思います。その場合、提供できる範囲のプラットフォームで始めるのがよいでしょう。
OSSで提供されている Backstage と GitHub、AzureやAWSといったパブリッククラウドサービスを組み合わせることで、IDP(Internal Developer Portal)を備えた最小限のプラットフォームは提供できます。そこからユーザーの要望に合わせ、必要なスキルセットを持ったメンバーを追加していきましょう。

Q. プラットフォームは利用者みんなの要望を聞いてくれるんだよね?

A. 実装する機能は、個別対応ではなくある程度共通化すべきです

開発者がPlatform Teamと同じ会社にいる以上、気軽にアレコレ要望がやってくると思います。ここでも「Platform as Product」に照らして考えると、取り上げる要望は取捨選択すべきです。現実的にすべての要望を叶えるためのマンパワーを備えるのは難しいですし、特定チームしか利用しない機能を取り入れるのも好ましくないでしょう。もし社外向けのSaaSを提供するならば、個社ごとの個別対応を取り入れすぎるとメンテナンス性や拡張性に難が出ます。それと同じ考えをプラットフォームにも適用すべきです。

上記の点から、Platform Teamには プラットフォームが向かうべき方向性を示し機能実装の舵取りをするプロダクトマネージャー 的ポジションも必要となります。

Q. プラットフォームを使うことは強制なの?

A. 強制するものではなく、選んでもらえるものを目指しましょう。

先の項で挙げたとおり、「Platform as Product」というのが大事な考え方です。Platform Engineeringで言うプラットフォームは、強制されて仕方なく使うものではなく、価値があるから使うもの であるべきです。
個人的にこの点が、いわゆる従来の『共通基盤』と大きく違う点だと思います。ルールだから仕方なく使う、使いづらい社内システム…皆さんも体験があるのではないでしょうか。プラットフォームを製品として見れば、お客様に使いづらいシステムを強制するのはナンセンスなはずです。仮に利用を強制するにしても、それがユーザーである開発者にとって価値があるものかどうか、常にフィードバックを受け改善するサイクルを回していきましょう。

Platform Teamのメンバーにもこのマインドは周知徹底すべきです。極端な例で言えば、開発チームに選択の自由を与えその中でプラットフォームが採択されたかどうかの割合でPlatform Teamを評価する、ということも考えられるでしょう。

つまりPlatform Teamには何が必要なの?

ここまでの内容から、Platform Teamが備えるべき要素についてまとめます。

  • プラットフォームに必要な機能を開発する能力
  • プラットフォームの進化の方向性を決定する決断力
  • プラットフォームを開発者にとって魅力的なものとする強い意志

Platform Teamは『インフラエンジニアをただ言い換えただけ』ではないことがわかるでしょうか?
提供先が社内とはいえ、プラットフォームを作ることは 新たなプロダクトを作ることと同義 と考え、Platform Teamには必要な能力や適性を持ったメンバーをアサインすることが望ましいです。新たにPlatform Teamを立ち上げる際の参考としてみてください。

おわりに

Platform Teamを組成するにあたり、気を付けるべきポイントを書きだしてみました。組織ごとに最適なチームの形は様々かと思いますが、「Platform as Product」の精神をベースに最適なプラットフォームを作っていけるチームを目指しましょう。

【PR】
私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp

本記事の投稿者: 吉川 俊甫
Platform Engineering Meetup運営メンバー。2023/06に Microsoft MVP (Microsoft Azure) を受賞しました。
Shunsuke Yoshikawa - Credly