このエントリは、SmartHR Advent Calendar 2023 シリーズ2の21日目の記事です。
こんにちは、SmartHR基本機能でプロダクトエンジニアをしているyonoです。
さて今回は、開発チームのスキル向上のための取り組みについて、いくつか紹介したいと思います。
背景
私が所属しているチームでは、開発タスクはバックエンドやフロントエンドといった区切りではなく、ユーザーストーリー単位で作成しています。そのため、一つのタスクを完結するにあたって、バックエンドとフロントエンドどちらのスキルも一定量必要となってきます。
基本的には一人でタスクを完結できること、という前提がありつつも、タスクの難易度や規模によってそれぞれの領域を作業分担しながら進めていました。
しかし、異動などがありチームメンバーが減ったことで作業分担がスムーズに進まなかったり、特定のメンバーに負荷が集中するケースが増えてきました。
そこで、プロダクトエンジニアが今よりもさらに一人でタスクを完結できるようになるべく、スキル向上のための取り組みを実施しています。今日はそれらについてご紹介します。
「コードについての素朴な疑問」を聞く機会を定期的に設けた
スキル向上を目指すにあたって、まずは小さくできることを考えてみました。具体的にはチームメンバーが普段コードを書く中で困っていることを収集して、個別に解決できる方法がないか、という方針で考えてみました。
そこで、チームメンバーが「普段気になっているが、わざわざSlack上でメンションして質問するまでではない」と思っていることを「素朴な疑問」と名付けて、この疑問を聞ける機会を定期的に設けるようにしました。進め方は以下の通りです。
- スプレッドシートを準備しておき、素朴な疑問が浮かんだら都度追記する
- 週に一度、チームみんなで新たに追加された疑問を眺める。疑問に答えられる人がいたらその場で答える。
具体的に挙がってきた疑問をいくつか挙げてみます。
- (Railsの)migrationファイルとschemaのversionってどういう関わりで、migrate時に意識すべきことはなんでしょうか?
association_id == other_association.id
とassociation == other_association
のような比較ってどういった違いがありますか?useFoo
のような関数ってReactでの設計パターン的にはどういう概念?- TypeScriptで
index.ts
って作ったほうがいいですか?そうでもないですか?役割がわかってないので悩みました
実際に話してみると、疑問を書いたメンバー以外からもさらに疑問が出てくることも多く、実はそれぞれちょっとしたモヤモヤを抱えながら普段の開発を進めていたことがわかりました。
過去に実施したRails勉強会の再実施
チーム内の素朴な疑問を聞いていく中で、RubyやRailsについては一度体系的な勉強会を実施する必要がありそうだ、と考えました。そこで、過去に実施したRails勉強会を再実施することにしました。過去に実施した勉強会の詳細については社内でRails勉強会を開催した話 - SmartHR Tech Blogをご参照ください。
当時の勉強会の様子は録画してあるのですが、今回は録画の閲覧ではなく再実施することにしました。
理由としては以下の通りです。
- 当時は社内の全プロダクトエンジニアが対象だったが、今回はチームメンバーのみが対象であり、普段触っているコードと絡めてより深い話ができそうだった
- 一方的に動画を見るだけでなく、相互にコミュニケーションを取ることでより理解が深まると考えた
- 3年前と比較するとRubyやRailsのバージョンがそれぞれ上がっており、録画に対して補足が必要な状況だった
こちらについては執筆時点でまだ完結していませんが、普段の会話の中で「これはRails勉強会で見た◯◯ですね」といった形で細かいやりとりをスキップできるようになっており、一定の成果を感じています。
効果について
実際、こういった取り組みがどの程度効果があったかについて、チームメンバーに感想を募ってみました。
- 「コードについての素朴な疑問」を聞く機会を定期的に設けた
- 何となくでしか分かっていないけど、チャットやペアプロで聞くほどではないな・・・な温度感のものをとりあえずスプレッドシートに追加して後で聞けるのは心理的にも質問しやすくなった
- 遠慮する気持ちが生じないのがありがたい
- 他の人の質問が大体自分もわからないことなので、いい循環が生まれている気がする
- スプリントタスクには直接的には関係ないのですぐに解決したい訳では無いが、よくわかってないんだよな〜という行き場のない疑問が質問できるようになり、コードベースの理解が今までより捗るようになった
- 過去に実施したRails勉強会の再実施
- 一人ではなかなか本を頭から読み進めていけないので、こうやってみんなでやれるのは助かる
- かなり前に一周した本だったけど忘れてしまっていることが多かったので改めて見直せて良かった
- フロントエンド勢も一緒なので、「バックエンドだけどRails未経験で入社しました」な自分にとっても仲間が多い感じして楽しい
- 実コードに絡めた話や質問ができるので、知識がしっかりと染み込んだ実感がありました!録画だとこうはいかないですよね〜
- レビュー時の心理的ハードルも心持ち軽減した気がする
概ね好評な結果が得られました。
おわりに
チームで行っている、プロダクトエンジニアのスキル向上の取り組みを紹介しました。今後もスキル向上を重ね、顧客にすばやく価値を届けられるチームを目指していきます 💪
We are Hiring!!
SmartHRでは一緒にSmartHRを作りあげていく仲間を募集中です!
少しでも興味を持っていただけたら、カジュアル面談でざっくばらんにお話ししましょう!