Upgrade to Pro — share decks privately, control downloads, hide ads and more …

効果的なスプリントプランニングのトライ

TK
October 02, 2021

 効果的なスプリントプランニングのトライ

Scrum fest Osaka 2021

TK

October 02, 2021
Tweet

More Decks by TK

Other Decks in Technology

Transcript

  1. 効果的なスプリントプランニングのトライ

    Retty株式会社

    今井貴明

    Scrum Fest Osaka 2021 

    2021/06/26 


    View Slide

  2. 自己紹介

    ● TK (Imai Takaaki)

    ● エンジニア

    ○ 2015~ SIer

    ○ 2021~ Retty株式会社

    ● @t_k_redman


    View Slide

  3. 今日のお話


    View Slide

  4. スプリントプランニングについて話します

    ● スプリントプランニングってどんなことするイメージ?


    View Slide

  5. スクラムガイドによると・・・

    https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf
    スプリントプランニングは次のトピックに対応する:
    トピック 1:このスプリントはなぜ価値があるのか?
    トピック 2:このスプリントで何ができるのか?
    トピック 3:選択した作業をどのように成し遂げるのか?

    View Slide

  6. スクラムガイドによると・・・

    https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf
    スプリントプランニングは次のトピックに対応する:
    トピック 1:このスプリントはなぜ価値があるのか?
    トピック 2:このスプリントで何ができるのか?
    トピック 3:選択した作業をどのように成し遂げるのか?
    端的に言えば
    「やることを決めてタスク分解」
    ・・・かな?

    View Slide

  7. スクラムガイドによると・・・

    https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf
    スプリントプランニングは次のトピックに対応する:
    トピック 1:このスプリントはなぜ価値があるのか?
    トピック 2:このスプリントで何ができるのか?
    トピック 3:選択した作業をどのように成し遂げるのか?
    今日は特にこの部分について

    View Slide

  8. スプリントプランニングで実現できると思ってること

    ● スプリントゴールまでの道のりをクリアにする

    ● デイリースクラムの効果を上げる

    ● 開発チーム内の文化ができる


    View Slide

  9. きっかけ


    View Slide

  10. スクラム学び始めのスプリントプランニング理解

    スクラムマスター 兼 開発者の私

    スプリントの計画を立て
    るんだな〜〜〜
    タスク分解な〜
    完全理解

    ガイド読んだ

    トレーニング受けた

    ● スクラムガイドとかの説明を読むと一応理解できる

    ● スクラムイベントの中では比較的イメージしやすいイベントではあると思う


    View Slide

  11. やってみると難しい①

    ● タスクが大きくなりすぎたりふわっとしてしまう

    ○ やってみないと、調べてみないとわからないからざっくりタスク化

    ○ タスクボリュームが読めなくてバッファを積んでしまう

    調査
    確認

    View Slide

  12. やってみると難しい②

    ● タスクが属人化してしまう

    ○ 詳しい人しか取れないタスクができる

    ○ スキル的に取れるタスクが限られる


    View Slide

  13. やってみると難しい③

    ● 時間がかかりすぎてしまう

    ○ 半日とか1日とかかかってしまってもっと短くしたい

    ○ 作業に費やす時間の割合が減ってしまう


    View Slide

  14. 昔々あるところのチーム

    ● チームメンバーは自分を含む4人

    ● 結成3ヶ月くらい

    ● スクラムビギナーズ

    ● 自力でコーディングできるメンバーは半分


    View Slide

  15. チームの抱えるスプリントプランニングの悩み

    タスクが
    大きすぎる
    タスクによって特定の
    人に偏ってしまう
    スプリントプランニング
    に時間がかかる

    View Slide

  16. チームの抱えるスプリントプランニングの悩み

    タスクが
    大きすぎる
    タスクによって特定の
    人に偏ってしまう
    スプリントプランニング
    に時間がかかる

    View Slide

  17. 一番の課題はスキル差

    ● 一人では取れないタスクも多くありパフォーマンスに影響が出
    ていた

    ● コーディング経験が浅いメンバーを常にフォローしながら進め
    ている状態


    View Slide

  18. 自力で書ける・書けないの違いは何?

    ● コーディング経験が浅いメンバーも、基本的な文法理解はある
    し一緒に処理を追えば読むこともできる

    ● ヒアリングしていくと「何から手をつけたらいいかわからない」と
    いう課題がありそう


    View Slide

  19. ● コーディングって何から始めてどうやって進めてたっけ?

    無意識でやっていることを言語化してみる

    処理の大枠の流れから•••


    データ取り回しに必要な処理を

    洗い出し•••


    モデルクラス•••関数•••


    View Slide

  20. それをみんなでやってみれば良いのでは

    ● 普段は頭の中で無意識にやっている手順を会話で確認しなが
    らスプリントプランニングでみんなでやってみることにした


    View Slide

  21. トライと結果


    View Slide

  22. スプリントプランニングでやったこと①

    ● 処理順を会話で確認しながら実装内容をコメントで書いていく

    ○ 最初は「ここでこの配列をループさせてこの変数に値を入
    れていく」くらいまで

    ○ 基準は「みんなが自力でコーディングできる」こと

    ● コメントをキリのいい範囲で切って一つのタスクにする


    View Slide

  23. スプリントプランニングでやったこと②

    ● わからないことがあった場合は調査

    ○ 細かくタスクを切っていくためには不確実なことをなくして
    いくことが必然

    ○ APIの仕様、データ構造の検討、既存処理把握など今まで
    調査タスクにしていたものは全てスプリントプランニング内
    で消化した


    View Slide

  24. 細かくタスク分解していった結果

    タスクが
    大きすぎる
    タスクによって特定の
    人に偏ってしまう
    スプリントプランニング
    に時間がかかる
    ● 誰が見てもやることが明白な状態になり誰でもタスクが取れる

    ● 経験が浅いメンバーに対してレクチャーもできた


    View Slide

  25. 細かくタスク分解していった結果

    ● 属人化排除のためのタスク細分化でやることがクリアに

    ● 不確定要素が減ってバッファを積む必要がなくなった

    ● メンバー間での仕様の認識乖離がスプリント序盤で解消した

    タスクが
    大きすぎる
    タスクによって特定の
    人に偏ってしまう
    スプリントプランニング
    に時間がかかる

    View Slide

  26. 細かいタスク分解でチームの文化ができてきた

    ● スキルの高い人に引っ張られてレベルが底上げされる

    ● レベルが上がると必要なタスク粒度や表現方法も変わる

    ● 思想が揃ってくる

    ○ クラスやコンポーネントの設計、関数の切り方、モデル化
    などのルールが確立されていく


    View Slide

  27. 未解決の課題

    ● 調査事項も消化しながらタスク細分化までやるので当然さらに
    時間はかかる

    タスクが
    大きすぎる
    タスクによって特定の
    人に偏ってしまう
    スプリントプランニング
    に時間がかかる

    View Slide

  28. 時間かかってもいいんじゃない?

    ● むしろこれくらいやらないとスプリントゴールまでの道なんて見
    通せない

    =タスク粒度が粗いと検査の精度が上がらない

    ● なぜ「調べないと分からない」ことが残ってるのにスプリント
    ゴールが達成できると思っていたのか・・・


    View Slide

  29. そうは言ってもMTGに時間をかけたくない・・・

    ● 手を動かしてない時間が増えると不安が募る

    ○ 当時スプリントプランニングに1.5日くらいかけてた

    ○ 1週間スプリントなので手を動かせるのは60%くらい


    View Slide

  30. そもそもMTGとして捉えない方がいい

    ● WFでいうところの詳細設計をしている

    ● 設計工程をモブワークしているのだと思えばこれも必要な時
    間


    View Slide

  31. でもそんなに細かくして大丈夫?

    ● タスク間の依存度上がらない?

    ○ 時間にして15分とか30分のタスクになる

    ○ きれいに疎結合のタスクにするのは難しい

    ● 結局一連のタスクを同じ人がとることにならない?

    ○ それスクラム的にどうなの?

    ○ それなら細分化しなくても一緒じゃない?


    View Slide

  32. 目的は「透明性を上げる」こと

    ● 全てのタスクを疎結合にすることが目的ではない

    半日見込みのタスクに昨日から着手
    してます。
    多分昼過ぎくらいに終わります。
    例えばデイリースクラムで・・・

    30分見込みのタスクが半分くらい仕
    掛かってます。
    次はこの30分タスク取って、午前中は
    3つくらい消化できそうです。
    スプリントゴールに向けた検査がしやすいのはどっち?


    View Slide

  33. ブラックボックスこわい

    ● 半日で終わる根拠がわからない

    ● 当人が気付いていない問題が眠っているかも

    ● 「このタスク思ったより時間かかった」というときに振れ幅が大
    きい


    View Slide

  34. 「依存関係になりにくい設計にする」という考え方も

    ● 「必要な関数は何か」という視点で分解していくなど

    ○ 依存関係のあるタスクを少なくできる

    ● タスク細分化のためだけにそうするわけでもない

    ○ リファクタリングしながら計画するイメージ

    ● 関数ごとに実装するならついでにテストも書いちゃったり

    ○ どこかで聞いたような設計方法論がハマりそう


    View Slide

  35. まとめ


    View Slide

  36. スプリントプランニングで実現できると思ってること

    ● スプリントゴールまでの道のりをクリアにする

    ● デイリースクラムの効果を上げる

    ● 開発チーム内の文化ができる


    View Slide

  37. スプリントプランニングで実現できると思ってること

    ● スプリントゴールまでの道のりをクリアにする

    ● デイリースクラムの効果を上げる

    ● 開発チーム内の文化ができる

    ● 不確実なことはクリアにしてしまってやることを明白にする
    ● タスク細分化の過程で実現内容(仕様)の認識をすり合わせる

    View Slide

  38. スプリントプランニングで実現できると思ってること

    ● スプリントゴールまでの道のりをクリアにする

    ● デイリースクラムの効果を上げる

    ● 開発チーム内の文化ができる

    ● タスクが細かい方が透明性が高まる(ブラックボックスになりにくい)
    ● スプリントゴールに向けた進捗の検査精度が高まる
    ● 日々の、もっと言えば毎時のステータスが見える

    View Slide

  39. スプリントプランニングで実現できると思ってること

    ● スプリントゴールまでの道のりをクリアにする

    ● デイリースクラムの効果を上げる

    ● 開発チーム内の文化ができる

    ● スキルが高い人に引っ張られる
    ● タスク粒度の基準を「誰でも一人でできる」にすることでチームのレベルにあったタ
    スク粒度になっていく
    ● 設計や実装の思想が揃う

    View Slide

  40. 言いたいこと

    スプリントプランニングでは

    スプリントゴールを見通せる細かいタスク分解が良さそう!


    View Slide

  41. おまけ

    ● CSMとかCSPOのトレーニングで言われて今になって分かった気がすること

    ○ 「設計はスプリントプランニング内で行うんです」

    ■ →そうだね

    ○ 「スプリントの成功はプランニングで8割決まります(トレーナー調べ)」

    ■ →そうかも

    ○ 「スプリントプランニングで立てる計画は一つでなければいけないとは決まってませ
    ん」

    ■ →どうしてもプランニング内でクリアにしきれない不明事項は条件分岐後の計
    画もしっかり立ててスプリントゴールを見通せってことかな?


    View Slide

  42. ご清聴ありがとうございました!


    View Slide