マネージャーでも小さいチームであれば、マネジメントしつつ、コードも書くようにしている。
これには色んな意味があるが、そのひとつに「エンジニア内での感覚がわからなくて、困っていることに共感できないので議論が上手くできない」というのがある。
ある程度大きいチームだとシニアエンジニアがこの役目を担えばいいんだけど、チームが小さいとマネージャーが兼任する必要があると思っている。
これができないと「仕事を振る人」と「タスクをこなす人」に分かれて、チームメンバーが好き勝手やるようになる。
もちろん好き勝手と言ってもチームメンバー自身は良かれと思ってやっているし、実際やった方が良いことも多いと思う。
しかし、小さいチームで成果を出すには「やることよりもやらないこと」の方が重要で、そのためには「やることを厳選する」必要がある。
また、やることを厳選したとしても、土台となるコードがスパゲティ状態だとなかなか進まない。
なので、この両局面の視点を持ちつつ、システム開発は続けていかないといけない。
ただ、この「この両局面の視点を持つ人」っていうのがレアキャラで、だいたい「最初からできる人」か「いくらやってもできない人」に分かれる。
このレアキャラがいない場合は、片面ができる人同士協力するしかないけど、どうしても緩衝材になる人が必要になってくる。
この辺りはチームビルディングになってくるから、採用から考える必要があると思っている。