製造業でアジャイルが定着しない理由~スプリント不在とチケット二重管理の壁 #Redmine
製造業でアジャイル開発が定着しない根因は「スプリント」概念の欠落だ。
WF型の現場ではスコープ調整が機能せず、大日程とチケットの二重管理や階層的なマイルストーンが壁となる。
Redmine運用が破綻する背景から、製造業特有の構造的課題とチケット駆動開発の実態を紐解く。
【参考】
Redmineのバージョンはなぜ使われないのか?: プログラマの思索
第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet: プログラマの思索
【0】製造業でアジャイル開発できないのはなぜか?
原因にスプリントの概念が不明確な点があると考える。
【1】ソフトウェア開発では、スプリントの概念は自然に現れる。
たとえWF型開発であってもだ。
アジャイル開発をやっているならば、1~4週間の単位で、定期的にリリースするタイミングがある。
それがスプリントだ。
スプリントの単位で、どの機能を最優先にするのか、決める。
あれもこれも機能実装するわけにはいかない。
限られた期間、限られた人数では、やれる範囲は限られる。
そこで、スコープを調整することで、やるべき機能を優先順位付けし、スプリントの工数に当てはまる範囲に絞り込む。
一般に、カンバン機能を使うだろう。
スプリントレビューで成果物を関係者がレビューし、スプリントデモで実際に成果物を見せる。
そこで得られたフィードバックを元に、また次回のスプリントに活かす。
複数のスプリントを見渡して、どの機能をどの順番でリリースしてシステムを拡張していくべきか?
それがリリース戦略になる。
リリース戦略の観点では、各スプリントの成果物はインクリメント、増分だから、計画的にどのようにインクリメントを積み重ねて最終ゴールに辿り着くのか、という考えになるだろう。
これが、小規模リリースの考えにつながるだろう。
一般に、複数のスプリントをカバーする機能はバックログ機能になるだろう。
一方、ソフトウェア開発の保守案件であれば、普通は月次の単位でリリースする運用が多いだろう。
月次の単位がスプリントになるだろう。
保守契約の工数の範囲内で、リリースする機能の優先順位を決めて、順次作業してリリースしていく。
これが開発のリズムになる。
ソフトウェア開発者にとって、この開発リズムは心地よい。
タスクの優先順位や作業順序は明確だし、自分たちの作業ペースを守って作業できるので、基本は作業負荷が高くなるケースはないからだ。
【2】しかし、製造業の現場では、スプリントの概念がしっくり来ない。
製造業の現場では、基本はWF型開発がほとんどだ。
設計工程、製造工程、試験工程、保守工程になるだろう。
各工程の大日程計画がマスタスケジュールとしてベースラインになり、ガントチャートで予実管理を行う。
そこにはスプリントという概念がない。
たとえば、Redmineのバージョンはなぜ使われないのか?: プログラマの思索に書いたように、Redmineバージョン機能は作業者レベルでは出てこない発想だ。
Redmineバージョンは期日に紐づく機能ではない。
バージョンは、スプリントでありリリースする単位であるので、期日とは別物だ。
そこで、PMOである僕は、PJ全般を見渡す権限を持つ担当として、Redmineバージョンを事前に計画する。
たとえば月次や週次でRedmineバージョンを設定する。
たとえ、製造業の案件であっても、経営層向けの報告のタイミング、顧客に報告するタイミングはあるので、それをマイルストーンに割り当てれば、それがリリースと同じ内容になるからだ。
しかし、製造業の担当者は、このバージョン、スプリント、マイルストーンをあまり意識していないように思える。
彼らはマイルストーンを意識していても、タスク量というスコープをコントロールする意識がない。
理由は簡単だ。
設計工程は確かに試行錯誤する作業が多いが、設計できたCADデータを元に製造工程、試験工程は日程が定まり、リードタイムもきっちり固まる。
設計図をもとに、全ての部品や材料を一括発注し、製造工程でまとめて組み立てて、まとめて試験するからだ。
製造工程以降ではアジャイル開発にはなりえない。
【3】Redmineバージョンが使われないタスク管理ではどんな悪影響が出るのか?
LycheeRedmineには、カンバンやバックログ機能があり、とても使いやすいUIになっている。
しかし、Redmineバージョンが設定されていないと、スプリント単位にタスクがグルーピングされないので、カンバンやバックログを有効に活用できない。
だから、製造業の現場では、カンバンやバックログの機能が使いづらい。
むしろ、ガントチャート画面で、大工程から中日程までのWBSを詳細化して階層化する方を彼らは好む。
でも、僕が第三者観点で見ると、LycheeRedmineのガントチャート画面はUIも優れているし使いやすいが、製造業の彼らは進捗管理に上手く使えているように思えない。
大工程は月次レベル、中日程は週次レベルなので、毎日の朝会でタスク確認すると、あまり進捗が進んでいないように見える。
実際、5日程度の作業量なので、毎日の進捗はせいぜい20%くらい進む程度であり、1日程度の差ではそんなに変わらない。
本来は朝会で進捗状況から課題を把握したいが、担当者が手を上げてエスカレーションしない限り、課題は分からない。
課題は現場でしか落ちていないので、現場すべてを見ていないリーダーからは、課題がないように見える。
そこで、リーダーは小日程レベルのタスクをチケット登録し、WBS管理したがるが、そうなるとタスク管理が発散する。
製造業であっても、小さなタスクはいくらでもあるので、それらを逐一登録すれば、あっという間に1案件でも数千行のWBSに膨れ上がる。
そうなれば、リーダーであってもすべての作業を追跡して把握するのは難しくなる。
本来は、スプリント単位に大量のタスクをグルーピングして、リーダーが追跡できるボリュームにタスク量を減らすべきだ。
すると、カンバンで現在のスプリントのタスク管理ができるようになる。
バックログで、現在と未来のスプリントのタスク管理ができ、出荷までの戦略を立てれるようになる。
でも、製造業の彼らはそんな管理はしていない。
【4】なぜ、製造業ではスプリントの概念が現場で上手く根付かないのか?
今僕が現場を見て認識する組織的課題は「製造業では、スプリントの単位で仕事していない。だからLycheeが提供するカンバンやバックログを利用するメリットをメンバーは感じていない」だ。
製造業でもマイルストーンはあるが、ソフトウェア開発におけるアジャイル開発の概念と根本的に異なると感じている。
僕が設定したRedmineバージョンでアジャイル開発をやろうとしても、製造業のメンバーは理解がしっくり来ず、運用できていない。
ソフトウェア開発では、スプリントに収まるタスク量をスコープ調整することで、スプリントを意識しながら作業できる。
しかし製造業ではWF型開発の観点が強いので、マイルストーンを決めると、マイルストーンに従ったスコープは確定して変更できない。
そこで、バッファを持たせてタスク管理しようとするが、よくあるようにバッファをすぐに食い潰す。
製造業でアジャイル開発をやるにはマイルストーン管理、スプリントの実装が必要だが、何か上手くいかない。
【5】もう一つの問題もある。
製造業では、大日程計画のマスタスケジュールに基づくタスク管理と、突発的な作業依頼や月次報告のためのタスク管理が混在するので、実際のタスク管理は二重管理になっている。
詳細はこうだ。
一般に、大日程計画のマスタスケジュールは顧客と締結する。
いつまでに設計が終わって製造を開始して、半年後、1年後に納品します、と顧客に提示する。
顧客に提示するマスタスケジュールは、小日程計画レベルのような細かいスケジュール表ではない。
月次レベルの荒いスケジュールであり、パワポやExcelのポンチ絵だ。
このマスタスケジュールがベースラインとなる。
製造業の社内でも、承認されたスケジュールとして保管されて、ISO9001のような監査でも使われるだろう。
つまり、大日程計画のマスタスケジュールは、顧客向け、監査向けのタスク管理だ。
一方、日々の詳細なタスク管理もある。
僕はチケット駆動開発が好きなので、製造業の現場であっても、メンバー自らチケットを発行してタスク管理を促している。
製造業の担当者もチケット管理に慣れると、自分のTODOみたいにどんどん書き出して、作業漏れを無くすように自ら動く。
また、製造業のタスクは先行後続関係が生まれるケースが多いので、彼らはRedmineチケットの先行・後続関係を使い始める。
LycheeRedmineのガントチャート画面は、先行後続関係を簡単に紐づけできるUIなので、彼らは率先して使い始める。
LycheeRedmineのクリティカルパス機能、Redmine標準のイナズマ線を使えば、ガントチャート画面上で、最優先でやるべきタスクが分かるし、進捗の遅延があるか否かを判別できる。
製造業の彼らも、Redmineのチケット管理に慣れると、こういう機能を自ら使い始めて、進捗管理を始めてくれる。
しかし、僕は、この日々のタスク管理はマスタスケジュールに故意に連動させない運用にしている。
なぜならば、せっかくチケット駆動でやり始めたタスクを大工程に紐づけると、親子チケットが発生し、WBS100%ルールに縛られて、大工程の予定期間や予定工数が上書き更新される状況が発生するからだ。
大日程計画のマスタスケジュールは顧客と握ったものだから、勝手に予定の期間や工数を変えるべきではない。
他方、大工程のマスタスケジュールと日々の詳細なタスクを紐づけたとして、WBS100%ルールを課さない設定で運用すると、マスタスケジュールよりも遅れたチケットが発生し、予実管理の意味がなくなる。
マスタスケジュールより遅れたチケットがあるならば、マスタスケジュールを更新すればよいだろうが、顧客と交渉して変更する必要があり、それは非常に難易度が高いことは誰でも知っている。
つまり、顧客に見せた綺麗な大日程のマスタスケジュールと、案件にあるチーム内のタスク管理で二重管理が発生する。
わざわざ連動させようとすると、チケットメンテ工数が肥大化するし、その管理工数はそもそも案件の目的に沿わない作業になるので無駄だ。
よって、製造業のタスク管理をRedmineでチケット管理しようとすると、PM層や顧客にきれいに見せるガントチャートと、メンバーが日々作業するチケット管理の2種類が混在するようになる。
これらを上手く管理する方法が僕にはまだ分かっていない。
【6】製造業でRedmineバージョンが上手くいかない理由は何か?
1つ目は、すでに上記で書いた。
製造業には、スプリントでスコープ管理する発想がないこと。
2つ目も、すでに書いた。
大日程のマスタスケジュールと日々のチケット管理という二重管理が発生している状況に対し、Redmineバージョンを大日程のマスタスケジュールや日々のチケット管理にどのように割り当てるべきなのか、という問題がさらに状況を複雑化させているからだ。
3つ目は、以前発表したように、製造業のタスク管理でマイルストーン管理を行う場合、メカ・エレキ・ソフトのような機能別組織があるために、マイルストーンを階層化する複雑性が発生するからだ。
第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet: プログラマの思索
【7】ソフトウェア開発では上手くやれるアジャイル開発を製造業の現場で上手くやるには何が必要なのか?
それは、Redmineバージョンをいかに製造業のタスク管理に実装できるか、が鍵を握る。
そのためには、上記の3つの問題を解決しなければ、本来のチケット管理の良さを引き出せないだろう。
今後も考える。



最近のコメント