Slide 1

Slide 1 text

Hatena Engineer Seminar #19 id: グルーミングしながら進めるプ ロダクト開発 
 カクヨムの10年を見据えた技術 
 2022.03.30 onk

Slide 2

Slide 2 text

● 大仲 能史 a.k.a. id:onk
 ● 芸歴 18 年
 ● サーバサイドとインフラが得意な
 フルスタックエンジニア
 自己紹介


Slide 3

Slide 3 text

今日のテーマ 
 グルーミング 


Slide 4

Slide 4 text

グルーミング 
 グルーミングまたは毛繕いとは、動物が体の衛生や機能維持などを目的 として行う行動である。一部分は後天的に習得され、以降の世代へと伝 播する場合もある(湯、土、木の葉、砂塵の利用など)。毛繕い、羽繕い、 ノミ取りなどが含まれる。自分自身に対して行うセルフグルーミング (personal grooming)と、他の個体に対して行う社会的グルーミング (social groomingあるいはallogrooming)がある。
 https://ja.wikipedia.org/wiki/グルーミング

Slide 5

Slide 5 text

社会的グルーミング 
 ● 集団の絆を維持するための「社交」
 ○ 肉体的な接触を伴ったり、単に会話をし たり、コミュニケーションが必要
 ● 大きなグループを維持するには、
 グルーミングに時間を費やす必要がある


Slide 6

Slide 6 text

今日の話
 カクヨムチームが開催している定例では、意識的にグルーミングを取り入 れている。各会の設計と、グルーミングの効能を読み解いていく。


Slide 7

Slide 7 text

● スクラム開発
 ● 昼会
 ● スプリント会
 ● 週次、月次、四半期の会
 ● まとめ
 お品書き


Slide 8

Slide 8 text

スクラム開発 


Slide 9

Slide 9 text

スクラム開発とは 
 ● イテレーティブな開発手法の一つ ⇔ ウォーターフォール開発
 ○ 一定期間ずつに区切って(スプリント)
 ○ 成果物を作っていく
 ● スプリント内では以下のイベントをやっていく
 ○ スプリントプランニング
 ○ デイリースクラム
 ○ スプリントレビュー
 ○ スプリントレトロスペクティブ


Slide 10

Slide 10 text

スクラム開発とは 
 ● スプリントプランニング
 ○ このスプリントで何を作るかを決める
 ○ ここで決めたものをスプリント内で作りきる
 ● デイリースクラム
 ○ いわゆる「朝会」
 ○ 困りや不安を引き出し、解決する


Slide 11

Slide 11 text

スクラム開発とは 
 ● スプリントレビュー
 ○ 作ったものをみんなで眺める
 ○ ゴールを達成できているか
 ○ 更に価値を高められるか
 ● スプリントレトロスペクティブ
 ○ レトロスペクティブ=ふりかえり
 ○ 次スプリントでもっと上手くやるための教訓を引き出す


Slide 12

Slide 12 text

スクラム開発とは 
 ● 以下を繰り返して、不確実なプロジェクトを達成する開発手法
 ○ 細かくリリースを繰り返して価値を探索する
 ○ イテレーションが進むと、より上手く進められる
 プランニング 設計・開発 リリース ふりかえり プランニング 設計・開発 リリース ふりかえり プランニング 設計・開発 リリース ふりかえり

Slide 13

Slide 13 text

僕らのスクラム 
 ● 10人程度の開発メンバー
 ○ 企画2、デザイナー3、エンジニア6
 ● 2週間スプリント(月〜翌金)
 ● 昼会(毎日30分+30分)
 ○ デイリースクラム
 ● スプリント会(最後の金曜に1時間半)
 ○ スプリントレトロスペクティブ+スプリントプランニング
 ● スプリントレビューは柔軟に開催している


Slide 14

Slide 14 text

コミュニケーションツール 
 ● Slack
 ○ テキストチャット、Huddle
 ● Google Meet
 ○ ビデオ会議
 ● Scrapbox
 ○ 同時編集できるWiki的なツール
 ● Asana
 ○ プロジェクト管理ツール
 ● GitHub、Figma


Slide 15

Slide 15 text

昼会


Slide 16

Slide 16 text

● 一般的なデイリースクラムは「15分以内」と言われている
 ● 僕らの昼会は1時間使っている
 ○ 前半:チーム全員で30分
 ○ 後半:エンジニアだけで30分
 ○ 今のチームだと、これで良いと考えている
 昼会


Slide 17

Slide 17 text

● Scrapboxを映しながらGoogle Meetに集合する 
 ○ 同時編集できる議事録ツールは最高 
 ● アジェンダ
 ○ 司会者のコーナー
 ○ 近況報告
 ○ 周知
 ○ Asana確認
 ○ 相談・会話したいこと
 ○ 掲示板(非同期)
 ○ 雑談
 ○ ジブリ制作日誌コーナー 
 全体昼会


Slide 18

Slide 18 text

● 司会者のコーナー
 ○ 数字の共有とか
 ○ みんなに檄を飛ばしたい内容とか
 ■ 放っておくとチームの熱は自然と下がっていくので、
 定期的にくべる
 ■ 例えば、我々の仕事はどんな意味があるのか、サポーター ズパスポートを通じて何を成し遂げたかったのか
 全体昼会


Slide 19

Slide 19 text

● 近況報告
 ○ 今日の気持ち/体調(ニコニコカレンダー)
 ○ やったこと、やること、困りポイント
 ● 周知
 ● Asana確認
 ○ マイルストーンが毎日何かしらあるので、その確認
 ■ 今日明日で終わらせなきゃいけないものって何だっけ
 全体昼会


Slide 20

Slide 20 text

● 相談・会話したいこと
 ○ ここに書いておくと昼会の場で話す
 ● 掲示板(非同期)
 ○ ここに書いておくと非同期で話す
 ○ Slackで声を掛けるほどでもない認識合わせによく使う
 ○ 非同期の場が明示されていると、定例まで遅延してしまう現象を 減らせる
 ■ 昼会まで待たずに会話が行われて、物事が進む
 全体昼会


Slide 21

Slide 21 text

● 雑談
 ○ マジで雑談
 ○ 先週の雑談から抜粋
 ■ 
 
 ■ 
 全体昼会


Slide 22

Slide 22 text

● コロナ禍で雑談コーナーの掘り下げが増えた
 ○ 顔合わせが減り、グルーミングが足りなくなった感覚
 ● 相手が血が通った人間であることを知らせる場
 ○ 人間味のあるエピソードであればあるほど良い
 ● 誰がどの話題で食いつきが良かったかを徐々に把握していく
 ● チーム内の役割分担が成立すると最高
 ○ ボケ、ツッコミ、かぶせ
 ○ こういう発言をすると拾ってくれるだろう、という安心感
 全体昼会


Slide 23

Slide 23 text

● ジブリ制作日誌コーナー
 ○ https://www.ghibli.jp/diary_m/diary.html
 ● もともとは雑談の中の一幕だったが、独立コーナー化
 ○ 雑談が無いときに必ず1つはネタがある安心感
 ○ 自分たちの働き方を、比較しながら眺めることができる
 ● 25年前の今日の日記
 ○ もののけ姫の
 公開が1997-07
 全体昼会


Slide 24

Slide 24 text

● エンジニアだけで昼会の延長戦
 ● アジェンダ
 ○ マージされたPR一覧
 ○ 日誌欄
 エンジニア昼会 


Slide 25

Slide 25 text

● マージされたPRを1つずつ眺める
 ○ チーム内プロジェクトが複数ライン走っている
 ■ インフラとか、コンテスト運用とか
 ■ 各プロジェクトは企画1、エンジニア1〜2、デザイナー1
 ○ 隣のプロジェクトのPRは実装方針も曖昧にしか知らない
 ○ 毎日すべてのPRを眺めることで、把握できる
 エンジニア昼会 


Slide 26

Slide 26 text

● 毎日すべてのPRを眺めることで、把握できる
 ○ 暮らしているだけで脳内マップが育っていく
 ■ 実装や問い合わせ対応で担当していなくても、なんとなく雰 囲気を知っているコードが自然と増える
 ○ 障害対応の初速が全然違う
 ■ 「最近変更していた〜が原因か?」という勘所がある。実装 をイメージできる
 ○ レビュアー以外でも気になりをコメントしやすい
 エンジニア昼会 


Slide 27

Slide 27 text

● 日誌欄
 ○ エンジニアとしてのグルーミングの場
 ○ 日々の暮らしの中での気になりを会話する
 ■ レビュー時にコメントしたけど全員に伝えたいものとか
 ■ 実装する上で悩んでいることとか
 ○ エンジニア向けの雑談も行う
 エンジニア昼会 


Slide 28

Slide 28 text

● レビュー時にコメントしたけど全員に伝えたいものとか
 ○ 
 
 ● 実装する上で悩んでいることとか
 ○ 
 エンジニア昼会 


Slide 29

Slide 29 text

● 参考になりそうな隣のチームの面白話とか 
 ○ 
 
 ● 技術ネタの雑談とか
 ○ 
 
 
 ○ 
 エンジニア昼会 


Slide 30

Slide 30 text

● 技術ネタの雑談はかなり意識している
 ○ 参加しているだけで新しい話題にキャッチアップできる
 ○ 話題に対して、メンバーがどう感じているかを認識できる
 ● みんながその方向が良さそうと感じていたら、自分も時間を使おうか なという気持ちになる
 ○ 「本当はもっと○○だったら嬉しいと思ってるんだよね〜」
 ○ 変化のキッカケを雑談から生み出したい
 エンジニア昼会 


Slide 31

Slide 31 text

スプリント会 


Slide 32

Slide 32 text

スプリント会 
 ● 各スプリントの最後にやっている
 ○ 隔週金曜、1時間半
 ● スプリントレトロスペクティブ+スプリントプランニングの場
 ● アジェンダ
 ○ プロジェクト毎のレビュー
 ○ スプリント計画
 ○ ふりかえり


Slide 33

Slide 33 text

プロジェクトごとのレビュー 
 ● チーム内プロジェクトが複数ライン走っている
 ○ インフラとか、コンテスト運用とか
 ○ 各プロジェクトは企画1、エンジニア1〜2、デザイナー1
 ● 各プロジェクトの健康度をAsana上で報告する
 ○ 
 
 ○ 報告するのは各プロジェクトのPjMロールの人
 ● 各プロジェクトの期限超過タスクの確認、調整


Slide 34

Slide 34 text

スプリント計画 
 ● ロードマップの確認
 ○ 直近数ヶ月の開発計画を確認する
 ○ プロジェクト体制早見表
 ● 次スプリントで達成するマイルストーンやリリース予定の確認
 ● 「要対応」プロジェクトの調整
 ● 次スプリントのタスク洗い出し&アサイン


Slide 35

Slide 35 text

ふりかえり 
 ● GKPTでふりかえる
 ○ Good、Keep、Problem、Try
 ● ファミ通クロスレビュー方式でコメントを記入する
 ○ 各内容に、各人がコメントを付けられる


Slide 36

Slide 36 text

週次、月次、四半期の会 


Slide 37

Slide 37 text

週次、月次、四半期の会 
 ● 週次
 ○ 各プロジェクトの定例
 ○ プロジェクト間の関連が薄く、全体昼会だと話題が出てきづらいので、独立し た場を用意した
 ○ スプリントレビューは主にここで行われている
 ● 月次
 ○ PWG(Performance Working Group)
 ■ サービスのレスポンス速度やエラー率、発報されたアラートや障害など を3ヶ月ぐらいの目線で確認し、キャパシティプランニングを行ったり、監 視設定や根本対策に思いを馳せたりする場


Slide 38

Slide 38 text

週次、月次、四半期の会 
 ● 月次
 ○ エンジニア会
 ■ 本来やった方が良いこととか、バックログにねじ込みたいタ スクとかを会話する場
 ■ ここの会話で優先度が変わることは結構ある
 ● 四半期
 ○ どうなっていたい会


Slide 39

Slide 39 text

どうなっていたい会 
 スクロールバーがこの短さになるぐらい
 ざっくばらんに会話している


Slide 40

Slide 40 text

● チームのベースは2週間スプリントのスクラム開発
 ● 粒度の違うコミュニケーションを組み合わせている
 ○ チーム内プロジェクトは週次で定例を持つとか
 ○ 月次でインフラの会や、エンジニアの会があるとか
 ● 気づきを自然と共有できる場を提供している
 ○ 関連する人だけの場にして、言い出しづらい要因を減らす
 まとめ


Slide 41

Slide 41 text

● 各人の「思い」を引き出しやすい場を意識して作っている
 ○ 誰が何をやりたいか、誰がどこに不満を持っているか
 ○ 認識を揃えて、加速したい
 ● これが出てくるチームにするためにグルーミングが必要
 ○ リモートだと意識して雑談コミュニケーションを取らないと、関係 性を作りづらい
 ○ 関係性=反応を想像できる=言い出しやすさに繋がる
 まとめ