求人作成サービスの開発チームのエンジニアメンバーのリーダーとして、5ー10の名程度のマネジメントを行っていました。このサービスは元々ベンダーによる開発を行っていたのですが、将来の拡大を見据えて内製に転換し、その最初の内製開発チームのリーダーとなりました。
# 知識の継承
私がリーダーを担当していた時期はちょうどサービスの拡大期にあったため、プロダクトに慣れていないエンジニアが次々に入ってくるような状態でした。彼らが円滑に開発を行えるよう、ドメインやコードベースに対する知識を付けていけるようにする必要がありました。
内製開発チームが複数に増えた後も、とりあえずプロダクトの知識を付けるのに適したチームであったことから、「最初にこのチームに入って慣れる」といった場面が多々あり、その意味でも育成は重要な責務でした。
# 運用改善
外注から内製に転換したばかりのプロダクトで、運用面に改善の余地が多々ある状態で引き取っておりました。開発の優先度判断はPdMが行うのですが、ビジネス上求められる開発のみならず運用改善にリソースを振り向けられるように説明していく必要がありました。
# 知識継承について
## オンボーディング
新しく入ってきた方が早期に戦力となってもらえるように、オンボーディングの整備に力を入れました。「どのような開発ツールをインストール・アカウント発行申請しなければならないか」「それは誰に依頼すればいいか」「開発環境はどのように構築するか」等をドキュメントにまとめ、それに従って開発が始められる状態になれるようにしました。
その際、困ったところがあったら逐一ヒアリングを行い、ドキュメントを常にアップデートすることで、次以降の人が同じところでつまずかない状態を作りました。
## タスクの振り方
無事オンボーディングの作業が終わったら、実際のタスクを通じて慣れていってもらうことになるのですが、最初の1、2か月に渡すタスクの内容にはかなり工夫を行いました。具体的には、影響範囲がそこまで大きくなく、かつビジネス上の納期の要求が高くないものを渡せるよう、受け入れ前の時点でPdMと相談してOJT用のタスクを用意していました。このタスクを通じて、実際の開発フローを学んでもらうことで、徐々により複雑な開発を行ってもらえる体制を整えました。
## コードレビュー
コードレビューも、知識継承に資する重要な取り組みの1つです。結論、歴の長い人1人と歴の短めの人1人の2人を各PRに割り当てて、レビューしてもらう体制を取りました。歴の長い人のレビューによって品質を担保してもらいつつ、歴の短めの人も改修前後のコードや歴の長い人のレビューを通して学んでいってもらうことが出来る、という両方の狙いがあり、ある程度うまくいっていることから4年以上この形で運営しています。
# 運用改善(マネジメントの側面から)
元々が外注開発故エンジニアから案件を起案する文化自体がなかったため、まずその仕組み作りから始めました。スクラムの振り返りを活用したり、改善点を気軽に投稿できるSlackチャンネルを作ったり、パフォーマンスやエラーの定点観測会を開催したりといった取り組みで現状の問題点を吸い上げ、チケット化ルールを策定して案件化出来るようにしました。「外注時代普通に行われていた手動データ書き換えの撲滅」「不要コードの削除」「クエリチューニング」といった内容がエンジニア側からチケット化されるようになり、各チケットについてPdMへの背景共有を行って、こういった内容が実施されていくサイクルを作りました。