与太話です。
数ヶ月前、マネジメントをしながらメイン機能の開発をしていたら完全にタスクがオーバーフローして大変なことになったんですよ。 その時に「両立が難しいのは分かったが、なぜ両立が難しいんだろうか。」をひたすら考えていたら思いついた「たとえ話」です。
素潜り漁師と漁船で例えます。
エンジニアリングは素潜り漁
- コードを書いているときは集中して潜りきらないといけない
- エンジニアが割り込みを嫌うのはこのため
- 途中で呼び止められたら潜水をやめて浮上しないといけない
- 割り込みが終わったらまた潜り始める
- 難しい機能を作る時ほど深く潜らないといけないというイメージ
- 深さと釣果には相関がないので深ければ大漁というわけではない
- ただ、深い漁場は素人の素潜り漁師が到達できないので、漁場が荒らされていなくて釣果が期待できる
- 浅めの場所を複数箇所どんどん潜って数を稼ぐタイプがいる
- フルスタックエンジニアみたいなかんじ
- 深い場所に潜り続けて「あの海産物なら奴だ」と言わせるタイプもいる
- スペシャリストエンジニアといった感じ
マネジメントは漁船上にいる船長
- 漁船の上でレーダー・天候・海の様子をみたり、他の船や漁港に無線連絡したりする
- 船上で釣果を見ながら「ここは獲れなさそうだから移動するぞ」などとする
- 漁の終了などの管理もする
- 急なシケや船の接近に備えて注意を払う
- 失敗すると素潜り漁師が死ぬ or 釣果が振るわずに飯が食えなくなるので責任が大きい
- とにかく色んな状態・状況・様子を俯瞰して見続けないといけない
- 担当しなければならない視点・視座・視野がぜんぜん違う
- なのでこれを同時にやるのは非常に難しい
- 両立できる人は少ない
- マネジメントは小さく始まるので、みんな最初は両立できると思いこんでいる
- だんだんとエンジニアリングに割ける時間が減っていったり、逆にマネジメント系の仕事を受けないように整理していく
- できる人はいるか
- 複数サービスにまたがって開発している時に、コンテキストスイッチが速攻で切り替えられる人
- 定時内はマネジメント、定時後はエンジニアリングのように力強いした働き方ができる人