Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
お客さんのエンジニアとスクラムで 併走している話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hbsnow
April 17, 2023
Technology
150
0
Share
お客さんのエンジニアとスクラムで 併走している話
hbsnow
April 17, 2023
More Decks by hbsnow
See All by hbsnow
フロントエンドエンジニアが顧客エンジニアとスクラムで伴走している話
hbsnow
0
180
巨大tableのパフォーマンスを改善する
hbsnow
0
620
Other Decks in Technology
See All in Technology
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
460
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
860
実例から学ぶ GuardDuty(SSH BruteForce)調査の全体フローと勘所【SecurityJAWS】
cscengineer
PRO
0
150
コーディングエージェントはTypeScriptの 型エラーをどう自己修正しているのか
melonps
2
200
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
220
JaSSTに関わることで変わった人生観 #jasstnano
makky_tyuyan
0
160
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
47k
RedmineをAIで効率的に使う検証
yoshiokacb
0
150
SpeechTranscriber + AIによる文字起こし機能
kazuki1220
0
120
AI Agent に“攻略本”を渡したら、150フォームの移行が回り始めた話/登壇資料(高橋 悟生)
hacobu
PRO
0
160
TSKaigi 2026 - enumよ、さようなら
teamlab
PRO
1
180
続 運用改善、不都合な真実 〜 物理制約のない運用改善はほとんど無価値 / 20260518-ssmjp-kaizen-no-value-without-physical-constraints
opelab
2
270
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
The Cult of Friendly URLs
andyhume
79
6.9k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Navigating Team Friction
lara
192
16k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
360
Docker and Python
trallard
47
3.8k
Statistics for Hackers
jakevdp
799
230k
Transcript
お客さんのエンジニアとスクラムで 併走している話 1
2 自己紹介 高橋ゆうき クラスメソッド株式会社 CX事業本部Delivery部 フロントエンドチーム チームリーダー @hbsnow
3 今日話したいこと • 今日自慢したい、2年以上続いているプロジェクトの簡 単な説明 ◦ 起こっていた問題とその改善策 • 3人のお客さんのエンジニアとリモートのスクラムで併 走している話
◦ 開発をはじめてから1年程度のメンバー ◦ 全員、それまでプログラミング未経験
4 今日自慢したいあるプロジェクトの話 • 今日自慢したい、2年以上続いているプロジェクトの簡 単な説明 ◦ 起こっていた問題とその改善策 • 3人のお客さんのエンジニアとリモートのスクラムで併 走している話
◦ 開発をはじめてから1年程度のメンバー ◦ 全員、それまでプログラミング未経験
5 今日自慢したいプロジェクトの参加履歴 2020年 9月 参加期間1 参加期間2 2021年 1月 2021年 8月
2022年 10月 現在 ※要件定義の期間は含めていません
6 最初からは参加できず • 最初から参加していなかった(入社していなかった) ので、技術選定や設計にはかかわれていません。 参加期間1 参加期間2 2021年 8月 2022年
10月 現在 2020年 9月 2021年 1月
7 入社後すぐにアサインされた • 入社後プロジェクトに参加。このときは、割り当てら れたタスクをもくもくとこなすだけ。 参加期間1 参加期間2 2022年 10月 現在
2020年 9月 2021年 1月 2021年 8月
8 長期の離脱期間 • 別プロジェクトに移動。長期の離脱期間が発生し、正 式リリースもこの期間に行われました。 参加期間1 参加期間2 現在 2020年 9月
2021年 1月 2021年 8月 2022年 10月
9 でもどり • 別プロジェクトが終了したため、でもどり。 (前回よりも期待されている雰囲気……!) 参加期間1 参加期間2 2020年 9月 2021年
1月 2021年 8月 2022年 10月 現在
10 現在のプロジェクトの規模感 • フロントエンドエンジニア ◦ 私 ◦ プロパー 1名 ◦
パートナー 1名(木金不在) ◦ お客さんのエンジニア 3名 • バックエンドエンジニア 7名 • PO 2名・スクラムマスター 1名
11 ざっくり特徴として • プロジェクトの息が長いので、エンジニアの入れ替わ りが少なくない ◦ 特にリードする立場のフロントエンジニアに 入れ替わりが何度か発生してしまう • Redux
Sagaが使われていて、小規模でもシンプルでも ないアプリですがジュニアレベルのエンジニアが学習 のために参加することもある
12 結果、なにが起こったか • 主要ないくつかのページでコードの特徴が異なる ◦ 一部ページでは主要なロジックが1つのカスタムフック にまとめられ、カスタムフックがネストしていく状態 ◦ ReduxにレスポンスとUIの状態が別ファイルになって いたり、同じだったり
• Atomic Designのディレクトリ構成に秩序がない • 散乱するつぎはぎのコピペコード
13 そして バグの修正で新たなバグが誕生
14 図解 バグ修正PR バグ修正ででたバグ修正のPR バグ修正のバグ修正ででたバグ修正のPR
15 リリースは1週間間隔、ときにhotfix バグ修正PR バグ修正ででたバグ修正のPR バグ修正のバグ修正ででたバグ修正のPR 1スプリント 1スプリント
16 ただバグ修正できていなかっただけなのに進捗はでる バグ修正PR バグ修正ででたバグ修正のPR バグ修正のバグ修正ででたバグ修正のPR 1スプリント 1スプリント 1pt 1pt 1pt
17 なにをしたか • 再発防止策の徹底 ◦ テストを必須にする ▪ 難しいときはIssueに再発防止策検討のタスクを 起票する ◦
バグの原因を必ず記載する ◦ バグ修正はモブプロで行う
18 そもそもバグを減らしたい • やる必要があるカイゼンタスクをもくもくと起票 ◦ 先述の問題の他にも…… ▪ React v18なのに型情報がReact v17
▪ mswがインストールされてるのに起動しない ▪ StrictModeが無効 ◦ ただ起票するだけでは後回しになってしまうの で、カイゼンタスクを必ずスプリント内に1つ以上 含める
19 なにをしなかったか(できなかったか) • E2Eテスト ◦ 過去それなりの工数をかけている形跡があった が、現状どれも動作していない現実 ▪ Cypress/Playwright/Autify ◦
簡単な正常系だけを用意しても…… ◦ スクラムイベントでアドホックテストをしている ◦ 現状は雑にライブラリをアップデートとかも慎重 にならざるを得ない状況なので、リソースがあれ ばもちろんやりたい
20 併走する • 今日自慢したい、2年以上続いているプロジェクトの簡 単な説明 ◦ 起こっていた問題とその改善策 • お客さんのエンジニアとリモートのスクラムで併走し ている話
◦ 開発をはじめてから1年程度のメンバー ◦ 全員、これまでプログラミング未経験
21 お客さんのエンジニアの参画時期 2020年 9月 2021年 1月 2021年 8月 2022年 10月
現在 2022年 3月 2022年 11月 2023年 2月
22 意識してやったこと • 発言をしやすい雰囲気を作る ◦ 質問をしやすい・意見をいいやすい ◦ わからないことをわからないと言える • お客さんの目標である、内製化ができるようになるこ
とを極力支援できるように考えて行動する ◦ タスクの割り振り ◦ 何でも自分でやりすぎない
23 質問しやすい雰囲気作り 逆の立場になって考えてみると、 雰囲気以前の話で、いきなりMeetやSlackのハドルで 呼び出して質問なんてそもそもしにくい。
24 Gather
25 ゲーム感のあるバーチャルオフィス
26 過去失敗した 実はこの期間でもやっていたのですが、振り返ってみると あまりうまく運用できていませんでした。 参加期間1 参加期間2 2022年 10月 現在 2020年
9月 2021年 1月 2021年 8月
27 なぜうまくいかなかったのか • Gatherを使っているのにMeetのような運用になって いた ◦ 用事があるときに、用事がある人だけを呼ぶ ◦ 用件以外の会話があまり生まれない状況 ◦
用事のある人しか呼ばないので、仮に雑談が発生し てもそれはチームというよりも個人間の会話にしか なっていなかった
28 うまくいった運用を経験していた • Gatherがうまく運用できていた案件ではGatherに自然 と集まっていた ◦ そこでは案件の話もするし、それ以外の雑談もする ◦ よく知るメンバーなので、どんなときでも意見を言 いやすい
◦ なので困っているときには全力で助けたくなる
29 このプロジェクトでもそうなりたい! • 最初から自然に集まるというのは無理な話なので集ま る時間をつくった(15時-17時、カレンダーに登録) ◦ ただし任意で、強制はしない ◦ 誰も来なくても常に広いスペースにいる ▪
個々の席にいるだけだとあまり意味がないので ▪ いつもいる人になる。誰もいないところに人は 集まらない ◦ 積極的に雑談もした ◦ 誰もこなくても泣かない
30 なった • 15時から17時の時間には集まるようになった ◦ この時間帯以外にも午後には人が集まる状態
31 モブプロ
32 参加必須にしています • 火曜日の15時から17時はモブプロ ◦ 基本フロントエンドメンバー全員参加
33 目的 • 習熟度の向上 • 知識の平準化による属人化の解消 • レビューコストの低減
34 ルール • タイピスト1名(15分時間交代制)とモブからなる • タイピストは基本的にモブから指示されていないこと を書き込むことはできない • タイピストはモブの指示が不明瞭な場合は理解できる まで質問する
• お互いを信頼すること ◦ いや、そうじゃなくて・・禁止
35 VS CodeのLive Share便利 • VS CodeのLive Shareを使っています ◦ 普段別のエディタを使っている人はつらいかも
◦ Issue単位でホストの変更をしています • 記録はNotionに残しています ◦ 途中参加や作業が途中で終わったとき 翌週何をしていたか忘れるため
36 効果 • みんなの反応がとてもよく大好評 ◦ 自分自身もとても楽しめている ▪ ドメイン知識は圧倒的にお客さんのエンジニア のほうが上なので、気付かされることも多い •
POやバックエンドメンバーも見学に来てくれている • バグタスクを多めに消化しているので、ボードに溜 まっていたバグタスクが減った
37 以上になります。 ありがとうございました。
38 おまけ
39 レビュー会
40 カレンダーではレビュー会と書いてた • 最初はみんなでPRレビューをする時間(過去形) ◦ 時間は16:30からの30分で任意参加 ◦ 自分の作業に集中してしまうメンバーが多く、レ ビューが滞り気味だったので、全員でレビューをす る時間を作った
◦ 自分の作業も大事だけど、レビューも大事 ◦ レビューがコードの品質よりも、動作確認作業に なっていそうなところが気になっていたので、全員 で同じPRを同時にみると何か得るものがありそう かなと感じた
41 結果、微妙でした • 見て欲しいところを文字通り見てもらうだけの謎の会 になった ◦ レビュー会自体は微妙だったが、こういった時間を 設けたことでチームのレビューにたいする意識は向 上した気がする ◦
いまもカレンダーだけは設定されていて、この時間 になると「質問ないですか?」と私から声をかける 時間になった