総合格闘技から学ぶエンジニアマネジメントの本質
みなさん、大晦日が近づいてきましたね。
大晦日といえば紅白やガキ使、そして格闘技を思い出すのではないでしょうか?
昨今、総合格闘技が非常に盛り上がっており、UFCという世界最大の総合格闘技団体でも日本人の活躍が非常に目立っています。
ところで、私は今年の4月からエンジニアリングマネージャーになった、俗に言う新米EMというやつです。自分の勉強のためにマネジメント向けの資料を漁っていると、とあるnoteでこんな一文を見つけました。
「マネジメントは総合格闘技である」
この比喩、まさしくその通りだと思います。なぜならマネジメントは目標設定だけでもないし、コーチングだけでもないし、モチベーションコントロールだけでもありません。あらゆることを適切なシチュエーションで運用する総合格闘技なのです。
私はスタートアップで新米EMとしてチーム開発と技術戦略の立案に従事する傍ら、1年ほど総合格闘技を経験し、アマチュアの試合も経験しました。そこで学んだことは、エンジニアリングチームのマネジメントと共通していました。そして、その共通点は単なる比喩以上の、実践的な示唆を含んでいたのです。
チームの強みを活かすための戦略
総合格闘技では、自分の長所を最大限活かすために、他の部分で極端な弱点を作らないことが重要です。打撃が得意なファイターなら、テイクダウンディフェンスを磨いて試合を立ち技で展開できるようにする。寝技が得意なら打撃で極端に劣らない状態を作って組みに持ち込める状況を作る。
しかし、ここで重要なのは成長のプロセスです。強い選手とのスパーリングでは、自分の限界と改善点が明確になります。これは守りの技術を磨く絶好の機会となります。一方、同等以下の相手とのスパーリングでは、自分の成長を確認できます。両方の経験があってこそ、効果的な成長が可能になるのです。
これはエンジニアリングチームのマネジメントでも同じです。チーム内には様々な強みを持つメンバーがいます:
- バックエンド開発に深い知見を持つエンジニア
- モバイルアプリ開発の経験が豊富なエンジニア
- クラウドインフラに詳しいエンジニア
重要なのは、特定の領域に強みを持つメンバーがいることを活かしつつ、どの領域でもボトルネックを作らない体制を整えることです。例えば、ある機能開発において、最新のクラウドインフラに詳しいメンバーの知見を最大限活用しながら、他のメンバーもその領域の理解を深めていく。これは総合格闘技で、強い選手とスパーリングすることで自分のディフェンスが上達し、同等以下の相手とスパーリングすることで自分の成長を確認できるのと同じです。様々な相手と練習することで、自分に足りないものが見えてきて、それを補強していける。そういった成長の仕方が重要なのです。
チャレンジングなプロジェクトに取り組むことで、チームの限界と改善点が見えてきます。一方、比較的余裕のあるプロジェクトでは、これまでの成長を確認し、新しい取り組みを試す機会となります。このバランスがチームの持続的な成長には欠かせません。
アクションの例
現場での効果的な取り組みとして:
- 知見共有の仕組み作り
実践例:
- 実装で詰まった時に気軽に相談できる場がある
- コードレビューで実装の意図や背景まで共有している
- リリース後の運用を見据えて、複数人でカバーできる設計を心がけている
これらをベースに、さらなる展開として:
- 技術スタック別の経験値マップを作る
- 特定のメンバーにしか対応できない技術領域がないかチェックする
- 新規技術の検証は、できるだけ複数人で進める
チームの成長には、これらの取り組みを通じて、現在の状態を正確に把握し、段階的に改善していくプロセスが重要です。
厳しい状況に備える
総合格闘技では、実戦を想定したシチュエーションスパーが重要です。背後を取られた状態からエスケープしたり凌いだりする練習、打撃で攻め込まれている状況での耐え方、不利な体勢からの立て直し。これらの練習は、実戦での「最悪の状況」を想定したものです。
練習では、あえて不利な状況からスパーリングを始めることもあります。例えば、背後を取られた状態からスタートしたり、すでに疲労した状態で元気な相手と組んだり。理想的な状況下での練習だけでは、本番での想定外に対応できません。
開発チームでも同様です。急なトラフィック増加、予期せぬバグの発生、チームメンバーの突然の不在。こういった状況は必ず訪れます。そのため:
- 定期的なカオスエンジニアリング
- 主要メンバー不在時の開発プロセスシミュレーション
- 障害発生時のコミュニケーションフロー確認
といった「実戦的な練習」が重要になります。
しかし最も重要なのは、こういった状況下でも冷静に対応できる「基礎体力」です。総合格闘技で基本的なスタミナや筋力、構えの維持が重要なように、技術的な知識やプロセスを「型」として身につけることで、どんな状況でも適切に対応できるようになります。
プロジェクトの選択とチームの成長
チームの成長において、プロジェクトの選択は重要な要素となります。総合格闘技では、様々な相手とスパーリングを重ねることで成長していきます。強い相手との練習で自分の限界を知り、同等以下の相手との練習で自分の成長を確認する。
エンジニアリングチームでも同じです。新しい技術スタックへの挑戦や、技術的負債への取り組みのタイミングは、チームの現在の状態を見ながら判断します。時には会社の状況や市場環境によって、技術的負債を一時的に受け入れる選択も必要になります。これは総合格闘技で、必ずしも理想的ではない状況下でも戦い抜く力が求められるのと似ています。
ゲームプランの重要性
総合格闘技では、相手との組み合わせによって最適な戦略が変わってきます。しかし本質的に大切なのは、自分たちの戦いたい方法で戦えるようにすることです。そのために必要な準備をし、実力をつける。これがゲームプランの基本となります。
これはプロジェクトマネジメントでも同じです。チームが最も効率よく、質の高い開発ができる方法で進められることが理想です。そのために:
-
開発序盤で重要なのは
- チームが望む開発スタイルを実現できる技術スタックの選定
- その実現を妨げる要因の特定と排除
-
開発中盤では
- チームの持ち味を活かした開発の流れを作る
- 必要に応じて開発プロセスを調整する
-
開発終盤では
- チームの力を最大限発揮できる状態で仕上げる
- 次のプロジェクトに向けた学びを得る
もし望む形での開発が難しい場合、それは単に開発プロセスの問題ではなく、チーム全体の開発力を底上げする必要があるサインかもしれません。総合格闘技で言えば、理想の試合運びができないのは、基礎体力や技術が追いついていない証拠なのと同じです。
まとめ
本記事で見てきた、エンジニアリングマネジメントと総合格闘技の重要な共通点を整理すると:
- チームの強みを活かし、弱点を補強する戦略の重要性
- 厳しい状況に備えた実践的なトレーニングの必要性
- 理想的な戦い方を実現するためのゲームプランの重要性
そして何より重要なのは、状況が理想的でない中でも、着実に前に進んでいく力を養うということです。マネジメントが総合格闘技に似ているのは、こうした本質的な部分なのかもしれません。
株式会社カウシェのProductチームによる技術ブログです。私たちと一緒に世界一楽しいショッピング体験をつくりませんか? enjoy-working.kauche.com/product
Discussion