エンジニアもマネージャーも、システムを作って課題解決するのは同じ
この記事ではエンジニア = ソフトウェアエンジニアとして書きますが、適当に読み替えてください。
課題解決をするシステムを作る
- エンジニアはコードを書いて課題解決するのが仕事
- マネージャーは組織を作って課題解決するのが仕事
どちらもシステムを作るという意味では同じです。
組織を作るというのは、組織境界を引いたり、組織のプロトコルを作ってあげるということです。
組織のプロトコルというのは、ミーティングで話すべきこと、自分で解決してほしいことと相談してほしいこと、組織をまたぐコミュニケーションの方法などです。
処理されなかった例外は人間が対応する
- プログラムのエラーがアラートされたらエンジニアが対応する
- メンバーに対応できないことが発生したらマネージャーが対応する
メンバーに対応できないことというのは、プロトコル的にマネージャーに委ねるべきと決めてることや、そもそもプロトコル化されていないことです。
組織をまたぐコミュニケーションは絶対ダメとは限りません。適切にプロトコル化してあげれば(ミーティングの場を用意するとか、定型的なことであればアリにするとか、要求は聞くけど回答はすぐにしないと決めるとか)いいんじゃないでしょうか。そこらへんはある程度余裕を持たせておいても、人と人とのコミュニケーションなのですから、うまくいくのかなと。
例外パターンを一般化してシステムで解決する
- エンジニアは例外が適切に処理されるシステム設計をします
- マネージャーは例外が適切に処理される組織設計をします
それでもメンバーが処理できない例外はマネージャーに上がり、マネージャーが処理できない例外はその上のボスに上がります。最終的にトップが判断することになりますが、トップはそんな判断を毎日していたくありませんので、ちゃんと例外が処理される組織を設計します。
こうやっていくことで、最終的に人間がやるのはシステム化しにくい高度な判断が必要なことだけになるはずです。
何が言いたいか
自律するシステムを作るのって楽しいですよね!
実はエンジニアってけっこうマネージャー向きなのかもしれません。