Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JIRAとGASで半自動化!カンバンメトリクス
Search
男爵
September 18, 2021
Programming
1.4k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JIRAとGASで半自動化!カンバンメトリクス
XP祭り2021で登壇した内容です。
https://confengine.com/conferences/xp2021/proposal/15831/jiragas
男爵
September 18, 2021
More Decks by 男爵
See All by 男爵
デッドロックを回避するリポジトリ実装の勘所
dnskimo
3
620
Scalaで始める表明プログラミング
dnskimo
3
1.1k
分析・設計・テストで活きる ユースケースシナリオの書き方と使い方
dnskimo
5
11k
PHPではじめるCQRSっぽいやつ
dnskimo
9
3.1k
ユースケースシナリオのススメ
dnskimo
11
11k
PofEAAで考えるSaaSバックエンドの作り方
dnskimo
3
7.5k
契約による設計事始め
dnskimo
19
8.5k
PHPではじめるCQRS
dnskimo
5
3.9k
PofEAAで読み解くDoctrine2
dnskimo
3
2.1k
Other Decks in Programming
See All in Programming
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
Family mrubyの進捗
kishima
1
100
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
470
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
510
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
360
高専キャリア LT 発表内容
crysta1221
6
5.6k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
290
XHTMLが残したもの
yosuke_furukawa
PRO
2
470
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
130
Featured
See All Featured
Practical Orchestrator
shlominoach
191
12k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Being A Developer After 40
akosma
91
590k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
202
76k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Navigating Team Friction
lara
192
16k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Transcript
JIRAとGASで半⾃動化! カンバンメトリクス XP祭り2021 @ Online @dnskimox
Contents 2 カンバンと制約理論 スループット、サイクルタイム、プロセスサイクル効 率、累積フロー、Google Sheets メトリクスのグラフ化 方法論としてのカンバン、制約理論、WIP制限 ドラム・バッファ・ロープ、バリューストリームマッ プ、Google
App Script さらに複雑な値を求める 1 2 3
男爵 Tanga Kenichi @dnskimox 3 Scala Engineer Salesforce Engineer Engineering
Manager クラウド販売管理・クラウド請求管理ソフト • 2020/02 Object-Oriented Conference • 2020/10 ScalaMatsuri 2020 • 2021/03 PHPerKaigi 2021 近年登壇したカンファレンス
1. カンバンと制約理論 方法論としてのカンバン、制約理 論、WIP制限
お馴染みのカンバンボード
方法論としてのカンバン ≠ ただのタスクボード 6
“あらゆるシステムに同時に1つ(場合に よっては2つ)の制約が存在すると考える。 システム全体のスループットを改善するに は、最初に制約を見つけなければいけな い。次に、その制約が最大限に稼働してい ることを確認する。” 7 制約理論(TOC) ̶ 『エクストリームプログラミング』
制約理論の提唱者 エリヤフ・ゴールドラット イスラエルの物理学者。「ザ・ゴール」「ク リティカルチェーン」などのビジネス小説を 発表。 8 https://en.wikipedia.org/wiki/Eliyahu_M._Goldratt
ボトルネックを最⼤限活⽤する 9 制約理論の要点 その1 *詳しくは後ほど
コストワールドから スループットワールドへ 10 制約理論の要点 その2
製造業における2つのパラダイム 11 コストワールド 各工程での能率を最大限にまで引き 上げることを求める。ボトルネックの手 前には在庫が積み上がり続け、結果と して価値を生み出さない在庫の管理コ ストを支払う羽目になる。 スループットワールド 一定期間内に出荷される製造物の価
値を高めることを求める。各工程での 能率には大きな関心を持たない。ボト ルネックに着目した、選択と集中のプ ロセス。継続的なカイゼン。 部分最適 全体最適
ソフトウェア開発に当てはめると 12 コストワールド 「いかにしてメンバーの稼働率を上げ るか」「どれだけ多くのタスクを消化さ せるか」という観点の詰め込み型のマ ネジメント。 例)ガントチャートを使って全員に隙間 なくタスクをアサインする スループットワールド
「チームが単位時間あたりに生み出すビ ジネス価値をいかにして増やすか」という 点に焦点を当てたマネジメント。むしろゆ とりが必要と考える。 例)タイムボックス毎のベロシティの推移 を見るスクラム コマンド&コントロール? 自己組織化?
“過剰なマルチタスクを避けるためと、後続のプ ロセスに負荷をかけすぎないためだ。もし、テ スターたちが大量のやるべき作業を抱えてい たなら、開発者が新しい機能を開発し続けて、 テスターの仕事をさらに増やすのは避けたい はずだ。” 13 仕掛り(WIP)制限 ̶ 『リーン開発の現場』
*今回は概念の紹介に留めます
JIRAのWIP制限機能
2. メトリクスのグラフ化 スループット、サイクルタイム、プロセスサイクル 効率、累積フロー、Google Sheets
“1ヶ月などある決まった時間内にデリバリーされ た項目数、あるいは何らかの価値指標でレポート が示されるべきである。(中略)カンバンシステム (チームや組織)がどのようなパフォーマンスを発 揮しているかの指標として、常時改善が行われて いるかを示すのに使用される。” 16 スループット ̶ 『カンバン
ソフトウェア開発の変⾰』
ソフトウェア開発におけるスループットとは? 17 ストーリー ポイント プランニングポーカーな どで求めた、「ストー リーの相対的な規模」を 表すポイント ファンクション ポイント
データの入出力やデー タ項目数から機械的に 求めた、「機能の規 模」を表すポイント ユースケース数 ユーザー(アクター) とシステムの相互作用 を表すシナリオの数。
前提となるJIRAプロジェクトの設定
今回取り上げるワークフロー
1. リリース済みの課題を検索する 2. 1の結果をGoogle Sheetsとしてエ クスポートする 3. 「解決日」を条件として、計測日 毎に累計解決数をCOUNTする 4.
前回からの累計解決数の差分をス ループットとする 5. 「複合」グラフを生成する 20
1. リリース済みの課題を検索する 2. 1の結果をGoogle Sheetsとしてエ クスポートする 3. 「解決日」を条件として、計測日 毎に累計解決数をCOUNTする 4.
前回からの累計解決数の差分をス ループットとする 5. 「複合」グラフを生成する 21
1. リリース済みの課題を検索する 2. 1の結果をGoogle Sheetsとしてエ クスポートする 3. 「解決日」を条件として、計測日 毎に累計解決数をCOUNTする 4.
前回からの累計解決数の差分をス ループットとする 5. 「複合」グラフを生成する 22
“ある作業が完了するまでにかかった時間を意味 している。(中略)こういった情報を可視化し始め ると、ほとんどすべての会社で同じような恐怖を みんなが体験する。だいたいの場合、開発の経 過日数は、実際の作業日数より5倍から10倍長く なる。” 23 サイクルタイム ̶ 『リーン開発の現場』
“「ねえ、機能Xの作業日数は2日だけだったの に、ボードを横切るのには20日もかかっている ぞ! これだとプロセスサイクル効率は10%で しかない」(中略)この数値を上昇させること は、無駄の発見や無駄を取り除くいい手段にな る。” 24 プロセスサイクル効率 ̶ 『リーン開発の現場』
プロセスサイクル効率 = プロセスタイム ÷ サイクルタイム 25 実際の作業日数
ワークフローにバッファステージを設ける 着手待ち、在庫
https://marketplace.atlassian.com/apps/1211756/time-in-status
28 1. Time In Statusでステージ毎の滞在 日数を表示する 2. 1の結果をCSV形式でエクスポート し、Google Sheetsに貼り付ける
3. 課題毎にサイクルタイム、プロセス タイム、プロセスサイクル効率を求 める 4. 「複合グラフ」を生成する
29 1. Time In Statusでステージ毎の滞在 日数を表示する 2. 1の結果をCSV形式でエクスポート し、Google Sheetsに貼り付ける
3. 課題毎にサイクルタイム、プロセス タイム、プロセスサイクル効率を求 める 4. 「複合グラフ」を生成する
30 1. Time In Statusでステージ毎の滞在 日数を表示する 2. 1の結果をCSV形式でエクスポート し、Google Sheetsに貼り付ける
3. 課題毎にサイクルタイム、プロセス タイム、プロセスサイクル効率を求 める 4. 「複合グラフ」を生成する
“状態ごとの作業量を示す面グラフである。 (中略)線を垂直に結んだ高さが、その日に おける仕掛りの量を示している。(中略)水平 方向の距離が、ユーザー機能の開発から終 了までの平均リードタイムである。” 31 累積フロー ̶ 『カンバン ソフトウェア開発の変⾰』
https://support.atlassian.com/ja/jira-software-cloud/docs/view-and-under stand-the-team-managed-cumulative-flow-diagram/
順次増えていく組み込みのレポート機能
3. さらに複雑な値を求める ドラム・バッファ・ロープ、バリューストリームマップ、 Google App Script
ボトルネックを最⼤限活⽤する 35 制約理論の要点 その1
“先頭の兵隊といちばん歩くのが遅い兵隊、 つまりボトルネックとをロープで結ぶんです。 (中略)必要な量の仕掛り在庫がボトルネッ クまで流れていって溜まるようにしてあげれ ばいいんです。” 36 ドラム・バッファ・ロープ ̶ 『クリティカルチェーン』
http://www.lean-manufacturing-japan.jp/words/dbr.html
ボトルネックの手前に適切な サイズのバッファを設ける 38
“プロダクトの価値がお客様の手に渡 るまでの仕事の流れを見える化するた めのプラクティスだ。流れの中で、付 加価値が生まれ、プロダクトが滞りな く実現に向けて動いていけるのかを確 認する。” 39 ̶ 『カイゼンジャーニー』 バリューストリームマップ
40 1. スループットのグラフに使った課題一 覧のシートを用意する 2. サイクルタイムのグラフに使ったス テージ毎の滞在日数のシートを用意す る 3. Google
App Scriptを使って2つのシー トの情報を結合し、「解決日」が特定 の期間内である課題の各ステージの平 均滞在日数のを求める 4. バリューストリームマップを描く(手 動)
41 1. スループットのグラフに使った課題一 覧のシートを用意する 2. サイクルタイムのグラフに使ったス テージ毎の滞在日数のシートを用意す る 3. Google
App Scriptを使って2つのシー トの情報を結合し、「解決日」が特定 の期間内である課題の各ステージの平 均滞在日数のを求める 4. バリューストリームマップを描く(手 動)
1. スループットのグラフに使った課題一 覧のシートを用意する 2. サイクルタイムのグラフに使ったス テージ毎の滞在日数のシートを用意す る 3. Google App
Scriptを使って2つのシー トの情報を結合し、「解決日」が特定 の期間内である課題の各ステージの平 均滞在日数のを求める 4. バリューストリームマップを描く(手 動) 42
43 1. スループットのグラフに使った課題一 覧のシートを用意する 2. サイクルタイムのグラフに使ったス テージ毎の滞在日数のシートを用意す る 3. Google
App Scriptを使って2つのシー トの情報を結合し、「解決日」が特定 の期間内である課題の各ステージの平 均滞在日数のを求める 4. バリューストリームマップを描く(手 動)
実装準備完了 実装中 QA準備完了 QA中 リリース準備完了 リリース済み
想像できるメトリクスは大体取れる その他の計測すると良さそうなメトリクス • 実際の仕掛りの課題数の推移 • サイクルタイムのばらつき • 課題タイプ毎のサイクルタイムの違い • レビューやQAのステージからの手戻り率
• etc…
1. ワークフローにバッファステージを設ける 2. 各ステージの滞在時間を記録する 3. JIRAのフィルター機能で課題を抽出する 4. Google Sheetsでグラフを描く 5.
表計算しづらい値はGASを使って算出 カンバンメトリクス計測の基本的な流れ 定期作業は二週間に一回、 10分程度
Does anyone have any questions? @dnskimox 男爵が書く 47 Thanks!
参考文献 • エクストリームプログラミング | ベック,ケント, アンドレス,シンシア, Beck,Kent, Andres,Cynthia, 征典, 角
• カンバン ソフトウェア開発の変革 Improving Service Delivery in Technology Business • リーン開発の現場 カンバンによる大規模プロジェクトの運営 • クリティカルチェーン ―なぜ、プロジェクトは予定どおりに進まないのか ? • カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで • Eliyahu M. Goldratt - Wikipedia • チーム管理対象累積フロー図を理解する | Jira Software Cloud | Atlassian サポート • DBR(ドラムバッファロープ )理論 48