エンジニアの多くは、マネジメントという役割に不安を感じています。プログラミングの時間が減って、技術力が落ちてしまうのではないか。人間関係やコミュニケーションは、コードほど論理的ではない。マネージャーになると、自分の強みが活かせなくなってしまうのではないか。
私もエンジニアからマネージャーになる際に、同じような不安を抱えていました。しかし、システム思考という考え方に出会い、エンジニアリングとマネジメントが意外にも多くの共通点を持っていることに気づきました。今回は『世界はシステムで動く』という本から得た学びを元に、エンジニアの強みがいかにマネジメントで活きるのかをお伝えしたいと思います。
世界はシステムで動く ―― いま起きていることの本質をつかむ考え方
システム思考のレンズ
システム思考には多くの重要な概念がありますが、今回の話に関連する2つの視点を紹介したいと思います。
1. ヒエラルキー:サブシステムの視点
システム思考では、世界はサブシステムの階層構造として捉えることができると考えます。小さなサブシステムが集まってより大きなサブシステムを形成し、それがさらに上位のシステムの一部となる。このように、システムは入れ子構造をなしています。
私たちエンジニアは、日々の開発の中でこのような階層構造を意識しています。小さな関数がモジュールを構成し、モジュールがサービスを構成し、サービスがプロダクトを構成する。このような構造は、実は組織においても同様に存在します。
ここで重要なのは、各サブシステムの目的とシステム全体の目的の関係です。時として各サブシステムが自己の目的を優先するあまり、システム全体の目的が達成できなくなってしまうことがあります。システム思考では、このような状態を「部分最適化」と呼びます。
例えば、エンジニアチームがプロダクトの優先度を無視してリファクタリングに没頭したり、チームメンバーが自身のキャリアだけを考えて他のメンバーとの協力を避けたりするような状況です。一見するとそれぞれの立場では合理的な判断に見えますが、システム全体(プロダクトや組織)の目的達成を妨げてしまう可能性があります。
2. 限定合理性:システムの見え方
限定合理性とは、「人は自分の持っている情報に基づいて、きわめて合理的な意思決定を行う」という考え方です。つまり、私たちは見えている範囲の中で最善を尽くそうとしますが、その見える範囲には制限があるということです。
エンジニアとして働いていると、自然と技術的な視点が中心になります。コードをどうリファクタリングするか、APIをどう設計するか、パフォーマンス問題をどう解決するか。これらの判断は、技術的な文脈の中での最適化といえます。
マネージャーの立場でも同様です。ただし、考慮すべき範囲は広がります。技術的な判断に加えてビジネス的な判断が必要になり、直接のチームメンバーだけでなく、他チームや顧客との関係なども視野に入れなければなりません。
限定合理性の観点から重要なのは、より良い結果を生むためには個々の判断の最適化だけでなく、システム自体の設計が必要だということです。つまり、情報の流れ、目標設定の方法、意思決定の仕組みといったシステムの構造を適切に設計することで、個々の限定された視点からの判断の積み重ねが、全体として望ましい結果につながるようにすることができます。
システムの視点の拡大
エンジニアからマネージャーへのキャリアチェンジは、決して「エンジニアリングから離れる」ことではありません。むしろ、より大きなシステムの設計・運用に携わることになると考えることができます。
コードやアーキテクチャは、より大きなシステムのサブシステムとして存在しています。コードは製品の一部であり、製品はビジネスの一部です。そしてビジネスは社会という大きなシステムの一部として機能しています。
マネージャーになることで、これらのより大きなシステムに直接関わることができるようになります。エンジニアとして培った、システムを理解し、設計し、改善していく経験は、組織やビジネスというより大きなシステムを扱う際の強力な基盤となります。
まとめ
エンジニアからマネージャーへの転換は、扱うシステムの範囲と抽象度が広がっていく過程と捉えることができます。人という不確実な要素を扱うことへの不安は自然なものですが、システム思考という視点を持つことで、エンジニアリングの経験を活かしながら、新しい課題に取り組むことができます。
マネジメントに対して拒否感や苦手意識のあるエンジニアの方は、より大きな影響力を持つシステム設計者への成長であり、新しい形でエンジニアリングの醍醐味を味わえる機会と捉えてみてはいかがでしょうか。
