SmartHR Tech Blog

スマートエイチアール開発者ブログ

入社1週間でスムーズに開発に参加できるようになった理由

こんにちは、12月からSmartHRにジョインしましたエンジニアの @h1kita です!
入社して3週間がたちましたが、入社して1週間後にはガンガンコードを書いていけるようになりました。
今回は私が入社してから経験した、開発がスムーズに進められる助けになった、よかったことについていくつか紹介したいと思います。

f:id:shunhikita:20170329161553j:plain

前提

  • 私の配属されたチームではバックエンドが Ruby/Ruby on Rails, フロントエンドがES2015/Reactで実装されて、私自身それらの経験はありました
  • 私含めた、5人のチームでスクラム開発を行っています

ウェルカムモブプロ 🎉

入社後すぐに、開発におけるルールや設計、各クラスやモジュール、コンポーネントについて学べたのがモブプログラミング(以下「モブプロ」)です!
環境構築は済ませたけれど、まだコードを見れていないときにモブプロで入社を歓迎してもらいました!(モブプロについて知りたい方はこちらの記事を御覧ください)
私がドライバーを担当し一つの機能を作ってPRまで出すという、バックエンドもフロントエンドも変更が必要な内容でした。
モブプロ前の私の心理は以下のような感じでしたが、モブプロをすることで一気に解消できました!

  • そもそも、このサービスにおけるどんな機能についての話なんだろう?🤔
  • このチケットの機能はどんなユースケースのときに利用される機能なんだろう?🤔
  • この機能に使えるモジュールとかクラスはあるのかな?🤔
  • コーディング規約とかってどうなってるんだろう?🤔
  • フロントはどんな感じで書かれてるんだろう?🤔
  • ... etc

実際に行ったモブプロについてですが、まずは機能がわからないので、このサービス全体の操作の流れを教えてもらいました。その間も画面を操作するのはドライバーの私なので、私がどこで詰まるかをメンバーは見ていてサービス改善に活かそうとしていました。(はじめての人が直感的にわかるかどうか大切!) それから、このチケットの要件を確認し、実際に実装を進めていきました。
ところどころで、モデルの責務やリレーションを聞いたり、「こういうモジュールがあるよ」と教えてもらったり、「コンポーネントはここ見ればわかるからここ見ながら作っていってね」などを教えてもらいながら実装しました!2時間はかからないくらいでPRまで終わったと思います!
もし、自分ひとりで実装をしていたら、多分モジュールに気づかないでメソッドを作っていた気がするし、コンポーネントはいちいちコードから探していただろうし、機能についても自分で全部把握しようとしていたと思うので、かなり効果は大きいと思います。

モブプロでいろいろ最初に知れたおかげで、次のチケットからはかなりスムーズに開発が進められました。新メンバージョイン時のウェルカムモブプロめっちゃおすすめです!
その他にも、Railsアップデートや複雑なテストケース作成をモブプロでやったりしましたが、ちょっとやっかいな課題をチームで一気に解決するのにモブプロはとてもよいアプローチな気がしています。

リファインメント 🔨

次にリファインメントです。
私のチームではスクラム開発で開発を進めていて、1週間に1度バックログから優先度の高いチケットにストーリーポイントを付与するリファインメントが行われます。
ストーリーポイントの決定にはプランニングポーカーを使っています。見積もりが難しそうな場合には、全員で要件を分解し、「こうすれば解決できそうだよね」を考えてチケット毎にポイントを出し合います。それでもポイントがずれる場合には、実際にコードを見ながら、「ここをこう変えればいける」とか「このモジュールのこれ使えばできるね」などの具体的な実装方法まで話し合います。ときには「あれ?もうできたじゃん」っていうところまで詰めていきます。
その過程で、自分が担当していない部分の要件や実装についても網羅的に学べるし、みんなである程度実装の合意がとれているため、実装中に「これでいいかな?」と不安になったり、「ここどうやればいいんだろう」みたいな不安を減らせています。 新メンバーの場合、前提知識が少ないので、いきなりチケットを渡されると要件の中にチーム内での暗黙知やコンテキストによるものが入っていると要件を勘違いするケースもあるので、詳細までみんなで詰めるメリットはそういった意味でも大きいと思います!

レビュワーへのアサイン 🙏

次にレビュワーへのアサインです!
正直レビューするのは、もうちょっと慣れてからかなと思ってたのですが、2日目にはもうアサインされていましたw
最初はドメイン知識も少ないので、聞かないと分からないことや多少時間がかかることもあるのですが、レビューすることで他のメンバーの作り方やクラスやモジュールの存在、初めて見るGemの使い方などの学びが多いため、レビュワーにアサインしてもらうのもいろいろな学びがあって良かったです。

最後に

言語やフレームワークなどの技術的な知識以外にもチームでプロジェクトを円滑に進めていくには、必要な知識が幅広くあると思います。ドメインの知識だったり、チーム内で決めた規約だったり……そういったものを新メンバーにインプットする際の手段として今回私が体験したものは効果的だったように思います。

また、いくつか紹介をしましたが、これらを支えているのは心理的安全性が高い仕事環境だと思います。 SmartHRは会社の価値観がメンバーに行き渡っていて、価値観の似通った人たちの集まりなので、コミュニケーションのとりやすい仕事環境です!実際に入社してみて、心理的安全性の高さがチームでの仕事をより効果的にしているような印象を受けました!

We are hiring

ということでまだまだエンジニアを募集中です!

ご興味もっていただければ以下フォームからご応募ください!お待ちしております!

https://smarthr.co.jp/recruit/hello-world