この記事は「Platform Engineering Advent Calendar 2023」の18日目の記事です!今回はPlatform Engineering Meetup #1の中で取り上げられていたシャドーオペレーションについて取り上げてみます!
アーカイブもあるようなのでもしみてない方がいたら先に見ていただけると良いかもしれません。
シャドーオペレーションとは
Platform EngineerというかそもそもIT用語というわけではありません。シャドーオペレーション(Shadow Operation)は、一般的には秘密裏に行われる軍事または情報活動のことを指します。これらの活動は一般に公には認識されず、秘密裏に行われることが多いため、詳細な情報は利用可能な場合にも制限されていることがあります。シャドーオペレーションは、情報収集、対敵国への影響力の行使、軍事行動の準備など、さまざまな目的で行われることがあります。この話をセッションの中では「幅広い知見を持つチームの中で最も価値のあるエンジニアがシャドーオペレーションを担うことが多くなり、チームの能力を最大限に発揮できなくなるという」と取り上げている。Dev(アプリケーションチーム)とOps(インフラチーム)という構図があるとしてDevOpsによって垣根を無くしたはいいもののチーム内にインフラに関する知見を持つメンバーいない場合にそうなってしまう。
何故そうなるのか
アプリケーションチームのメンバーが運用を行うことは、ベロシティを高めるために有効であると思います。一方でKubernetesやTerraform、CI/CDパイプラインのメンテナンスといったインフラの構築に必要な知識全てを全メンバーが習得することは認知的な負荷を考えると現実的ではありません。そういう状況で開発が進むとよくみる光景として経験豊富なアプリケーションチームのエンジニアが、経験の浅いメンバーのためにインフラ関連の仕事を行うようになっていきます。チーム内で一番パフォーマンスが高いメンバーがアプリケーションの開発に時間を割けない状況でシャドーオペレーション(「影の」運用チームメンバー)になってしまう状況が起こり得るのかなと思います。
これが仮にOpsが得意だったメンバーがチームに配置された状態で行われていればまだ良いのですがそうでなくDevチームへのインフラタスクの移譲がOpsチームのKPIなどに設定されているケースだとOpsチームから渡されたタスクに翻弄され組織的な生産性は下がるがOpsチームの評価は上がっていくというミスマッチが起きてしまっている場面を何回か見たり聞いたりしてきました。こういった状況にも有効なプラットフォーム・エンジニアリングの考えは個人的にもとても注目していきたいなと思いました。