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
Takafumi ONAKA
PRO
March 30, 2022
Technology
0
57
グルーミングしながら進めるプロダクト開発
2022-03-30 Hatena Engineer Seminar #19
https://hatena.connpass.com/event/241412/
Takafumi ONAKA
PRO
March 30, 2022
Tweet
Share
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
ADRを運用して3年経った僕らの現在地
onk
PRO
13
5.9k
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
18
オブザーバビリティの Primary Signals
onk
PRO
2
3.1k
Cache Stampede
onk
PRO
1
1.8k
ORM - Object-relational mapping
onk
PRO
1
3.4k
デュアルトラックアジャイルとの向き合い方
onk
PRO
4
10k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
56
エンジニアの個人ブランディングと技術組織
onk
PRO
0
59
Hatena::Letの式年遷宮
onk
PRO
0
43
Other Decks in Technology
See All in Technology
LINEヤフー新卒採用 コーディングテスト解説 アルゴリズム問題編
lycorp_recruit_jp
0
13k
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
8
3k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
48k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
2
240
ゼロから実装まで!機械学習入門
natsuki0726
0
220
CData Virtuality を活かせるキーシナリオと製品デモ
cdataj
0
300
電子辞書にステータスバーを実装する
puhitaku
0
110
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
700
Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch
sms_tech
3
110
SageMaker学習のツボ / The Key Points of Learning SageMaker
cmhiranofumio
0
210
コード✕AIーソフトウェア開発者のための生成AI実践入門~
yuhattor
4
870
Grafana エコシステムの活用事例 on ABEMA
tetsuya28
4
460
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
180
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
249
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Debugging Ruby Performance
tmm1
73
12k
Web Components: a chance to create the future
zenorocha
310
42k
How to Ace a Technical Interview
jacobian
275
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.7k
Designing for Performance
lara
604
68k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
110
6.9k
Transcript
Hatena Engineer Seminar #19 id: グルーミングしながら進めるプ ロダクト開発 カクヨムの10年を見据えた技術
2022.03.30 onk
• 大仲 能史 a.k.a. id:onk • 芸歴 18 年 •
サーバサイドとインフラが得意な フルスタックエンジニア 自己紹介
今日のテーマ グルーミング
グルーミング グルーミングまたは毛繕いとは、動物が体の衛生や機能維持などを目的 として行う行動である。一部分は後天的に習得され、以降の世代へと伝 播する場合もある(湯、土、木の葉、砂塵の利用など)。毛繕い、羽繕い、 ノミ取りなどが含まれる。自分自身に対して行うセルフグルーミング (personal grooming)と、他の個体に対して行う社会的グルーミング (social groomingあるいはallogrooming)がある。
https://ja.wikipedia.org/wiki/グルーミング
社会的グルーミング • 集団の絆を維持するための「社交」 ◦ 肉体的な接触を伴ったり、単に会話をし たり、コミュニケーションが必要 • 大きなグループを維持するには、 グルーミングに時間を費やす必要がある
今日の話 カクヨムチームが開催している定例では、意識的にグルーミングを取り入 れている。各会の設計と、グルーミングの効能を読み解いていく。
• スクラム開発 • 昼会 • スプリント会 • 週次、月次、四半期の会 • まとめ
お品書き
スクラム開発
スクラム開発とは • イテレーティブな開発手法の一つ ⇔ ウォーターフォール開発 ◦ 一定期間ずつに区切って(スプリント) ◦ 成果物を作っていく
• スプリント内では以下のイベントをやっていく ◦ スプリントプランニング ◦ デイリースクラム ◦ スプリントレビュー ◦ スプリントレトロスペクティブ
スクラム開発とは • スプリントプランニング ◦ このスプリントで何を作るかを決める ◦ ここで決めたものをスプリント内で作りきる • デイリースクラム
◦ いわゆる「朝会」 ◦ 困りや不安を引き出し、解決する
スクラム開発とは • スプリントレビュー ◦ 作ったものをみんなで眺める ◦ ゴールを達成できているか ◦ 更に価値を高められるか
• スプリントレトロスペクティブ ◦ レトロスペクティブ=ふりかえり ◦ 次スプリントでもっと上手くやるための教訓を引き出す
スクラム開発とは • 以下を繰り返して、不確実なプロジェクトを達成する開発手法 ◦ 細かくリリースを繰り返して価値を探索する ◦ イテレーションが進むと、より上手く進められる プランニング 設計・開発
リリース ふりかえり プランニング 設計・開発 リリース ふりかえり プランニング 設計・開発 リリース ふりかえり
僕らのスクラム • 10人程度の開発メンバー ◦ 企画2、デザイナー3、エンジニア6 • 2週間スプリント(月〜翌金) • 昼会(毎日30分+30分)
◦ デイリースクラム • スプリント会(最後の金曜に1時間半) ◦ スプリントレトロスペクティブ+スプリントプランニング • スプリントレビューは柔軟に開催している
コミュニケーションツール • Slack ◦ テキストチャット、Huddle • Google Meet ◦
ビデオ会議 • Scrapbox ◦ 同時編集できるWiki的なツール • Asana ◦ プロジェクト管理ツール • GitHub、Figma
昼会
• 一般的なデイリースクラムは「15分以内」と言われている • 僕らの昼会は1時間使っている ◦ 前半:チーム全員で30分 ◦ 後半:エンジニアだけで30分 ◦ 今のチームだと、これで良いと考えている
昼会
• Scrapboxを映しながらGoogle Meetに集合する ◦ 同時編集できる議事録ツールは最高 • アジェンダ ◦
司会者のコーナー ◦ 近況報告 ◦ 周知 ◦ Asana確認 ◦ 相談・会話したいこと ◦ 掲示板(非同期) ◦ 雑談 ◦ ジブリ制作日誌コーナー 全体昼会
• 司会者のコーナー ◦ 数字の共有とか ◦ みんなに檄を飛ばしたい内容とか ▪ 放っておくとチームの熱は自然と下がっていくので、 定期的にくべる ▪
例えば、我々の仕事はどんな意味があるのか、サポーター ズパスポートを通じて何を成し遂げたかったのか 全体昼会
• 近況報告 ◦ 今日の気持ち/体調(ニコニコカレンダー) ◦ やったこと、やること、困りポイント • 周知 • Asana確認
◦ マイルストーンが毎日何かしらあるので、その確認 ▪ 今日明日で終わらせなきゃいけないものって何だっけ 全体昼会
• 相談・会話したいこと ◦ ここに書いておくと昼会の場で話す • 掲示板(非同期) ◦ ここに書いておくと非同期で話す ◦ Slackで声を掛けるほどでもない認識合わせによく使う
◦ 非同期の場が明示されていると、定例まで遅延してしまう現象を 減らせる ▪ 昼会まで待たずに会話が行われて、物事が進む 全体昼会
• 雑談 ◦ マジで雑談 ◦ 先週の雑談から抜粋 ▪ ▪
全体昼会
• コロナ禍で雑談コーナーの掘り下げが増えた ◦ 顔合わせが減り、グルーミングが足りなくなった感覚 • 相手が血が通った人間であることを知らせる場 ◦ 人間味のあるエピソードであればあるほど良い • 誰がどの話題で食いつきが良かったかを徐々に把握していく
• チーム内の役割分担が成立すると最高 ◦ ボケ、ツッコミ、かぶせ ◦ こういう発言をすると拾ってくれるだろう、という安心感 全体昼会
• ジブリ制作日誌コーナー ◦ https://www.ghibli.jp/diary_m/diary.html • もともとは雑談の中の一幕だったが、独立コーナー化 ◦ 雑談が無いときに必ず1つはネタがある安心感 ◦ 自分たちの働き方を、比較しながら眺めることができる
• 25年前の今日の日記 ◦ もののけ姫の 公開が1997-07 全体昼会
• エンジニアだけで昼会の延長戦 • アジェンダ ◦ マージされたPR一覧 ◦ 日誌欄 エンジニア昼会
• マージされたPRを1つずつ眺める ◦ チーム内プロジェクトが複数ライン走っている ▪ インフラとか、コンテスト運用とか ▪ 各プロジェクトは企画1、エンジニア1〜2、デザイナー1 ◦ 隣のプロジェクトのPRは実装方針も曖昧にしか知らない
◦ 毎日すべてのPRを眺めることで、把握できる エンジニア昼会
• 毎日すべてのPRを眺めることで、把握できる ◦ 暮らしているだけで脳内マップが育っていく ▪ 実装や問い合わせ対応で担当していなくても、なんとなく雰 囲気を知っているコードが自然と増える ◦ 障害対応の初速が全然違う ▪
「最近変更していた〜が原因か?」という勘所がある。実装 をイメージできる ◦ レビュアー以外でも気になりをコメントしやすい エンジニア昼会
• 日誌欄 ◦ エンジニアとしてのグルーミングの場 ◦ 日々の暮らしの中での気になりを会話する ▪ レビュー時にコメントしたけど全員に伝えたいものとか ▪ 実装する上で悩んでいることとか
◦ エンジニア向けの雑談も行う エンジニア昼会
• レビュー時にコメントしたけど全員に伝えたいものとか ◦ • 実装する上で悩んでいることとか ◦ エンジニア昼会
• 参考になりそうな隣のチームの面白話とか ◦ • 技術ネタの雑談とか ◦
◦ エンジニア昼会
• 技術ネタの雑談はかなり意識している ◦ 参加しているだけで新しい話題にキャッチアップできる ◦ 話題に対して、メンバーがどう感じているかを認識できる • みんながその方向が良さそうと感じていたら、自分も時間を使おうか なという気持ちになる ◦
「本当はもっと◦◦だったら嬉しいと思ってるんだよね〜」 ◦ 変化のキッカケを雑談から生み出したい エンジニア昼会
スプリント会
スプリント会 • 各スプリントの最後にやっている ◦ 隔週金曜、1時間半 • スプリントレトロスペクティブ+スプリントプランニングの場 • アジェンダ
◦ プロジェクト毎のレビュー ◦ スプリント計画 ◦ ふりかえり
プロジェクトごとのレビュー • チーム内プロジェクトが複数ライン走っている ◦ インフラとか、コンテスト運用とか ◦ 各プロジェクトは企画1、エンジニア1〜2、デザイナー1 • 各プロジェクトの健康度をAsana上で報告する
◦ ◦ 報告するのは各プロジェクトのPjMロールの人 • 各プロジェクトの期限超過タスクの確認、調整
スプリント計画 • ロードマップの確認 ◦ 直近数ヶ月の開発計画を確認する ◦ プロジェクト体制早見表 • 次スプリントで達成するマイルストーンやリリース予定の確認
• 「要対応」プロジェクトの調整 • 次スプリントのタスク洗い出し&アサイン
ふりかえり • GKPTでふりかえる ◦ Good、Keep、Problem、Try • ファミ通クロスレビュー方式でコメントを記入する ◦ 各内容に、各人がコメントを付けられる
週次、月次、四半期の会
週次、月次、四半期の会 • 週次 ◦ 各プロジェクトの定例 ◦ プロジェクト間の関連が薄く、全体昼会だと話題が出てきづらいので、独立し た場を用意した ◦
スプリントレビューは主にここで行われている • 月次 ◦ PWG(Performance Working Group) ▪ サービスのレスポンス速度やエラー率、発報されたアラートや障害など を3ヶ月ぐらいの目線で確認し、キャパシティプランニングを行ったり、監 視設定や根本対策に思いを馳せたりする場
週次、月次、四半期の会 • 月次 ◦ エンジニア会 ▪ 本来やった方が良いこととか、バックログにねじ込みたいタ スクとかを会話する場 ▪
ここの会話で優先度が変わることは結構ある • 四半期 ◦ どうなっていたい会
どうなっていたい会 スクロールバーがこの短さになるぐらい ざっくばらんに会話している
• チームのベースは2週間スプリントのスクラム開発 • 粒度の違うコミュニケーションを組み合わせている ◦ チーム内プロジェクトは週次で定例を持つとか ◦ 月次でインフラの会や、エンジニアの会があるとか • 気づきを自然と共有できる場を提供している
◦ 関連する人だけの場にして、言い出しづらい要因を減らす まとめ
• 各人の「思い」を引き出しやすい場を意識して作っている ◦ 誰が何をやりたいか、誰がどこに不満を持っているか ◦ 認識を揃えて、加速したい • これが出てくるチームにするためにグルーミングが必要 ◦ リモートだと意識して雑談コミュニケーションを取らないと、関係
性を作りづらい ◦ 関係性=反応を想像できる=言い出しやすさに繋がる まとめ