コードを書くだけじゃない? - Grooves(グルーヴス)で働くエンジニアのリアルな開発現場を紹介します!
こんにちは! グルーヴス エンジニアの福井(@bary822)です。
この記事ではグルーヴスでエンジニアとして働く私達が普段どのようにプロダクト開発を進めているのか、どんなチームと一緒に働いているのかといったことを中心にご紹介していきます。
グルーヴスでエンジニアとして働くことに少しでも興味を持って頂いた方に向けて働き方のイメージができるだけリアルに伝わるように書いていきます! ぜひ最後まで読んでもらえると嬉しいです。
エンジニアの役割
グルーヴスで働くエンジニアの担当領域は単に「コードを書いてリリースするだけ」ではありません。
通常、これから開発しようとしている大きな機能のかたまり毎にプロジェクトが発足し、担当エンジニアがアサインされて「テックリード」として振る舞います。テックリードは開発チームを代表してMTGに参加し、企画段階から関わっていきます。
プロジェクトの進行は大まかに下記の4つに分けられます。ここからエンジニアがそれぞれのフェーズでどのような仕事を行うのかを詳しく説明していきますね。
企画フェーズ
各プロダクトには解決したい課題や実現したい世界観など、「あるべき姿」をドキュメントして取りまとめた「プロダクト戦略」が存在します。
このあるべき姿と現状のギャップを分析し、それを埋めるためにどのような機能、ユーザー体験を提供するのかを検討するフェーズです。
プロダクトマネージャー(PdM)とデザイナーがメインとなって進行していきますが、エンジニアも要件に対して技術的な観点から積極的に提案を行ったり、懸念事項を早期に表明してリスクヘッジを行う動きが求められます。
検証フェーズ
提供しようとしている機能が本当にユーザーに価値を提供するのか、技術的・時間的に実現可能なのかを検証するフェーズです。
検証の方法は様々ですが、基本的にデザイナーが動くプロトタイプを作って社内メンバーに使ってもらってフィードバックをもらったり、実験的な機能としてユーザーに提供してデータから反応を見たりします。
プロトタイプは実際のプロダクト上に限定的なユーザーだけが見えるような形で落とし込むこともありますし、デザイナーがFigmaなどのデザインツールを使って静的な動作を行う疑似プロダクトを作ることもあります。
このフェーズからエンジニアも重要な役割を果たすようになります。
静的なプロトタイプやユーザーインタビューだけでは十分な検証結果が得られない場合は、エンジニアが実際のプロダクトに一部のユーザーのみが閲覧できる実験的な機能として実装し、それを社内外のユーザーに使ってもらって検証を行うことがあるからです。
検証がうまく行かなかったときに削除されるかもしれない実験的な機能をコードに落とし込むことは高い設計・実装スキルが求められますが、その分やりがいもあります。
単純に言われたことを実装するだけの作業だけでなく、技術調査から与えられた制約の中でベストな実装を行うまでの一連の開発フローを早いサイクルで回す経験が積めるのはまさにグルーヴスでエンジニアとして働く醍醐味でもあります。
また、必要なら検証を行うためのデータを取得できるようにデータ基盤や計測ツールに手を加えることもあります。
開発フェーズ
検証がうまくいった機能の本実装を行うフェーズです。
これまで最低限の機能として提供してきたものを正式版とするために追加の要件を実装したり、デザイナーとコミュニケーションを取りながらUI/UXを整えていきます。
また、これまでの「捨てやすい」コードの設計を見直したり、リファクタリングを行って今後継続的にメンテナンスしやすいコードに作り変えていきます。
このフェーズでは業務委託メンバーを含めた他のエンジニアと一緒に比較的大規模に開発を進めていきます。プロジェクトや施策の全体感や細切れのタスクの目的や背景を他のエンジニアに伝えることも重要な役割の一つです。
振り返りフェーズ
正式版のリリース後に生じた変化を観察して学びを得るフェーズです。
ユーザーの行動がどのように変わったのか、それによって各種KPIにどのような変化が現れたのかを観察してビジネスへの貢献度を測定してプロジェクト全体としての効果検証を行います。
また、プロジェクト進行自体の振り返りも行います。
プロジェクトの進行方法や、PdMやデザイナー、エンジニアそれぞれの動き方や求められている役割に認識の齟齬がなかったかなど、次のプロジェクト運営をより良いものにするために建設的な議論を行います。
エンジニアが共に働くメンバーの役割
ここまではグルーヴスで働くエンジニアの役割や求められていることについて見てきました。
ご存知の通りプロダクト開発はエンジニアだけで行うものではありません。ここではエンジニアが働く上で特に密接に関係するメンバーの役割について簡単にご紹介します。
プロダクトマネージャー(PdM)
プロダクトの「あるべき姿」とのギャップを埋めるために必要なユーザー体験を設計し、具体的な機能の要件に落とし込むのがPdMの役割です。
また、ビジネスの現場から日々寄せられるプロダクトに対する改修要望や、既知のバグと併せて開発優先度判断を行うことも大事な役割の一つです。
デザイナー
プロダクトで解決したいユーザー課題を深堀りし、それを解決するための機能イメージをあぶり出すためのユーザー調査や分析、ワークショップをプロダクトマネージャーと共に実施し、質の高い企画を行うのがデザイナーの役割です。
もちろん一般的なデザイナーが行うようなUI設計(画面デザイン)も行いますが、グルーヴスのデザイナーは企画フェーズでも活躍しています。
開発フェーズにおいてはエンジニアとコミュニケーションを取りながら、細かいデザイン要件の調整を行います。
エンジニアリングマネージャー(EM)
EMはエンジニアのいわゆる「上司」に当たるメンバーです。
目標設定やその実行レベルに応じてエンジニアの評価を行います。また、定期的に行われる1 on 1を通じてこれからのキャリアについて一緒に考えたり、それを実現するためのサポートを行います。
エンジニアリングマネージャーが技術的な意思決定に関わることはほとんどありません。どちらかというと組織やヒトを成長させるための活動を行っています。
また、新しい制度やチームビルディングのための企画立案やその実行も行います。
グルーヴスが内製組織を持つ理由
ここまでお読みいただくと、グルーヴスがエンジニアに期待することは単なる「コードを書いてリリースするだけ」ではないこと、様々な専門性を持ったメンバーと共にプロダクト開発を行っていることがおわかりいただけたのではないでしょうか。
グルーヴスがエンジニアに期待することは (1) コンテキストを共有した集中的なコミュニケーションによって効率よく議論を行い (2) 検証可能な最小プロダクトで継続的に学習を積み重ねて価値のある成果物を探索し (3) ナレッジを蓄積して改善サイクルを回す ことに他なりません。
逆を言うと、小さなバグ修正や保守要望対応など、既存機能の品質改善やきめ細やかな性能向上を行うことはあまり求めていません。
グルーヴスには社員エンジニア以外にも一緒に開発を行う業務委託のメンバーが多く在籍しており、これらの業務を担ってくれています。
これからエンジニアとして入社いただく方にも「素早く学習する組織」の一員としてご活躍いただきたいと願っています。
エンジニアがどのような活動を行っているかイメージが湧きましたでしょうか?
グルーヴスでエンジニアとして働くことに少しでも興味を持ってくれたみなさんにリアルな情報を提供できたならこれ以上嬉しいことはありません。
グルーヴスではエンジニアだけでなく、プロダクト開発を行うポジションで新しいメンバーを広く募集しています!
オンラインでの面談も実施していますので、少しでもご興味をお持ちいただきましたらお気軽にご連絡ください!お会いできるのを楽しみにしています!