エッセンシャルスクラムとリーン開発の現場という本を読んだ。ざっと読んだくらいだが、ここで私が重要だと思った概念をメモっておく。
1. 基本思想
| 概念 | 内容 | 目的 |
|---|---|---|
| Flow | 開発は「作業」ではなく「流れ」 | 開発速度と品質向上 |
| 小さなBatch | 一度に処理する作業単位を小さく | フィードバック高速化 |
| WIP制限 | 同時進行タスク制限 | 集中・完了率向上 |
| 短サイクル | 小さく作り早く検証 | リスク低減 |
2. リーン開発の重要概念
Batch
バッチは小さく保つべきである。
| 項目 | 説明 |
|---|---|
| 意味 | 一度に処理する作業単位 |
| Bad | 機能10個まとめてテスト |
| Good | 機能1個→テスト→リリース |
| 効果 | バグ早期発見・変更容易 |
WIP制限
仕掛け中のものは経済的妥当のサイズを保つべきである
| 項目 | 説明 |
|---|---|
| WIP | Work 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 Time | WIPが増えると作業時間が増える |
結論
WIPを減らすと効率は上がる (あらゆることをマルチタスクで進めるな。さもなければ、全て遅延する。集中せよ)
4. スクラム開発の構造
| イベント | 内容 |
|---|---|
| スプリント・プランニング | スプリントでやる作業決定 |
| スプリント | 期間(1〜2週間) |
| デイリースクラム | 日次進捗共有。日本的に言うと朝会・朝礼 |
| スプリントレビュー | 成果レビュー |
| レトロスペクティブ | 改善振り返り |
スプリント計画のバックログでは、
- ユーザーストーリー
- 技術ストーリー
を記載するべきだが、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 | 項番だけ増える管理簿 |
| フロー | 課題が流れて完了 | 課題が蓄積 |