はじめに
はじめまして。GENEROSITYで開発チームリーダーをしている西村です。
普段はプロダクトマネージャー兼案件のプロジェクトマネージャー兼プロダクトの開発をしています。(多い)
その他、採用活動(スカウティングや面談)や開発チーム全体の戦略・先述の策定および実行・AWSアカウントの管理などもやっています。(多い)
現在プロダクトのチームは私を含む3名で、チームメンバーはプロダクトの機能開発とプロダクトを使用したプロジェクトのカスタマイズ開発を担当してもらっています。
プレイングマネージャーあるある
日本のIT業界では人材不足が原因で、開発をしながらマネジメントをする方は多いと思います。(つらい)
プレイングマネージャーのみなさんはこんなご経験があると思います。
- レビュー・進捗管理・フロント業務・開発相談をしていると気がついたら終業時間になってる
- やっと時間が出来たと思って実装をしているとレビュー依頼や相談が発生
- 実装が進まなく開発メンバーの開発に影響が出る
うっとなりますね。
感じている課題
自己完結するタスクに取り組む時間を確保すること
最近はまとまった時間を確保することが難しく、集中して自分のタスクに取り組むことが難しかったです。
現在私の抱えているタスクは概ね下記の通りです。
- チームメンバーのタスク管理(プロダクト・プロジェクト開発)
- プロダクト開発
- 採用活動(スカウティング・面談・リスト管理)
- チームメンバーとの1on1MTG
- 開発チーム全体のAWSアカウント管理・コスト削減(最近AWS Organizationsを導入しました)
- プロジェクトの開発管理・フロント業務
この中で、AWSアカウント管理とプロダクト開発は比較的自己完結するタスクなのですが、多い時だと、1時間に1件MTGや面談があることがあります。どれも必要なためこれについては仕方ないです。
ただ、まとまった時間の確保をすることが難しく、特にプロダクト開発をするための時間を捻出出来ていなかったことが多かったです。
そこで、時間の使い方を見直しました。
気をつけないといけない点
見直す前に自己完結するタスクに割くまとまった時間を単純に増やせばいいわけではないので、下記については気をつけました。
- チームメンバーのタスク進捗の阻害をしないこと
- 案件の進行に影響を与えないこと
- チームメンバーの心理的安全性を確保すること
チームメンバーのタスク進捗の阻害をしないこと
自分のタスクに集中するあまり、チームメンバーのタスクに影響するのはマネージャーとしての業務を放棄していると同義です。
案件の進行に影響を与えないこと
これも同上で、マネージャーとしての業務を放棄しないように気をつけます。
チームメンバーの心理的安全性を確保すること
心理的安全性が何かはここでは割愛しますが、チームメンバーをお座なりにしていると、生産性の低下を招いたり、最悪の場合退職してしまったりすることがあります。放置は厳禁です、見守ります。
話しかけにくい状況をなるべく作らないようにします。
取り組んでいること
気をつけないことを踏まえ、大きく分けて6つのことを決め、改善しました。
改善・新たに取り組んでいること
- カレンダーに1日の予定を入れて時間をブロッキングする
- レビューの時間を決める
- チームメンバーのタスクの状況と懸念点を解消する
- チームメンバーに自分の予定を共有する
- チームメンバーとのコミュニケーション量を調整する
- チームメンバーの自律駆動を促す
カレンダーに1日の予定を入れて時間をブロッキングする
これは採用活動をし始めたときから取り組み始めましたが、採用面談は候補者のスケジュールを優先するので、ブロッキングをしない限りいつでも予定が入ります。
全ての空いた時間をブロッキングしてしまうと、候補者と面談する時間がなくなってしまうので、まとまった時間を確保したいときはあらかじめブロッキングします。
まずは、普段のコミュニケーション(相談やプルリクエストレビューなど)以外の時間を可能な限り自分でコントロール出来るようにしました。
レビューの時間を決める
緊急度が高くなければすぐにレビューをせずに、朝と夕方の決まった時間に計2時間ほどレビューを受け付ける期間を設けました。
これまでは、プルリクエストが出し終わるとタスクが滞ってしまうことがあるため、すぐにレビューをするようにしていましたが、こちらから事前に受け付ける時間を設けることでチームメンバーに時間を調整してもらうことにしました。
これをするにあたって、スマブラの生みの親である桜井政博さんのYoutube動画の『その日のうちに全てこなす 【チーム運営】』から影響を受けました。
桜井さんは毎日監修依頼が山のようにくるとのことで、依頼対応の時間を決めて対応するみたいです。これにより多忙でも自分の時間を捻出出来ているんですね。
余談ですが、桜井さんの動画はゲーム・仕事に対してのパッションを感じて見ていてこちらも刺激を受けます。
これまで不確実だった、レビュー依頼のタイミングを固定することが出来て自分のタスクに集中することが出来るようになりました。
チームメンバーのタスクの状況と懸念点を解消する
ここで言う、タスクの状況というのは予定している時間までに終わることが出来るかです。
懸念点はタスクに対して悩んでいたり、詰まっていたりしていることがあるかを確認することです。
マネージャーやテックリードなどはこういったことを解決するのは当たり前ですが、気がつくと一日が終わってしまっていて、蓋を開けたらタスクがあまり進んでいないということがそこそこあります。
なので、私は、
- 朝会でタスクの状況と問題点・懸念点の確認→もしあった場合は別途時間を設けて解消
- 夕方頃に『今どんな感じですか?』と聞く
という2点をやりました。
『今どんな感じですか?』の有用性
朝会はわりと一般的なので割愛しますが、自分のタスクがはけるだろう夕方にオープンクエスチョンで、『今どんな感じですか?』と聞くことが多いです。
この質問をするメリットは、タスクの状況がリアルタイムで把握できることと、放任しているという感覚をなくせるということだと思います。
チームメンバーの感じていることや、考えていることに耳を傾けることで、信頼関係を築いたり、チームの結束力を上げることにも寄与していると思っています。
タスクの進捗が芳しくない場合は「実はこういうところで悩んでいまして〜..」と回答が返ってきて、実は問題を抱えていることが判明します。また実際に話をすると思考が整理出来て、自分で解決してくれることもあります。
さらに、着眼点を少し変えれば簡単に解決出来ることであったりなど、様々なメリットがあります。反対に、順調な場合は一言「いい感じです」と返ってくるので、安心してタスクを任せることができます。定期的にメンバーを気にしているということを伝えると、心理的安全性も確保しやすくなると思っています。
自分の予定を共有する
先述の通り、カレンダーをブロッキングしたり、レビューの時間を決めるなどをするのですが、他にも予定が入ってしまっていて進捗に影響が出てしまうようなことが避けられないことがあります。しかし、事前にそういった予定は共有しておくことで、予めチームメンバーから抱えている問題や懸念点を吸い上げられます。なので自分の予定をチームメンバーに共有するようにしました。
チームメンバーとのコミュニケーション量を調整する
コミュニケーションは過不足なく適切であることが大事です。
質問の意図が分かるような話し方を意識してもらう
PMやPdMの業務としてよく相談や質問を受けますが、質問をする際は、下記のことを意識してもらっています。
- クローズドクエッション
- 結論から入る
- どうしたいのか、どうしてほしいのかを明確に
- 主語、目的語、補語を省略しない
- 指示語をできるだけ(明らかでない限りは)使わない
- 曖昧な表現は避ける
質問の仕方や考え方は『質問は恥ではないし役に立つ』の記事を参考になるかと思います。
テキストだけのコミュニケーションだけではないので、主に4つのことを意識してもらいます。
- 結論
- 抱えている問題や懸念
- 解決するために何をしたか
- 前提事項の共有
結論はまず何が聞きたいのかを教えてもらうようにしています。
質問・相談をする際は、簡潔に相手に内容が伝わるようにすることが大事です。
実際に質問を想定してみます。
Bad Question
今ユーザーにプッシュ通知を送る処理を修正しているのですが、
一部のユーザーに対して送信がうまくいっていなくて、この原因分かりますか?
この一文読むだけでもSAN値が削られそうですが、実際にこのような質問をされる方はいらっしゃいます。
良くないポイントとして、
-
実質オープンクエッション
- 原因がもし分かった場合でも、質問者がどこまで理解・調査をしているかが分からないのでコミュニケーション量は増加します。
-
「うまくいっていない」という曖昧表現
- これは単純に調査不足です。APIのレスポンスが400なのか500なのかでも話は変わってきます。
- うまくいっていないと言われると、何がうまくいっていないのか一つ一つ確認をとらないといけないのでコミュニケーション量が増加します。
-
自分で考えることをせず答えを求めている
- 何が原因かのアタリをつけることが大事です。そのためにも事前の調査不足の状態で質問をしてきていることが分かります。
Not Bad Question
今〇〇案件のプッシュ通知の送信処理のタスクを着手しています。
一点送信処理が送れない原因を特定出来ず、詰まっています。
一部のユーザーに対して送信処理をするためにAPIにリクエストしましたが、レスポンスが404で返却されました。
404だったので、叩いたAPIのルーティングを確認しましたが、ルーティングに誤りはありませんでした。
キャッシュについてもルーティングファイルを更新後削除しました。
ただ、依然として問題が解決できず、何が原因か分かりますか?
この質問をされた時点で、バックエンドとフロントエンドでの疎通周りで何かしら問題が発生していることから、
アクセス制限や、ルーティングの設定ミスなどが原因なのではないかとアタリをつけられます。
ただ、質問に対して推測でしか回答することが出来ず、回答する側の負担が大きくなってしまいます。
推測があっていればいいですが、推測でしか回答ができない質問・相談は、「〇〇ではダメでした」→「じゃあ次に〇〇をやってみようか」→「〇〇もダメでした」...→ のようなコミュニケーションの回数を増やすことにも繋がります。(あるある)
また、答えを求めてしまっていて自分で考えることが出来ていない状態です。
Good Question
プッシュ通知の送信処理で、一部のユーザーに対するAPIリクエストが404エラーを返しています。
リクエストURLは[具体的なURL]、使用しているHTTPメソッドはPOSTです。
ルーティングは確認済みで、キャッシュの削除も行いました。
サーバーログやネットワークトラフィックの詳細も添付します。
この問題の原因について何か考えられる点はありますか?
この質問は、自分がやったことと、考えられる情報を共有出来ていること、かつ質問内容が簡潔なところがGoodです。
考えられる点を聞かれているので、回答者の負担も少ないです。今持っている情報で回答することが出来ます。
あまり例が良くなかったもしれないですが、質問は出来る限り詳細に、かつ簡潔にすることが大切です。
1on1の頻度を落とした
チームメンバーと毎週30分1on1をやっていましたが、メンバーの成熟度が上がってきていることと、相互理解が深まってきていると判断をしたため、1on1の頻度を隔週に変更しました。
固定された予定はなかなか削減することは出来ないですが、お互いに適切なコミュニケーション量であれば問題ないので適宜調整しました。
チームメンバーの自律駆動を促す
これは一朝一夕で出来ることではなく、長い目で見ないといけないです。
少しずつ求めているレベルを高くしていくことや、裁量権を増やすこと・視座を高めてもらうことが必要です。
理想は自分のタスクの管理をしてもらい、最小限のコミュニケーションでプロジェクトやプロダクトの遂行、そして各々のスキルが成長することです。
そのために、まずは課題を発見するところから参加してもらっています。
プロダクト開発に関しては、隔週で機能改善のミーティングを行っています。自分で課題を見つけるトレーニングです。
また、当事者意識といいますか、能動的に行動してもらいたいのでやっています。
また、解決能力に関しては、アウトプットをしやすい環境を作って(勉強会や技術ブログなどの推進)います。
小さなところから問題や課題を発見し、解決案を考え、実行する成功体験を増やしていくことが大切だと思います。
このような自律駆動を促すことで、メンバーとのコミュニケーションが自然と適切な量になると思っています。
最も大事なことは健康
身体の調子が悪いとせっかく時間を作れても作業に集中することが出来ません。
十分な睡眠と適度な運動はもちろん、作業に集中した後は、休憩をいれたり散歩をしたりしましょう。
もしも身体に異常がある場合は無理をせずに病院に行くことをオススメします!
まとめ
自分の出来る範囲で時間をコントロールし、不確実な要素を減らしていくことが重要です。
自分もまだまだなので、メンバーと一緒に成長していきたいです。