自己紹介
この記事はEngineering Manager vol.2 Advent Calendar 2018 25日目の記事です。
株式会社レアジョブ でエンジニアリングマネージャーをしていました。
去年の11月に1年のフィリピン出張を経て帰国し、今年春から新プロダクト開発のエンジニアチームのリーダーとして奮闘してきました。@yashioです。チームギークが好きです。
今年の締めくくりとしてマネージャーの役割ってこういうことかなあ、ということを書いてみたいと思います。簡単に概要を紹介します。
チームとプロジェクトの背景
- 5-6名程度のチーム(多少の変動あり)
- サーバーサイドのAPI開発 サービス連携を伴う
- 新規プロダクト開発
- メンバー編成は過去にお仕事をしたことがあったりなかったり
- 連携調整する部署やチームが多いのが特徴(基盤、フロント、運用、協力会社、フィリピン子会社 などなど)
- プロダクトのゴールはあるが、仕様的なものはプロジェクト開始時に詰めていくスタイル
その1調整し、俯瞰するひと
つまり、、「調整(おば/おじ)さん」!
エンジニアリングマネージャーとは
チーム内に発生する「障害となる、なり得るもの」を見つけ解消していく、そこに尽きるのではないかと思います。具体的には以下のような役割の人かなと思います。ちょっとお節介?なニュアンスなのかもしれません。
- 人と人とで連絡をとりキャッチボールしないといけない問題を拾い停滞している問題を率先して消化
- 技術要件で手をさしのべる、あるいは助けてくれる(人/糸口/技術)を知っており解決策を教えてくれ
- (エンジニア的には生産的だと思えない)一部のタスクを率先して消化
- 「あれ、どしたの元気ないね」と声をかける
もう少し見栄えを良くすると・・・
1.チーム内の課題/相談に対して解決手段を講じる
2.チーム内で収束しない議論や方針で答えが見出せない時の先導
3.やるべきことを見える化
4.関係部署と連携・調整していく(粒度が荒いフェーズの仕様詰め、実装/テスト/本番構築のスケジュール、テストデータ/テスト仕様書整備/実施など)
その2「意思決定」を早める
不確定要素が高い課題についてを相談された場合はできるだけ早めの判断をします。誰がきめてもいいのだけど、決めかねてる時には自分が決断する。「メンバーを迷わせない」というのは重要な役割です。それと・・・信頼関係がチーム内に醸造されていないフェーズでマネージャーがいつまでもその課題を抱えているとメンバーは何度も状況を確認しにくいです。
その3「心理的安全」の維持
チーム内ではメンバーそれぞれ得意な領域がありアウトプットが出やすいところや挑戦してみたいところを尋ねてそれらをお任せするようにしていました。
正直にいうとこの規模でも開発の初期段階だと決めないといけない事が多く、この方法しか取れなかったという事実もあります。ただ結果的にチームの中でも「これを聞くのはXX さんだね」ということでお互いを尊敬する文化が醸造できたなと感じてます。対リーダーや対メンバーに限らずお互いを尊重し、意見を聞くという姿勢がチーム内にあることで「こんなこといってもいいのかな」という心理的要素をできるだけ排除することができたと感じられるようになりました。
あとがき
昨今エンジニアリングマネージャーというワードがホットですが本当に役割の一つだと感じています。
が、一点。「調整さん」の役割は一部エンジニアにむいてないところもあると感じています。私自身もサーバサイドエンジニアである経験から、開発業務とやプロダクト開発と、調整業務というのは全く別の能力であるからと考えるからです。
自身の書くコードで戦える「開発業務」とチーム全体を一つの生き物ととしてとらえ、価値を最大化させることを常に念頭において立ち回る調整や「連携業務」は視点や注ぐ能力が異なるからです。
最後に
マネージャーをしていた、と過去形になってしまいましたが、年内でレアジョブを卒業し新しいチャレンジにむかいたいと思います!最後までよんでいただきありがとうございました。
チームのみんな!わたしは今でも一緒にお仕事できたことをとっても嬉しく思ってるし、いつかまた一緒に仕事ができるとおもっているよー!!またチャーハンたべよう!