メイン

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 は、株式会社日立システムアンドサービスの日本における商品名称(商標又は登録商標)です。

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

2009年12月16日

アジャイルカンファレンス東京2009

先週のアジャイルカンファレンス東京2009は、たくさんの来場者があり、かなり盛り上がりました。
また、ThoughtWorksと事例のセッションでは、具体的な話があり、地に足がついている開発経験だったので、よかったです。さらに、IBMさん、MSさんのツールの実演は、アジャイル開発の実際を見ることができ、一昔前との違いを見ることができました。

http://gihyo.jp/news/report/2009/12/1601

カンファレスの後の金曜日に、ThoughtWorksサンフランシスコ支社に行って来ました。
北京のオフィスとは少しの違いだけで、いかにもアジャイルな会社という雰囲気でした。
また、お客さんの現場に案内していただき、実際のアジャイル開発の様子を見学することができ
米国でのアジャイル開発を実感できました。

これからは、日本でいかにアジャイル開発を成功させるか、というのが重要です。
日本では、契約や品質の問題があり、米国と同じようにはできません。
カンファレンスで発表しましたが、アジャイル開発QIMP研究会というを発足しましたので
この研究会のアウトプットを期待していただければと思います。

長瀬

2009年11月11日

アジャイル開発の失敗について

12月8日にアジャイルコンファレンスを行ないます。
テーマは大規模なアジャイル開発です。エンタープライズという言葉もあります。
今回は、大手企業がどのようにアジャイル開発を考えるかということも、焦点です。

今日、日経コンピュータのアジャイル事例の記事を読みました。
大手企業が成功しているのですね。うちが関係しているプロジェクトが2つ(3つかも)
ありました。

アジャイルの事例が気になったので、アジャイル開発 失敗でググってみました。

http://japan.internet.com/column/developer/20090203/26.html

http://www.infoq.com/jp/news/2008/07/agile_failures

http://www.thinkit.co.jp/free/article/0608/3/1/

http://www.asp-edita.jp/doda/one/doda4075_365.html

http://builder.japan.zdnet.com/news/story/0,3800079086,20379593,00.htm

かなり面白い記事が出て来ました。

そう、アジャイル開発は難しいから、失敗することも多いのです。

これから、アジャイル開発が流行ってくると、失敗事例もたくさん表面に出てくると思います。

アジャイル開発を導入する前に、開発対象のシステムがアジャイルに向いているか、顧客との関係、プロジェクトの雰囲気、メンバーのスキル、など、成功するために見極めるポイントがいくつもあるのでそういうことを考えて、アジャイルにするかどうかを決めるべきです。

2000年にはじめてXPを日本に紹介し、Agileの日本での呼び方をマーチン・ファウラーの発音に合わせて、アジャイルに決めて、10人経ってようやく、再注目されだしました。

JavaやUMLも普及にはずいぶんと時間がかかりましたが、アジャイルもようやくです。

長瀬

2009年4月30日

The PomodoroTechnique

ケント・ベックがメーリングリストで紹介していた
アジャイル開発に関するPDFブックです。

http://www.pomodorotechnique.com/

長瀬

2009年3月31日

ThoughtWorksイベント

先週、ThoughtWorksに行って来ました。
ThoughtWorksはマーチンファウラーが所属する会社で、ワールドワイドで
1200人エンジニアを有する世界No.1のアジャイル開発の会社です。

彼らの環境、ツール、事例を見せてもらい、本格的なアジャイル開発に
驚きました。彼らのアジャイル開発のイテレーションは1週間で、かなり
短いサイクルで開発しています。また、アジャイル開発のサイズについて
聞いたところ、400人ぐらいまでは大丈夫とのことです。実際に、400人の
アジャイルプロジェクトをコンサルしていると言っていました。
日本では、本格的な大規模アジャイルプロジェクトの経験を持っている人が
いないので、ビジネスパートナーであるこちらが窓口になって、コンサルビジネスを
今後は行なっていきます。

これに先だって、秋ぐらいに、ThoughtWorksのイベントを開催する予定です。
本格的なアジャイルのコンファレンスに先々はしていきたいので、期待していて
ください。

長瀬

2007年6月 8日

達人プログラマー

昨日、達人プログラマーのDave Thomasと話をした。
急なお願いにも関わらず、1時間ほど話ができた。
なんとラッキー。

Pragmatic社の書籍は4冊、翻訳していて、直近に翻訳したタイトルは
Railsレシピである。

DaveとRailsの話をしたら、米国では、RailsによってRubyが知られるようになったが
現在は、Railsというよりも、Rubyのすばらしさを米国のエンジニアが知って
Ruby自身の人気がかなり上がっている、と言っていた。
それと、まつもとさんのことを、すばらしいとベタホメである。
私は、プログラミング言語の専門家ではないのだが、日本発の技術が世界で認められるのは
すごいことだと思う。

こっそり、来日の交渉もしてみたら、いい感じだったので、Ruby会議で話を聞けなかった人も
そのうちチャンスがあるかもしれない。

長瀬

Daveとの2ショット。
IMG_0199_small.jpg

2007年3月27日

[Rails] Railsの提案

RailsでWeb開発をするケースも出てきましたが、Railsを提案するときのキーワードを何でしょうか?

海外のケーススタディを見ていたら、そこに、品質という項目で、以下の内容が書かれていました。

・シンプル(Simplicity)
・再利用性(Reusablity)
・拡張性(Extensibility)
・テスト可易性(Testability)
・生産性(Productivity)
・修正可能性(Modifiability)

提案書に、Railsを使ったときのメリットとして、いれるとよいと思います。

そろそろ、Rails提案のテンプレートを用意しておかないと。

長瀬

2007年3月 4日

未知への適応法

暫くご無沙汰しておりました、岡部です。まだ1年は経たないと思いますが、年月が過ぎるのは早いですね。

今回は、最近ふと思ったことを少しだけ、たまには「モデリング」カテゴリでも書いてみたいと思います。 前回の私の記事(科学と魔法)にも通じるところがあります。

私にはもうすぐ幼稚園に入る子供が居るのですが、子供の成長には目を見張るものがあります。 大人になってもこのくらい成長できたら、すごいだろうなとは、どの親も思うことでしょうか。

子供と接し、その成長を見守りながら、刺激を与えたり、たまには誘導したりしていると、 子供がどのように物事を理解し、本人にとっての世界観を構築していくか、その過程が見えてきます。

子供にとっては、世界は初めてみるものです。 (稀に特殊な才能を当初からもっている子供も居るかもしれませんが。) 初めてみる世界の構造や成り立ち・ルール・仕組み・因果・自分の行為の影響、 そういったことを一般的には試行錯誤しながら会得していくように見えます。

実際、ある程度成長するまでは、子供は試行錯誤し、 学習はその試行錯誤結果に影響を受けているように見えます。 例えば、それが実際には正しくなくても、ある一度の試行の結果でさえ次回に活かします。 勿論、試行回数が増えれば増えるほど、その次に正しい行動を取れる精度も向上します。

余談ですが、ですから親は、この時期にはある程度結果を導くなどして、 子供の成長する方向を誘導することが出来ます。悪用はいけませんよ! でも、それは通常「しつけ」に利用されます。 (「しつけ」とは、現社会のルールを教え、適用させ、生き抜く術を与える務めなり。)

しかし、ある程度試行錯誤によって成長すると、今度は「組み立て」を始めます。 試行錯誤で得られる知識は断片的なので、これを繋ぎ合わせて、体系付け始めるわけです。 そうすると「概念」が必要になってきます。 つまり、単なる事実の積み重ねではなく、それらを抽象化することが必要になります。

「数」、「時間」、そのもの自体とは別途に付与される「役割」とその名前など。 やたら数え始めたり、昼と夜の区別、「もうすぐ」「あとで」、時計、「ごっこ遊び」などが代表的でしょうか。

「科学と魔法」で言えば、数打ちゃ当たる魔法を連打したのち、その結果を科学的に分析し始めるのです。 科学とは「記号」と「帰納」と「演繹」であると、私は書きました。そしてそれは、「モデリング」です。

最初に結論を述べずにグダグダ言うのは私の悪い癖ですが、 最初に述べた「最近ふと思った」と述べたのは、そんな子供の「考え方」の変化と動きを見ていて、 『子供は常にリモデリングを繰り返しながら生きている』こと気付いたということです。

なんということでしょう!(ビフォーアフター風に!)
子供の驚異的な成長は、未知に適応する為の究極のアジャイルモデリングに支えられているのではないでしょか。

今回は、ここで終わりです。何か示唆が得られれば幸いです。