エッセンシャルスクラムリーン開発の現場という本を読んだ。ざっと読んだくらいだが、ここで私が重要だと思った概念をメモっておく。

1. 基本思想

概念内容目的
Flow開発は「作業」ではなく「流れ」開発速度と品質向上
小さなBatch一度に処理する作業単位を小さくフィードバック高速化
WIP制限同時進行タスク制限集中・完了率向上
短サイクル小さく作り早く検証リスク低減

2. リーン開発の重要概念

Batch

バッチは小さく保つべきである。

項目説明
意味一度に処理する作業単位
Bad機能10個まとめてテスト
Good機能1個→テスト→リリース
効果バグ早期発見・変更容易

WIP制限

仕掛け中のものは経済的妥当のサイズを保つべきである

項目説明
WIPWork In Progress(進行中作業)
目的同時作業を減らす
方法WIP上限の設定
効果マルチタスク削減・完了増加

WIP limit = 3
A B C 完了後 → D開始

重要な理念としては「作業者手待ちではなく作業手待ちをなくせ」。 JTC的組織の場合、タスクアサインは並行して「全部やらせよう」とする。結果次のようになる。

A 80%  
B 50%  
C 30%  
D 10%

リーン的思想の場合は、このシチューエーションでは、「Aをさっさと片付ける」ことを重視する。

A 完了
B
C

一部の作業者が少し暇なことは、リーン開発ではむしろ「好ましい」と考えられる。なぜなら、作業がすぐ流れる(フロウする)からだ。これがStart less, Finish moreの思想につながる。

3. 開発指標

指標意味用途
ベロシティスプリントで完了した作業量将来の作業量予測
サイクルタイム作業開始〜完了までの時間開発速度の測定
スルーアウトプット一定期間の完了タスク数フロー効率

遅延は重要だが、本来計画は次の発想によってなされることが重要だ。つまり、計画は固定性は重要ではない。

原則意味
Decide as late as possible判断はできるだけ遅らせる
Amplify learning学習して計画を修正

Decide as late as possibleと言っているのは、「早く決めるほど、間違う確率が高い」と相場が決まっていることからである。つまり、「情報は集めよ、状況の変化は待て」と言っている。

「リーン開発の現場」によれば、計画遅延の理由には「無駄な要求がないか」などのプロセスの問題はままあることとプラクティスで挙げられている。

目指すべきところとしては、「ベロシティは週安定していることが望ましく、サイクルタイムは短く」があるべき姿だ。

Leanの基本法則

Little’s Law

意味
WIP = Throughput × Cycle TimeWIPが増えると作業時間が増える

結論

WIPを減らすと効率は上がる (あらゆることをマルチタスクで進めるな。さもなければ、全て遅延する。集中せよ)

4. スクラム開発の構造

イベント内容
スプリント・プランニングスプリントでやる作業決定
スプリント期間(1〜2週間)
デイリースクラム日次進捗共有。日本的に言うと朝会・朝礼
スプリントレビュー成果レビュー
レトロスペクティブ改善振り返り

スプリント計画のバックログでは、

    1. ユーザーストーリー
    1. 技術ストーリー

を記載するべきだが、1は重視するべきである。なにより、「価値(value)」に重きを置くべきなのが主張。

ストーリーはMike Cohnによれば、次のようにするべきである。

As a <ユーザー>
I want <やりたいこと>
So that <得られる価値>

恐らく、SI現場では「So that」があまりに不明確なことが多く、だからこそ困惑しがちになりがちではなかろうか。

つまり、タスクの捌く順序とは、次のようにするべきである。

項目考え方
優先順位ユーザー価値が高いものから
バックログユーザーストーリー中心
技術タスク必要なら入れる
目的価値を早く届ける

5. デイリースクラム

スクラム理論にとって、朝会は重要である。

目的

チームの作業調整

質問内容
昨日何をしたか進捗共有
今日何をするか作業計画
障害はあるかブロッカーを共有する

ここでのBlockerとは、つまり作業が止まる要因のことだが、例えば1つとしては「外部要因」だ。

SI現場で分かりやすいのは、「AWSとかX部署に問い合わせてるから、その対応を待っている」といったようなことである。

ルール

項目内容
時間約15分
目的調整
注意長い議論はしない

考察としては、以下のものが言えるであろう

項目グッドプラクティスアンチパターン
目的チームの作業調整上司への報告会
時間10〜15分以内長時間会議
内容昨日 / 今日 / 障害細かい作業説明
議論問題は別会議を設ける議論に興じる
焦点障害(Blocker)を共有進捗自慢
協力誰が手伝えるのかを決める個人作業の羅列
視点チーム全体の流れ個人タスク管理
成果詰まり解消状況共有

6. リーン・スクラムの核心

総じて、以下のようなことが言えるであろう。

原則内容
小さく作る小バッチ
同時作業を減らすWIP制限
早く検証短いサイクル
完了重視Start less, finish more

つまり

仕事を増やすな。流れを改善せよ。

7. マインド

自己組織化が重要であると考えられており、銃士の姿勢( All for one and one for all )は重視される。これは共同責任 (Collective Ownership)とも言う。

原則意味
One Teamチームは一体
Collective Ownership成果は全員の責任
Self-management自分たちで進め方を決める

実際にはSI現場もそうであるはずであり、契約だのなんだの言い始めるのは、ほぼ自己破滅の兆候である(しかし、お偉方ほどそれで対応だと考える)。顧客はPJを見ており、プライムはBPを見る。我々は、どこまで切り取っても店の顔にしか結局ならない。役割論と責任論を言い出すと何の改善にもならない
そのような動きでツケが回され理不尽を被るのは、結局常に現場の人間だということだ。まるで何の足しにもならない、現場を知らない人間の「べき論」に何も期待してはならない。我々に必要なことは、最上層の顧客を向いて何がベストかの仕事をすることだけだ。
また、誤解してはならないのは、「困っている人を助けよ」だがサボってる人を助けよではない。 ここで言ってるのはそれぞれのOwnershipは果たせと言っているのだ。

そして、メンバが真に把握するべきものはバックログの全てではない。 実際には焦点を当てられるべきは、Sprintである。

種類内容
Backlog全タスク
Sprint今やるもの
Doing作業中

8. まとめ

SI現場の視点から、以下のようなものがリーン・スクラム的プラクティスとバッドプラクティスと言えるだろう

観点グッドプラクティスバッドプラクティス
WIP管理同時作業数を制限タスク・課題が大量に蓄積
タスク粒度小さいPBI・短い作業巨大課題・終わりが見えない
調査作業期限付き調査(Spike)調査 → 調査 → 調査
可視化今の作業・詰まりにフォーカス巨大管理簿を全部見ろ
進捗管理完了したPBIで測る作業報告ベース
チーム文化困っている人を支援サボりの肩代わり強制
責任担当責任 + チーム協力責任転嫁
会議課題解決の場状況説明会
バックログ優先度付きPBI項番だけ増える管理簿
フロー課題が流れて完了課題が蓄積