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
230
グルーミングしながら進めるプロダクト開発
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
強いチームと開発生産性
onk
PRO
33
11k
ADRを運用して3年経った僕らの現在地
onk
PRO
18
7.6k
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
36
オブザーバビリティの Primary Signals
onk
PRO
2
3.6k
Cache Stampede
onk
PRO
1
1.9k
ORM - Object-relational mapping
onk
PRO
1
3.4k
デュアルトラックアジャイルとの向き合い方
onk
PRO
4
11k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
110
エンジニアの個人ブランディングと技術組織
onk
PRO
0
100
Other Decks in Technology
See All in Technology
SSMRunbook作成の勘所_20241120
koichiotomo
2
130
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
フルカイテン株式会社 採用資料
fullkaiten
0
40k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
5
590
AIチャットボット開発への生成AI活用
ryomrt
0
170
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
120
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
490
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
6
670
Taming you application's environments
salaboy
0
180
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
A Tale of Four Properties
chriscoyier
156
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Scaling GitHub
holman
458
140k
How to Ace a Technical Interview
jacobian
276
23k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Bash Introduction
62gerente
608
210k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
The Cult of Friendly URLs
andyhume
78
6k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Adopting Sorbet at Scale
ufuk
73
9.1k
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週間スプリントのスクラム開発 • 粒度の違うコミュニケーションを組み合わせている ◦ チーム内プロジェクトは週次で定例を持つとか ◦ 月次でインフラの会や、エンジニアの会があるとか • 気づきを自然と共有できる場を提供している
◦ 関連する人だけの場にして、言い出しづらい要因を減らす まとめ
• 各人の「思い」を引き出しやすい場を意識して作っている ◦ 誰が何をやりたいか、誰がどこに不満を持っているか ◦ 認識を揃えて、加速したい • これが出てくるチームにするためにグルーミングが必要 ◦ リモートだと意識して雑談コミュニケーションを取らないと、関係
性を作りづらい ◦ 関係性=反応を想像できる=言い出しやすさに繋がる まとめ