読者です 読者をやめる 読者になる 読者になる

seri::diary

プログラミングのこととかポエムとか

エンジニアからマネジメントのマネジメントをしてみてはどうだろうかという話

ポエム

いい加減このブログでもある程度固まったテーマに沿って技術的な話をしたいという思いもあるのだが、こういう教訓めいたポエムはそう気づいた時に書いた方がいいと思うので読者の皆様に置かれてはご勘弁願いたい。ポエム重点。

TL;DR

  • 例えディレクターやマネージャーがいるチームでも「こいつにはマネジメントが不要だ」と思われると放置される
  • 自分がどうマネジメントされたいかは自分がコントロールする必要がある。マネージャーと作業者は上下関係ではない。

いつからマネジメントされるのが当然と思っていた?

会社や組織によってマネージャーの仕事は異なるし、マネジメントの粒度や範囲が異なる。自分の過去を振り返ると、割と細かくマネジメントされてきた方なのだと思う。具体的な話をすれば、自分が持っているチケットは毎日進捗を朝回で報告させられる、なにか困ったことはないか?と1日に数回は聞かれる(ちゃんとした場ではなく昼食を取りながらとかの雑談レベルでそういう話が出る)。そういう職場が多かった。

それはそういうカルチャーだったからというのもあるだろうし、単に私が若かった(23歳~28歳ぐらいの話だ)からというのもあるだろうし、私の仕事っぷりが信用されていなかったからかも知れない。

自分はマネージャーからの「進捗どうですか?」に事細かに返答することが苦ではなかった。いつでも返答出来るように用意しておくことでいつでも自分の進捗を自分で管理することにつながると思っていた。だからマネージャーからは「進捗どうですか?」自分からは「進捗○○です」を返すのが普通の仕事の進め方だと思っていた。他のメンバーがどうだったかは知らない。しかし少なくとも自分はそういうやり方がワークする方法だと考え、自分が少数のチームのリーダー的なことをしていた時もメンバーのタスクは自分のタスクのように考え、割とマイクロマネジメントをしていたように思う。

そういう社会人生活を送ってきていたのだが、最近は様子が異なり、マイクロマネジメントをされることが無くなってきたことに気づいた。 会社やプロジェクトが変わればやり方は変わる。考えてみれば当然のことだが、何となく自分は常に同じようにマネジメントされながら仕事をしているのだと思い込んでいた。

しかしその思い込みは危険な思い込みだ。

自分が毎日出している日報、定例会議で進捗共有をしていいれば、自分をマネジメントする立場の人が情報をキャッチアップして勝手にあれやこれやと気をもんでマイクロマネジメントしてくれることはないケースもある。(というか今までが開発現場としては良い意味で特殊だったのではと思う)

必要な情報は全部こちらから関係者を質問攻めにして取りに行く。困っているかどうかなんてのは一切聞かれないから自分からどんどん進捗を吐き出す。困ったら「俺はこんなに困っているんだ!助けてくれ!」ぐらいのテンションで発信して助けてもらう必要がある。そういう現場に今はいるのだが、それはきっと世に言う「自走するエンジニア」ならば当然のことなのだろうと思う。

要件定義から設計から実装からプロジェクト進行管理からテストからリリース後の面倒まで全部見るのがエンジニアの仕事だと自分は思っているのだが、仮にそうならば上記のように働けなければ嘘である。要件の詳細や気をつけるべき所は向こうから全てもらえる、向こうがスケジュール引いて関係者と調整してくれているのであれば、それはこっちが要件定義やプロジェクト進行をサボっているのだ。

自分はその視点がどこか抜けていたのだと思う。全部やるのがエンジニアの仕事だと言いながらも実際は設計や実装にしか目が行っていなかったのではないか。そういう「受け身」の姿勢でいたせいで、そう反省させられるようなミスが最近何度かあった。

エンジニアからマネジメントのマネジメントをしてみるのが良いのではという提案

その上で自分がどうふるまうべきかと色々考えたのだが、ふとそれは、「マネジメントのマネジメントをすることではないか」と考えるようになった。

自分がどうマネジメントされたいかをマネージャーに伝え、自分の役割はこれこれで、マネージャーの役割はこれこれという風に役割分担したい、というところをきちんと合意しておく。こうすることで、自分が期待するマネジメントを受けることができて作業漏れを防いだりお互いのストレスを軽減できるのではないだろうか。

もちろんマネージャーから見てその役割分担が不適切であったり、実際回してみて上手くいってないと感じるのであればその度に見直しはあって然るべきだし、プロジェクトの進行状況に応じてお互いの役割も段々と変わっていくと思う。大事なことは、そういうことを「きちんと対話」して決めることだ。何となく言いたいことがお互いの中にあっても言ってなくて何となく役割決めましたみたいな感じだとそれはトラブルの元だ。

そもそもマネージャー=エンジニアより上の立場じゃなくね?

で、今まで自分はこういうことは考えても見なかったのだが、その理由として暗に「マネージャー=エンジニアより立場が上=逆らってはならない」という考え方が染み付いていたからだと思う。どこでそういう風に思い込んでしまったのか分からないが、それは間違った考え方だと今は思う。

自分が見てきた優秀なエンジニアはマネージャーに対してプロジェクトの進め方について意見していたし、寧ろマネージャー以上にマネージャーしていたエンジニアもいた。そういう人たちがやっていたことはまさに「マネジメントのマネジメント」だったのではないだろうか。現場のエンジニアが動きやすいようにマネジメントに対して要求する。そういうアクションはエンジニアからしか出来ない訳で、それもまたエンジニアのれっきとした役割なのではないだろうか。

というような、考えてみれば当たり前のことを最近になって改めて実感した。エンジニアとして働く中で、技術的な悩みよりも人間関係の悩みの方が圧倒的に多いし、現場で起きているトラブルも「大本を正せばエンジニア間のコミュニケーション不足が原因」みたいなことが多い。

逆にそこを上手く回せるようになってこそプロのエンジニアだと思う。自分はまだまだ出来ていないが、楽しくエンジニアとして働くためにマネジメントのマネジメントもスキルの一つとして磨いていきたい。