Share
Embed
[Agile][Scrum] 転リファ
正式タイトル:異世界に転生したら激レア職業のスクラム Developer だったので手始めに Scrum Fest Osaka 2020 でラーニングしたスキルでリファインメント無双してみた
スクラムフェス三河2020 でお話しした内容です
kata_junn
September 06, 2021
Transcript
50 slides
-
異世界に転生したら激レア職業のスクラム Developer だったので手始めに Scrum Fest Osaka 2020 でラー ニングしたスキルでリファインメント無双してみた 片野
潤一 伊藤忠テクノソリューションズ株式会社 アジャイル営業推進部 -
異世界に転生したら激レア職業のスクラム Developer だったので手始めに Scrum Fest Osaka 2020 でラー ニングしたスキルでリファインメント無双してみた 片野
潤一 伊藤忠テクノソリューションズ株式会社 アジャイル営業推進部 -
かたじゅん(片野 潤一) Twitter:@kata_junn Java Struts/Spring/MyBATIS 2005 2014 OutSystems Developer@3人(6か月) Developer
&& TL@約10人(24か月) OutSystems 推進 2019 2020 Scrum on AWS Role:Developer TypeScript Serverless Dynamo, Lambda, S3, SQS, Kinesis, Athena Angular OutSystems OutSystems 推進 認定スクラムマスター(CSM) AWS Certified DevOps Engineer - Professional OutSystems Expert Web Developer (O11) 好き:リアル脱出ゲーム、低温調理、肉、ゴルフ、スパイス、DQW 20% -
プロダクト バックログ リファインメント “プロダクトバックログに含まれるアイテムに対して、詳細の追加、見積り、並び替えをするこ とを、プロダクトバックログのリファインメントと呼ぶ。 これはプロダクトオーナーと開発チームが協力して行う継続的なプロセスである。プロダクト バックログのリファインメントによって、アイテムのレビューと改訂が行われる。 いつどのようにリファインメントをするかは、スクラムチームが決定する。リファインメント は、開発チームの作業の 10%
以下にすることが多い。” https://www.scrumguides.org/docs/scrumguide/v1/Scrum-Guide-JA.pdf -
Priority H L Product Backlog Sprint Backlog Daily Standup Sprint
1-4 week(s) Iteration Potentially Shippable Product Increment Ready Not Ready -
Priority H L Product Backlog Sprint Backlog Daily Standup Sprint
1-4 week(s) Iteration Potentially Shippable Product Increment Ready Not Ready に変えたり 優先順位付けするのがリファインメント を Not Ready Ready 洗 練 -
Ready の定義(例) プロダクトバックログ項目が必要な場所に書かれている 受け入れ基準が定義されている ほかのプロダクトバックログ項目との依存関係が明らかになっている プロダクトバックログ項目は開発チームによって見積もられている 開発するのに必要な上流や外部から提供される部品が手に入っている 必要な場合は、非機能要件(性能やセキュリティ)が定義されている デモの手順がわかる 開発を進める上で大きな疑問は残っていない
なぜそのプロダクトバックログ項目が必要なのかの価値が明確化されている …… 出典:https://www.ryuzee.com/contents/blog/7099 -
Ready の定義(例) プロダクトバックログ項目が必要な場所に書かれている 受け入れ基準が定義されている ほかのプロダクトバックログ項目との依存関係が明らかになっている プロダクトバックログ項目は開発チームによって見積もられている 開発するのに必要な上流や外部から提供される部品が手に入っている 必要な場合は、非機能要件(性能やセキュリティ)が定義されている デモの手順がわかる 開発を進める上で大きな疑問は残っていない
なぜそのプロダクトバックログ項目が必要なのかの価値が明確化されている …… 引用:https://www.ryuzee.com/contents/blog/7099 技術的な不安要素もなく見積がなされており 価値と仕様が明確で Developer がすぐにでも開発に着手できる状態 -
Ready なプロダクトバックログのイメージ(めっちゃぼかした) 要件と価値とざっくり仕様 Dev 内の見積作業結果 DEV ⇔ PO 質問結果 受入条件
技術的な不安要素もなく見積がなされており 価値と仕様が明確で Developer がすぐにでも開発に着手できる状態 -
リファインメントを 2 種類用意 リファインメント with PO 通称:PO リファ(木・月 に 1H
開催) リファインメント in DEV 通称:DEV リファ(金・火 に 1H 開催) PO とのコミュニケーションの機会 価値の共有、仕様協議・決定を実施する 主に確認項目や受入条件への追記・修正が 行われる PO DEV ワイガヤ ワイガヤ DEV 内での実装方法検討の場 共有された価値を実現するための手法を決 定し、見積可能なレベルに落とし込む 主に確認項目への追記・修正や見積結果の 追記が行われる DEV あーでも こーでも DEV -
こんな雰囲気で日々 Ready にしてます 木 金 月 火 PO リファ DEV
リファ PO リファ DEV リファ こういうの 欲しいんす なぜ欲しいの? こういう風に実装すると 楽だけど価値変わっちゃう? PO DEV それならおけ 把握 こういう感じで -
こんな雰囲気で日々 Ready にしてます 木 金 月 火 PO リファ DEV
リファ PO リファ DEV リファ 作業レベル に落とすよ あれ、このケースどうな るんだっけ? あれ、このサービス初めて 使うんじゃ? DEV DEV スパイク 必要やん せやな PO に聞こう 作業レベル に落とすよ こうしてこうかな 見積もるか DEV DEV プランニング ポーカー! じゃー5で ばっちり -
こんな雰囲気で日々 Ready にしてます 木 金 月 火 PO リファ DEV
リファ PO リファ DEV リファ 見積できた? スパイクさせて あと追加の 確認事項もあります PO DEV ふむふむ 見積できた? できました、5です 不明点もないっす PO DEV Ready だ! -
こんな雰囲気で日々 Ready にしてます 木 金 月 火 PO リファ DEV
リファ PO リファ DEV リファ 作業レベル に落とすよ Ready じゃないけ ど見積はできるね イケメン DEV DEV プランニング ポーカー! じゃー3で 確認事項足しといた -
要件と価値とざっくり仕様 Dev 内の見積作業結果 DEV ⇔ PO 質問結果 受入条件 PO リファと
Dev リファの領域 Dev リファ PO リファ Dev リファ PO リファ Dev リファ -
PO リファでは質問攻め このケースは? PO DEV 例えば~~の場合は … くぁwせdr ftg このケースは?
このケースは? 認識の齟齬が発生しがち 構造化されていない 会話・表現スキルも求められる(オンラインだとなおさら) -
PO リファでは質問攻め このケースは? PO DEV 例えば~~の場合は … くぁwせdr ftg このケースは?
このケースは? 認識の齟齬が発生しがち 構造化されていない 会話・表現スキルも求められる(オンラインだとなおさら) 実例マッピング よさそう -
例を用いることで、共通理解の構築や矛盾点発見を促してくれるプラクティス ※ “日本の開発者・経営者に特に伝えるべき Agile Testing のエッセンス” broccoli さん@Scrum Fest Osaka
2020 で出会う Scrum Fest Osaka 2020 登壇ブログ:https://nihonbuson.hatenadiary.jp/entry/scrumfestosaka2020 実例マッピング紹介ブログ:https://nihonbuson.hatenadiary.jp/entry/ExampleMapping 元ブログ(画像出典元):https://cucumber.io/blog/bdd/example-mapping-introduction/ 実例マッピング(Example Mapping) -
実例マッピング(Example Mapping) Story Rule Example Question 議論中のストーリー(仕様・機能) ストーリーを構成するルール あるルールに当てはまる例 疑問点・解決できていない何か
例が多すぎる=ルールが複雑なのでルールの整理や検討、 分割を検討すべき、かもしれない ルールが多すぎる=ストーリーが複雑なのでストーリー の分割を検討すべき、かもしれない 疑問点が多すぎる=学んだり調査すべき内容がまだたく さんある -
実例マッピング(Example Mapping)の様子 PO DEV 取り込んだあるデータを 別々のカラムに分けて 集計に使いたいんです PO 都道府県とそれ以降に分けたいん です
ふむふむ、こういうストーリー とルールですね データを2つに分解したい カラム1:都道府県 カラム2:それ以降 -
実例マッピング(Example Mapping)の様子 PO 「神奈川県」と「川崎市」に 分けてほしいです カラム1:都道府県 カラム2:それ以降 DEV 例えば、 神奈川県川崎市
ではどうなります? 「神奈川県川崎市」 1:神奈川県 2:川崎市 データを2つに分解したい -
実例マッピング(Example Mapping)の様子 PO 都道府県名は空白で良いです カラム1:先頭の都道府県を 抜き出す(なければ空白) カラム2:それ以降 DEV 都道府県が入っていなかったら どう振舞いますか?
「神奈川県川崎市」 1:神奈川県 2:川崎市 「川崎市」 1:(空白) 2:川崎市 DEV 先頭の都道府県を抜き出す、と いうルールということですね、 変えました。 データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: カラム1を除いた結果 DEV ルールが肥大化しすぎたので 分けて整理しました 「神奈川県川崎市」 ↓ 川崎市
「川崎市」 ↓ 川崎市 カラム1: 先頭の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) DEV カラム1 のルールについて さらに深掘りさせてください データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: カラム1を除いた結果 「神奈川県川崎市」 ↓ 川崎市 「川崎市」 ↓ 川崎市
カラム1: 先頭の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) PO DEV 先頭は必ず都道府県で始まって ますか? あ、そんなことなさそうでした 他の文字列が入っているケースも あります DEV なるほど ではルールを見直しましょう! データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: カラム1を除いた結果 「神奈川県川崎市」 ↓ 川崎市 「川崎市」 ↓ 川崎市
カラム1: 文中の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) DEV 都道府県が文中に入っていたら それを抜き出す、という仕様は いかがでしょう? DEV 例えば、 「xxx 神奈川県川崎市」では カラム1=神奈川県 になります PO はい、それでバッチリです 「 xxx 神奈川県川崎市」 ↓ 神奈川県 データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: 元々の文字列そのまま 「神奈川県川崎市」 ↓ 神奈川県川崎市 「川崎市」 ↓ 川崎市
カラム1: 文中の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) 「 xxx 神奈川県川崎市」 ↓ 神奈川県 DEV あと、カラム2 のルールを見直 しましょう。単純に抜き出すと 意味不明な文字列になります PO では、元々の文字列をそのまま入 れるようにしてください。分析の 価値は損なわれません。 DEV はい。 例も一緒に整理しますね 「 xxx 神奈川県川崎市」 ↓ xxx 神奈川県川崎市 データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: 元々の文字列そのまま 「神奈川県川崎市」 ↓ 神奈川県川崎市 「川崎市」 ↓ 川崎市
カラム1: 文中の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) 「 xxx 神奈川県川崎市」 ↓ 神奈川県 DEV あ、そうだ 元の文字列ってカナできたりし ます? 「 xxx 神奈川県川崎市」 ↓ xxx 神奈川県川崎市 PO …うーん、即答できないので調査 しておきます… カナの文字列来る? データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: 元々の文字列そのまま 「神奈川県川崎市」 ↓ 神奈川県川崎市 「川崎市」 ↓ 川崎市
カラム1: 文中の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) 「 xxx 神奈川県川崎市」 ↓ 神奈川県 DEV PO ありがとうございました! 「 xxx 神奈川県川崎市」 ↓ xxx 神奈川県川崎市 カナの文字列来る? データを2つに分解したい -
実例マッピング(Example Mapping)の様子 カラム2: 元々の文字列そのまま 「神奈川県川崎市」 ↓ 神奈川県川崎市 「川崎市」 ↓ 川崎市
カラム1: 文中の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) 「 xxx 神奈川県川崎市」 ↓ 神奈川県 DEV PO ありがとうございました! 「 xxx 神奈川県川崎市」 ↓ xxx 神奈川県川崎市 カナの文字列来る? データを2つに分解したい -
データを2つに分解したい 実例マッピング(Example Mapping)の様子 DEV PO この仕様で! 受入条件に使える カラム2: 元々の文字列そのまま 「神奈川県川崎市」
↓ 神奈川県川崎市 「川崎市」 ↓ 川崎市 カラム1: 文中の都道府県を抜き 出す(なければ空白) 「神奈川県川崎市」 ↓ 神奈川県 「川崎市」 ↓ (空白) 「 xxx 神奈川県川崎市」 ↓ 神奈川県 「 xxx 神奈川県川崎市」 ↓ xxx 神奈川県川崎市 テストケースに使える カナの文字列来る? これが解決すると READY になる -
まとめ リファインメントという単語の正式名称がわかる プロダクトバックログリファインメント、でした リファインメントの目的がわかる プロダクトバックログアイテムの優先順位付けを行いつつ Ready にしていくこと、でした リファインメントがいつ・どのくらいの割合で実施されるべきかがわかる 頻度はチームで決めますが総じて稼働時間の 10%
程度、でした リファインメントの実践イメージが湧く(Scrum Fest Osaka 2020 要素) 実例マッピングの光景のような雰囲気で行われています -
素材出典元 わかりやすいアジャイルソフトウェア開発の教科書 https://www.amazon.co.jp/dp/B00GJGOPLO Introducing Example Mapping https://cucumber.io/blog/bdd/example-mapping-introduction/ 併せて読んでね(ブロッコリーさんのブログ) 受け入れ基準の設定時などに役立つプラクティス「Example Mapping」を翻訳したので紹介します
https://nihonbuson.hatenadiary.jp/entry/ExampleMapping Scrum Fest Osaka @Online 開催終了?しました https://nihonbuson.hatenadiary.jp/entry/scrumfestosaka2020