無料ブログはココログ

« [#TiDD] AsIsとToBeの視点によるチケット駆動開発の事例の考察 - 坂本記念WorkShop - | トップページ | [#Agile] アジャイル開発の課題と対策 その1 »

[#TiDD] チケット駆動開発はプロセス改善の隙間を埋める - SPI Japanへの思い -

チケット駆動開発はプロセス改善、正確にはプロジェクト改善だと書いていますが、組織レベルのプロセス改善との関係をまとめておきます。

プロセス改善の枠組み

プロセスモデリングの目的は以下の4つといわれています。

  1. プロセスに関するコミュニケーション向上
  2. プロセスの再使用の促進
  3. プロセスの進化の支援
  4. プロセスの管理の促進

* W. S. Humphrey, M. I. Kellner, Software Process Modeling: Principles ofEntity, Proc. of 11th ICSE 1989. (PDF)

プロセス改善の枠組みでは、標準のプロセスモデルを用いて、1、2、4を直接支援して。3の標準プロセスの作成・変更はSEPGなどの専門チームが実施します。しかし、このやり方だけをしていると、与えられたものに従順になり、現場が考えて工夫することがなくなると思います。

先日も紹介した坂本さんの論文にはこうあります。

改善というと小集団活動のQCサークルと同じで、現場の誰でもが取掛かれると思って いる人が多い。確かにソフトウェアにおいても開発現場だけで解決できる小さな問題はた くさんあるが、しかし組織全体の成熟度を上げていく改善は実に奥が深く、専門性の高い 知識、技術を必要とする。

この文章は当時の様子を良く表しています。多くの企業は管理的目的で、規模や障害数など、一定の開発標準作りが既にされていました。その中で、QCサークルなどを通じて、現場が色々と工夫をしていました。

しかし、それは基本的な管理や工夫の延長でした。組織的に情報共有は行われていても、ソフトウェア工学の成果の利用や、組織的にプロセス改善を進める視点が抜けていました。

そこで、CMMなどの(組織)プロセスの視点での改善が注目されました。ソフトウェア工学の成果を標準プロセスに組み入れて、組織的な改善を進められたのです。

組織プロセスだけに注目しすぎた

組織プロセスを中心とした改善は大きな成果をあげました。しかし、「悪くはないけど、昔の方がよかった」という人もいました。当時はよくわからなかったのですが、坂本さんの論文の引用部分を見ていると、「開発現場だけで解決できる小さな問題」が置き去りになったのではないかと思っています。

CMMは組織プロセス中心ですが、チームプロセスを扱うTSPと個人プロセスのPSPというものがあります。CMMの段階モデルの提唱者であるハンフリーさんの「TSP ガイドブック:リーダー編」では紹介文(PDF)に書いたように「開発者の能力を最大限に引き出す」と、サーバントリーダシップやプロジェクトファシリテーションと同じ事が書かれています。

しかし、日本では多重請け負い構造の弊害か、組織プロセスだけが注目され、チームや個人のプロセスはまだまだこれからのように思います。前述のように、CMMブーム当時は現場での改善が行われていましたが、レベル達成が組織のゴールになると、チームや個人はその大きな目標の達成で精一杯になってしまったのでしょう。

急速な社会状況の変化

現場での工夫が少なくなっても、安定してソフトウェアが開発できているなら問題ありません。しかし、[#TiDD] 従来法の限界とアジャイルの利点、そしてチケット駆動開発に書いたように、ビジネス環境、開発環境、実装方法など、社会の変化によって、ソフトウェア開発は多くのリスクを抱えるようになりました。

1レベルに3−5年かかるともいわれた段階モデルはもちろんのこと、自由な成長が認められた連続モデルであっても、変化への対応は困難です。組織的に試行・評価した後でないと標準プロセスは変更できないからです。

チケット駆動開発はプロセス改善の隙間を埋める

チケット駆動開発は、抽象度の低いプロセスモデリングです。開発の計画、備忘録、履歴、ノウハウが記録されるほか、プロダクトや他の作業への関連も示す事ができます。最低限の標準化は必要ですがが、このモデルは基本的にプロジェクトの管理下にあるものです。

チケット駆動開発は、プロジェクトの個々の問題に対して様々な工夫が可能です。現場力を向上させ、挑戦の道具になるものです。プロセス改善の枠組みで抜け落ちた工夫の助けになるでしょう。

プロセス改善の枠組みでもテーラリングが許されています。開発標準のうち必須でないものは、変更が可能です。テーラリングのガイドを整備されている所もあるでしょう。ぜひ、そこにチケット駆動開発を取り入れて欲しいと思っています。

チケット駆動開発を導入すれば、もっと積極的にプロジェクト固有の問題に対応できるようになるでしょう。そして、 現場のモチベーションがもっと向上し、より効果的なソフトウェア開発が行われるようになると思っています。


« [#TiDD] AsIsとToBeの視点によるチケット駆動開発の事例の考察 - 坂本記念WorkShop - | トップページ | [#Agile] アジャイル開発の課題と対策 その1 »

チケット駆動開発」カテゴリの記事

コメント

WACATEの同人誌への寄稿で少し書いたような気がします。

ソフトウェアの「品質」をまず分解して考える必要があります。

ひとつは品質特性として示される「品質」です。これは狩野モデルで示される特性があるものですが、ソフトウェアの世界ではまだ完全性すらも当たり前品質になっていないようですから、全てが魅力品質だと捉えます。魅力品質はプロセスとして作りこむのではなく、企画、もしくは要求仕様として作りこむ物です。

もうひとつの品質は工程(プロセス)のぶれ(ばらつき)を表す「品質」です。よくいうバグの多くがこのプロセス(実行)のばらつきに起因しています。本来は、要求仕様に基づいてそれを達成するためのプロセスが構築されているはずです。ところがプロセス実行中のいろいろな問題の発生により、プロセスのアウトプットはばらつきます。製造の品質管理とはこういったアウトプットのばらつきを基準値に収めるための活動を言い、ソフトウェアに関してももちろんこの類のばらつきは生じます。また、製造の品質管理をする必要もあります。

本来、QCサークルに代表される自律組織型の品質管理は後者に対するものです。ですから、プロセスを構成するプラクティスをばらつきの対応のために改善することはあっても、プロセス自体を変更することは行いません。どのようなライトなプロセスでも、ヘビーなプロセスでも、ばらつきを制御して、正しい(基準値の範囲の)アウトプットを導き出すことはできるのです。自律活動とはそのための条件に対応したプロセスの運用方法だと考えていただいた方がよいと思います。もちろん、制御を厳密に行うプロセスの方がライトウェイトなプロセスよりもばらつきの制御は容易にできます。

さて、ハンフリーの唱えたプロセス改善ですが、当時主流であったプロセス志向とクロスビーの組織モデルを組み合わせたもので、私は実際の改善過程を研究した成果ではないのではないか?と懐疑的に見ています。

なぜなら、自立的なチームであれば、あのステップによらなくても、例えばレベル2のプロセスに対してレベル4のプロセスを追加したようなケースでもうまく順応して、プロセスのばらつき制御が可能になるからです。

基本的にはプロセスは、要求仕様(ソフトウェア、システムの仕様のほかにスケジュールや人材のスキルなどのプロジェクトの持つスペックなど)に応じて組み上げられるものです。これはボトムアップというよりも、トップダウンで決まります。
現場の改善でプロセスが変化するということは普通にはありません。そんなことをしたら、組織はとりとめなくなって、収拾がつかなくなってしまいます。

コメントありがとうございます。
はい。CMMの段階モデルでは、うまく改善できないので、連続モデルが追加されましたね。
「プロセス」は「組織プロセス」のつもりで書いています。プロジェクトは要求仕様を入力としているもので、組織と比べてボトムであると考えています。

この記事へのコメントは終了しました。

« [#TiDD] AsIsとToBeの視点によるチケット駆動開発の事例の考察 - 坂本記念WorkShop - | トップページ | [#Agile] アジャイル開発の課題と対策 その1 »