Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ヘイ株式会社 STORES・STORES レジを支えるチーム開発文化 どのようにつくるか・なにをつくるか 山下 隼人
Slide 2
Slide 2 text
はじめまして、こんばんは 氏名:山下 隼人(やました はやと) Twitter, GitHub:@phayacell バックエンドエンジニアとして機能開発を担当しています 趣味は朝4時に起きて筋トレをすることです
Slide 3
Slide 3 text
遍歴 2011年4月:社会人になる 主に受託開発 2019年8月:ヘイ株式会社(当時 ストアーズ・ドット・ジェーピー)に転職 STORES で自社プロダクト開発に携わる 2021年7月:STORES レジの開発チームに参画 STORES レジのサービス開始1ヶ月後のジョイン 引き続き STORES の開発にも携わっている
Slide 4
Slide 4 text
STORES・STORES レジを支えるチーム開発文化 今日のテーマ
Slide 5
Slide 5 text
今日のテーマ STORES・STORES レジを支えるチーム開発文化 ● 顧客への価値提供を最短かつ着実に届けるため いろいろな工夫をチーム開発文化に取り入れています ● バックエンドエンジニア目線で「良い」と思っていることを ご紹介させていただきます
Slide 6
Slide 6 text
今日のテーマ - STORES・STORES レジを支えるチーム開発文化 チーム開発文化
Slide 7
Slide 7 text
「チーム開発文化」を2つに分解 ● どのようにつくるか ● なにをつくるか 今日のテーマ - STORES・STORES レジを支えるチーム開発文化
Slide 8
Slide 8 text
今日のテーマ - STORES・STORES レジを支えるチーム開発文化 どのようにつくるか - STORES なにをつくるか - STORES レジ
Slide 9
Slide 9 text
プロジェクトの進め方 どのようにつくるか
Slide 10
Slide 10 text
どのようにつくるか - STORES STORES(当時 STORES.jp)は2012年8月にサービス開始
Slide 11
Slide 11 text
どのようにつくるか - STORES サービス運営期間の長いサービス ● 歴史を積み重ねてきたプロダクトコードが生きている ● 機能開発、改善、改修を加えるのは大変(なこともある) 顧客への価値提供を最短かつ着実に届けたい ● 開発プロセスを工夫して、価値提供を早めていきたい ● つまり「どのようにつくるか」を考えることが主題
Slide 12
Slide 12 text
どのようにつくるか - STORES 前提:開発チームについて ● 採用プロセス:スクラム ● メンバ数:3名(時期、プロジェクトによる) チーム開発でやっている工夫 ● チーム全員でひとつの課題に向き合う ● モブプログラミング・プロトタイピング
Slide 13
Slide 13 text
チーム全員でひとつの課題に向き合う どのようにつくるか
Slide 14
Slide 14 text
どのようにつくるか - チーム全員でひとつの課題に向き合う チーム全員でひとつの課題に向き合う ● スプリントプランニングでチーム全員がタスクを見積もり Pull Request を出せるまで理解が深まっている状態を目指す ● 誰でもタスクに取り組める状態をつくり ボトルネックの排除やチーム開発の可用性を向上させる
Slide 15
Slide 15 text
どのようにつくるか - チーム全員でひとつの課題に向き合う 📝 具体的にやっていること ● タスク(Issue)の内容を読み合わせて 不明点があればその場で挙げ、ストーリーポイントを付ける ● その場で解決しなければ調査タスクをつくり出し 実装イメージできなければ、モブプロ・プロトタイピングを試みる(後述)
Slide 16
Slide 16 text
どのようにつくるか - チーム全員でひとつの課題に向き合う(ほぼモザイク)
Slide 17
Slide 17 text
どのようにつくるか - チーム全員でひとつの課題に向き合う 🎉 得られた効果 ● チーム全員が課題に対して同じ理解度を持つことによって いろんな観点から課題解決の方法を出せるようになった ● すでに理解している箇所になるので、コードレビューが早くなり 開発速度が向上した(手戻りなどのリスクも削減)
Slide 18
Slide 18 text
モブプログラミング・プロトタイピング どのようにつくるか
Slide 19
Slide 19 text
どのようにつくるか - モブプログラミング・プロトタイピング モブプログラミング・プロトタイピング ● ある程度動くコードを書いて、課題に対して議論をする ● 動くものを見ることで課題への理解度を上げ、不確定要素や懸念を洗い出す
Slide 20
Slide 20 text
どのようにつくるか - モブプログラミング・プロトタイピング 📝 具体的にやっていること ● 実装方針からふわっとしていたらモブプログラミング ある程度の方向性が決まっていればプロトタイピングでコードを書く ● チームメンバーでレビューする時間を設けて コードを眺めたり、実際に動かしてみたりして課題や懸念を話し合う ● このときに書いたコードはそのまま採用せず 取り組むべきタスクに落とし込んだら思い切って捨てる
Slide 21
Slide 21 text
どのようにつくるか - モブプログラミング・プロトタイピング(だいたいモザイク)
Slide 22
Slide 22 text
どのようにつくるか - モブプログラミング・プロトタイピング 🎉 得られた効果 ● 実際に書いてみないと判断できない課題に対する理解度が深まったので もし、何もせずにタスクに着手していたら 「あの機能にも影響してしまう」「このフローの考慮を入れなくちゃ」 と膨れ上がっていたかもしれない工数を未然に食い止められた ● 各自が持っている業務知識、歴史的経緯の把握など 多くの暗黙知を共有することができた
Slide 23
Slide 23 text
どのようにつくるか 小さなチームで大きな成果を〜STORES 新決済手段追加の舞台裏〜 https://tech.hey.jp/entry/2022/05/12/101620
Slide 24
Slide 24 text
プロダクト開発の工夫 なにをつくるか
Slide 25
Slide 25 text
なにをつくるか - STORES レジ STORES レジは2021年6月にサービス開始
Slide 26
Slide 26 text
なにをつくるか - STORES レジ サービス開始直後の新しいプロダクト ● 最新の最善を尽くしたプロダクトコードによってつくられている ● たくさんの足りていない機能があり、盛りだくさんの開発ロードマップ 顧客への価値提供を最短かつ着実に届けたい ● より大きな価値を選び、優先的に届けていきたい ● つまり「なにをつくるか」を考えることが主題
Slide 27
Slide 27 text
なにをつくるか - STORES レジ 前提:プロダクトについて ● iOS アプリ、Web ページの2つのフロントエンドがある ● レジ業務は iOS アプリで、バックオフィス業務は Web ページ チーム開発でやっている工夫 ● VOC(Voice of Customer)の活用 ● 週次で開発ロードマップの確認
Slide 28
Slide 28 text
VOC(Voice of Customer)の活用 なにをつくるか
Slide 29
Slide 29 text
なにをつくるか - VOC(Voice of Customer)の活用 VOC(Voice of Customer)の活用 ● オンボーディング・カスタマーサポート・セールスのメンバーから 直近リリースした機能に関する声、アカウント開設に至らなかった理由など 顧客の声を取り上げてもらい、みんなで議論して深堀りをする ● なぜそのような声があがるのか、根底になる課題とは 競合と比較して「STORES レジの強み」などを考える場として機能
Slide 30
Slide 30 text
なにをつくるか - VOC(Voice of Customer)の活用 📝 具体的にやっていること ● ユーザーから寄せられる機能要望・質問を集めて 特に要望頻度の高いものや課題感の強いものをピックアップして議論 ● 開発ロードマップで予定している機能開発で 解決できるものなのか・足りていないのか プロダクトをどうしていくか考えて、適宜反映させていく(後述)
Slide 31
Slide 31 text
なにをつくるか - VOC(Voice of Customer)の活用(まあまあモザイク)
Slide 32
Slide 32 text
なにをつくるか - VOC(Voice of Customer)の活用 🎉 得られた効果 ● 顧客の抱えている課題を一次情報として知り PM、エンジニア、セールス、カスタマーサポートなどの隔たりなく チーム全体で顧客への理解が深まった ● プロダクトをより使いやすくするためのヒントを得られている
Slide 33
Slide 33 text
週次で開発ロードマップの確認 なにをつくるか
Slide 34
Slide 34 text
週次で開発ロードマップの確認 ● つくるべき機能はたくさんあるため 顧客の抱えている「より強い課題」について考え見直し、修正していく ● VOC で深堀りした議論が活きてくる場になっており 「プロダクトとしてやらないこと」「やりたいけど今はやらないこと」 を明確にして納得感のある状態でチーム開発を行う なにをつくるか - 週次で開発ロードマップの確認
Slide 35
Slide 35 text
📝 具体的にやっていること ● 現在進捗中のプロジェクトの状況を確認して 前倒し・後倒しがあれば修正して、後続プロジェクトを調整する ● VOC などで開発優先度の前後があればロードマップに反映 なにをつくるか - 週次で開発ロードマップの確認
Slide 36
Slide 36 text
なにをつくるか - 週次で開発ロードマップの確認(ぜんぶモザイク)
Slide 37
Slide 37 text
🎉 得られた効果 ● 日々深まっていく顧客理解に応じて開発優先度を同期するため 開発チームが「自分たちのつくるもの」に対する納得感が生まれやすい ● 常に「自分たちのつくるもの」が整理されている状態が維持されているので 次にやる、その次にやるプロジェクトに向けて 先んじて手を打ちやすくなっている(仕様検討や設計・実装の考慮など) なにをつくるか - 週次で開発ロードマップの確認
Slide 38
Slide 38 text
STORES レジ のVOC駆動開発 https://note.com/chocoyama/n/n42fb50adde0f なにをつくるか
Slide 39
Slide 39 text
最近の課題
Slide 40
Slide 40 text
最近の課題 顧客の声だけではなく、定量的な指標も併せ持ちたい ● 取り上げられる顧客の声はとても定性的 ● 声があがらないところで困っているユーザーもいるかもしれない すでに喜ばれているから声があがっていないのかもしれない ● 問い合わせや要望の声だけを見ていると こうした「見えない部分」の意識が抜けてしまう恐れがある 絶賛取組中 ● 改善する機能の利用率・離脱率などの計測 ● 現状取りうる数値からの KPI 設定
Slide 41
Slide 41 text
まとめ
Slide 42
Slide 42 text
まとめ ● 顧客への価値提供を最短かつ着実に届けることを考えた チーム開発文化づくりをしている ● どのようにつくるか ○ チーム全員でひとつの課題に向き合う ○ モブプログラミング・プロトタイピング ● なにをつくるか ○ VOC(Voice of Customer)の活用 ○ 週次で開発ロードマップの確認
Slide 43
Slide 43 text
hey | エンジニア採用 https://hello.hey.jp/engineer おわりに - We are hiring!