« 2009年12月 | メイン | 2011年2月 »

2010年7月27日

Open@ReeL の契約の考え方(続き)

先日ReeL の契約の考え方をご紹介しました。
関連するもう一つのトピックとしてバッファ管理の話があります。

ReeL では、ご紹介したように、「固定スコープの請負(基本) + 変動スコープ(上乗せ分)」 という考え方を前提としています。
この変動スコープの部分の実態は、現場によりまちまちでしょう。
目標コスト契約であったり、準委任との組み合わせであるかもしれません。
いずれにせよ、変動スコープの部分にも金額的に上限を見て、その枠内で実際に何をやるかを顧客と協議することになります。

すると必要になるのが、変動分予算(=バッファ)の管理です。
ある機能を追加で加えたならば、いくら予算を食いつぶすのか? といった話です。

○ アジャイル開発での対応

一般的には、実績ベースです。
人月幾らで契約しておいて、実際にかかった工数を請求します。
これは分かりやすさという意味でメリットは大きいのですが、
顧客側が全てのリスクを背負う形態なので、それを納得してもらう必要があります。
顧客側がリスクをとる前提として、開発側は開発の実態の全てを開示する透明性が必要となるでしょう。

○ ReeL での対応

開発の透明性を高め、顧客に全てのリスクを背負ってもらう方式は、日本のSIの現場ではなじみません。
SIer がリスクを吸収してきた一括請負の考え方とはあまりにも異なるからです。
日本のSIの現場では、顧客はそこまでのリスクを背負うことを嫌がるでしょうし、
SIer は開発のコスト構造の全てを開示することを嫌がるでしょう。

また、実績ベースでソフトウェアの価格を決定するという考え方そのものにも違和感はあります。
あるソフトウェアの値段は、その機能の大きさで決まるべきで、安く作るか、高く作るかは
開発側の努力次第であるべきという考え方もあります。

「COMMONDATION-ReeL」では、このような考え方を踏まえ、
バッファの取り崩しにファンクションポイント(FP)を採用しようとしています。
仕様変更や仕様追加に関するFPの変動分から、バッファの取り崩し金額を算出する方法です。
FP と実態との乖離については、開発側で吸収することになります。
実際には、差分FPの算出などでもう少しややこしい話が入るのですが、基本的な考え方としてはこのような話になっています。

ファンクションポイントを使うもう一つのメリットは、客観性です。
ある仕様変更がソフトウェアにもたらすインパクトを、検証可能な形で提示することができます。
バッファの取り崩し量で、顧客側と不毛なやりとりを避けることができます。

Open@ReeL では、さすがにファンクションポイントを自在に駆使することを前提にはできない
と思っていますので、この辺りは考え方のスキームを提示するに留めようと思っています。

整理しますと、
変動スコープのバッファについては、
・取り崩しの単位を顧客と事前に合意しておくことが必須となる。
・取り崩しの単位は、機能単位ベースの見積額の方が導入しやすい
・取り崩しの単位は、客観的に測定可能であった方が好ましい
となります。

実際には、個別のコンテキストに左右されることが大きいので、
「顧客と合意できていれば何でも良い」という話にはなるでしょう。

※ COMMONDATION は、株式会社日立システムアンドサービスの日本における商品名称(商標又は登録商標)です。

アジャイルグループ グループリーダー 設楽 秀輔

2010年7月23日

アジャイルALM

Agile Conference Tokyo 2010。大盛況のうちに終了しました。
3人掛けの席がほぼ3人で埋まり、急遽テーブルを追加する等、平日の無料のカンファレンス
にしては、驚異的な出席率でした。
世の中のアジャイルに対する関心の高さが、如実に表れていたと思います。
ご来場いただきました皆さま、本当にありがとうございました。

各セッション、それぞれ様々な方向に突き抜けており、個人的にも飽きることのない一日でした。
特に、ThoughtWorks 社 Jez Humble 様の基調講演や、ツールベンダー様のセッションでは、
アジャイルの最先端の情報が提供されました。
「ここまでやるんだ!!」ですとか「ここまでできるのか!!」といった驚きがあったと思います。

最近、アジャイルはむんむんと存在感を増しています。
その一つのキーワードとして、アジャイル ALM (Application Lifecycle Management)があります。
プロジェクトを進める開発プロセスとしてだけのアジャイルではなく、ビジネスとしてソフトウェアの
製造・販売・サポート・バージョンアップ等、計画から投資回収までの一連のプロセスの
隅々にまで、アジャイルの思想を行き渡らせようとするものです。
もともと、アジャイルはビジネスニーズから発展してきたものですし、
本当にアジャイル開発を進めようと思ったら、企業のビジネスそのものがアジャイルになって
ゆかないと、上手くいきません。
その意味では、当然の流れともいえます。

Agile Conference でも、そのような最先端の流れを感じ取ることができました。
IBM 様の講演では、思いっきり CALM (Collabolative ALM)という概念のご紹介がありました。
Microsoft 様の講演では、直接的な表現こそありませんでしたが、TFS の開発そのものが
アジャイルALM でなされており、同様のコンセプトであると受け止めています。

そして、Jez Humble 様の講演にあった Continuous Delivery 等は、ThoughtWorks 社の ALM の考えに基づいたものとなっています。
ThoughtWorks 社では、Adaptive ALM というコンセプトを打ち出しています。
詳細は、上記リンクからご確認下さい。
それは、具体的に ThoughtWorks Studios なる製品群で支えられています。
Jez Humble 様は、ThoughtWorks Studios の一つ Go (旧 Cruise)の製品開発責任者でもあります。
弊社でも代理販売をしておりますので、これらのコンセプトに興味をお持ちの方は、お声掛けいただければと思います。

まだまだ、日本のアジャイルは ALM とはほど遠い状況ですが、
昨今のムーブメントを鑑みるに、近い将来これらの考え方が普通になる日が来るような気がしています。

アジャイルグループ グループリーダー 設楽 秀輔

2010年7月20日

Open@ReeL の契約の考え方

Open@ReeL の公表前ではありますが、ReeL における契約についての考え方を
ご紹介したいと思います。

日本のシステムの受託開発においては、SIの一括請負契約が一般的です。
一括請負契約では、本来ならば契約時点でスコープ(開発内容)は固定されて
いるはずです。しかしながら、開発の後工程になってからの仕様変更=スコープ
調整が多発するというのが現実です。

このような仕様変更を受け入れるといった場合には、追加契約をしない限り、
既存の契約金額の枠内(=ベンダー側負担)で受け入れることとなります。
その為、ベンダー側ではこれを見込んで多額のバッファを積んでおくのが実状です。
結果的に、顧客からみたシステムの構築コストは高いものとなってしまいます。

○ アジャイル開発での対応

このような問題を解決する為には、アジャイル開発では固定スコープの契約形態
(一括請負)を否定し、可変スコープの契約形態(準委任等)を推奨します。

なぜ固定スコープを否定するのでしょう?
それは、顧客とベンダーの関係において、利益の相反構造を本質的に内包しているからです。
固定スコープでは一定金額の枠の中で作業をするので、作業量の増加を意味する
スコープ変動は、ベンダー側の利益を食いつぶすことになります。
つまり、仕様変更による顧客のメリットはベンダーにとっての不利益となるという、
綱引きが発生する構造になっています。
このような Win-Lose の相反構造は、顧客との協調を最重視するアジャイル開発
にとっては、相容れないものとなっています。

アジャイル開発では、Win-Win の関係を目指します。
仕様変更や機能追加によって、顧客もメリットを得て、ベンダー側も利益を得る
構造に変更する必要があります。
一般的には、準委任契約が向いていると言われていますが、金額に上限を付け
ないと、ベンダー側に機能追加を抑制するインセンティブが働かず、システム
が肥大化する欠点も指摘されています。
顧客との協調関係においては、上限付きの可変スコープな契約が、一定金額内で
最適なストーリーのポートフォリオを一体となって模索するという意味において、
もっとも望ましいと言えるでしょう。

○ Open@ReeL での対応

しかし、これまでの商慣習を鑑みるに、上限付き可変スコープの契約に、全ての
契約を移行するのは現実的ではありません。
その為、Open@ReeL では、固定スコープの一括請負契約をベースとして考えます。
そのベースの上に、Win-Win の協調関係のオプションを一部取り込んでいく二段階の
アプローチを採用します。

協調関係を保てるオプションには、様々な形態があるでしょう。
Open@ReeL のベースになっている「COMMONDATION-ReeL」では、目標コスト契約
を想定しています。
詳細は、以下の記事を参照して下さい。

「Agile Conference Tokyo 2010特別連載
第2回 COMMONDATION-ReeLの契約と要件管理」


それ以外にも、一部準委任契約を組み合わせる方式ですとか、請負金額に可変の
バッファ部分を設けて、余った分はインセンティブとしてシェアするような
方式も考えられます。

肝心なのは、顧客と契約時に Win-Win な協調関係で話を進める余地を一部に
設けることです。
たとえ一部であっても、そのようなスコープ調整の余地を設けようとすることで
顧客との話し合いは促進し、協調関係を改善させることができます。
また、一部に限定することで、顧客の関与度合を限定し負担を軽減させることにも
つながります。

このように、日本の実情に合わせて、アジャイル開発手法の適用方法を試行錯誤
してゆくことが大切であると考えています。

※ COMMONDATION は、株式会社日立システムアンドサービスの日本における商品名称(商標又は登録商標)です

アジャイルグループ グループリーダー 設楽 秀輔

2010年7月16日

アジャイルカンファレンス東京2010 と ReeL

きたる 7/21(水)に、アジャイルカンファレンス東京2010が開催されます。
手前味噌で恐縮ですが、最先端のトピックから、開発事例まで非常に興味深いセッションが並んでおります。

本日は、そのなかから、日立システムアンドサービスの英様による
「大規模システム向け日本版アジリティ開発手法「COMMONDATION-ReeL」」
のテーマについて簡単にご紹介させていただきます。

実は、私も「COMMONDATION-ReeL」の策定には協力させていただいております。

そもそもの背景として、これまでのアジャイル開発プロセスの導入で試行錯誤を重ねる上で、十分にアジャイル開発プロセスが普及しないという現実がありました。
原因としては、アジャイル開発プロセスには、日本のシステム開発現場では、あまり現実的でない前提が存在していることが挙げられます。
典型的な問題は、スコープ調整によるタイムボックス化です。
成果物を事前に約束する受託開発の SI案件が中心の日本の現場においては、固定スコープを否定する開発プロセスでは、問題解決になりません。
他にも、顧客の積極的な開発への関与や、ストーリー単位のインクリメンタル開発等も、PMOを持たない日本のお客様や、オブジェクト指向になじみのない開発現場では、なかなか難しいものがあります。

また、そもそも「アジャイル」というキーワードそのものに対して、否定的なイメージをもたれる方も多くいます。
自由闊達なボトムアップ型で発展してきた経緯の反動によるものと推察します。

「COMMONDATION-ReeL」では、このような日本の現状を正面から受け止め、肯定し、その上で使えるアジャイル開発プロセスを策定することを目指しました。
「アジャイル開発プロセス」とは何か? といった不毛な議論を避ける為にも「アジリティ開発手法」と呼んでいます。

プロセスの外観は、要件・作成・検証の3フェーズに分れており、ウォーターフォール型のプロセスに酷似しております。
その中に、二段階の反復や、不確定な要件のバッファ管理、顧客代理チームのようなプラクティスをちりばめています。
具体的にどのような内容のプロセスなのかは、アジャイルカンファレンス当日の発表にご期待下さい。

また、「COMMONDATION-ReeL」は、日立システムアンドサービス様の所有の開発プロセスとなります。
ですが、これまでの検討過程を踏まえて、「COMMONDATION-ReeL」の骨組みと汎用的なプラクティスを抽出したものを、「Open@ReeL」として弊社サイトにて公開予定です。
詳細が確定し次第、ご報告したいと思います。

※ COMMONDATION は、株式会社日立システムアンドサービスの日本における商品名称(商標又は登録商標)です。

アジャイルグループ グループリーダー 設楽 秀輔