ITのQCDって概念、実はみんな雰囲気で言ってる説
IT開発の管理職の方は(もしかしたらメンバーの方も)多くが「QSD」または「QCDS」について習ったのではないでしょうか。
復習になりますがソフトウェア開発におけるQCDSはそれぞれ以下と教わります。
- Quality:品質
- Cost:コスト
- Delivery:納期
- Scope:スコープ(対応範囲)[1]
そしてこれらはいずれも重要ながら、トレードオフの関係にあるため相互にバランスをとりながら成果物提供まで持っていくのがリーダーの重要な仕事である、というところまでがワンセットですね。
これ習ったとき、皆さんすぐに腑に落ちましたか?
「品質って要はテストをかけってこと?」
「コストって工数をどこまでかけるかってこと?」
「デリバリーってピザじゃないんだから。。リリース日程と読み替えればいいのかな」
みたいに分かったような分からないような感情が湧かなかったでしょうか。
私自身、業務で接してきた方でこれらを明確に説明できる方はいませんでした。
多くのプロジェクト管理の教本の第1章とか第2章とかに載ってて、開発管理の中核的な概念とされているにもかかわらずです。
で、私が思うにこれはQCDの出自からちょっとおかしいのでそこをポエりたいなという記事です。
製造業から無理やり輸入&魔改造した概念だからわかりにくい
もともとQCDという概念は製造業(特に自動車産業)の生産管理分野で1960-70年代ごろには普及していた[2]とされます。
で、それが後になってソフトウェア産業のウォーターフォールプロジェクト管理フレームワークとして転用され、更にアジャイル文脈に適合するため「S」が増えた、といった話です。
そしてソフトウェア産業と自動車産業は産業構造が根本的に異なります。というかあっちは生産管理でこっちは開発管理です。
QCDを持ち込んだはいいが深い理解や議論がすごくやりづらくなってしまった、的な話と考えています。
ちなみに私は新卒時の仕事が製造業向けの支援ソフトの営業だったので、どちらかというとオリジナルのほうを先に勉強しています。
それゆえエンジニア転向後、IT側で使われるQCDの概念にふんわり違和感がありました。
ソフトウェア産業が製造業とクリティカルに違うところ
基本的に1社〜数社で完結する
私もSEとして働いていた時期にとある大型案件で
大手企業の
・IT子会社が発注するプロジェクトを請けた
・・SIerの
・・・パートナーSES企業の
・・・・パートナーSES企業に所属する
・・・・・準委任契約メンバー
といった立場で働いたことはあります。
この産業構造自体はイカレてますが、それはそれとして相当に大型の案件でもせいぜい数階層ここから増える程度かと思います。
これに対して自動車産業ではガソリン車1台あたり部品点数が数万〜十万点ほどと言われます。
登場する企業数は当然ソフト開発の比ではありません。
QCDは1つの完成品にたどり着くまでの無数の企業・工場が円滑に連携するためのベストプラクティスとして成長してきたものです。
QCDのQは後続の取引先や完成品がトラブルを起こさないよう、規格通り・均質なものを・不良品をなるべく出さずに、といったニュアンスが込められています。
同じものを複数作成することがほぼない
パッケージソフトをディスクに焼く工程は存在するかもしれませんが「同じソフトウェアでも1ライセンスごとにゼロからコードを書く」なんてやるわけありません。
一方で製造業では量産が基本です。ネジの生産でも扇風機の組み立てでも一緒ですね。
QCDのDはスケジュール的な意味合いもありますが「納品数量」も兼ねた概念です。
製造に必要なのはニンゲンとパソコンだけ
最後にQCDのCの話です。
ソフトウェアエンジニア諸兄には基本的に一人1台はPCが支給されているとおもいます。
PCの価格が年々上がっているとはいえ「1チームで2台」とか面白いことやっているところはないはず。
当然開発にかかる費用はイニシャルコストを除けばほぼ人件費だけですし、作業者は勤務時間中はたぶん1日中パソコンを触って仕様確認とか実装とかテストとか何かしらやってます。
一方で製造業では生産設備が必要です。工作機械はウン億円とか全然します。「工場に1台の工作機械」も普通のことです。
でも工作機械はパソコンと違って単一用途です。例えば穴あけ機に部品の組み立てをやってもらうことはできません。
そのため並列している様々な作業をいい感じに組み合わせて、各工作機械をなるべく稼働率高く・でもバッティングはせずに運用しないといけません。
そして工作機械は日々の保守点検やいざというときの修理が必要です。
壊れたら生産が止まります。規格品なら同業他社になんとか手伝ってもらうかもしれません。
また製造業では実体のある品を扱うので、必ず何かを仕入れます。材料費が発生します。
材料は倉庫なりに置かないといけません。邪魔だし倉庫費もかかります。さらに食品加工なら冷凍庫が必要かもしれないし、無機物でも錆びたり劣化したりしないようケアが必要です。これらが保管費になります。
工場内での移動や完成品の出荷にはもちろん運搬費もかかります。
まとめ
といったところでソフトウェア産業と製造業ではQCDまわりの前提がずいぶん異なります。
こういう出どころの言葉だと理解せずにふんわりQCDを語るのはやっぱりあぶないなと思います。
最後になりますが、これら製造業での生産の話は「サプライチェーン」という概念とも密接しています[3]。
そしてサプライチェーンの効率追求は要は「企業間・工場間を密接に連携させること」です。
ITエンジニアのことばに翻訳すると「モノリシックに密結合して効率アップ✨」です。
違う業界のベストプラクティスを丸呑みして輸入するのはあんま良くないんじゃないかなって思います。
Discussion