スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ナノパーセント日をもちいた見積り


プロジェクトを見積もるとき、
ゼロパーセントではないが、かぎりなくゼロに近いプロジェクトの終了日のことを、
ナノパーセント日」と呼ぶ。

トム・デマルコ『ゆとりの法則 - 誰も書かなかったプロジェクト管理の誤解』日経BP社、2001年


 この1節を読んで、実際に調査をしてみた。次の図を見てほしい。
所要時間(発生確率)
 この図は、『ゆとりの法則』で紹介されているものを似た曲線を描くように数値化
して作成したものです。
プロジェクトの完了日を予測したもので、徐々に確率が高くなり、最終的にゼロに
なる状況を示したものです。
その確率が最初に現れる日を「ナノパーセント日」というわけです。
 まず初めに実際にナノパーセント日を経験則で実際に見積もるわけですが、
以下の条件として見積りを行いました。
・仕様変更による影響は考えない
・実装+ホワイトボックステスト(ユニットテスト)+デバッグまでを見積もる
・実装は中級のプログラマを想定する。
・適度なタスクに分解し、それぞれを日数(1日にできる作業は5時間程度)で見積もる

 この条件で算出した日数を「ナノパーセント見積り」と私は言っています。
実際にはこの日数ではプロジェクトは完了しないわけで、実際のプロジェクト完了日との
関係をいくつものプロジェクトで調べてみると不思議な現象が分かった。
それは、どのプロジェクトも
「ナノパーセント見積り」×1.7=「プロジェクトの完了日」
となるのです。(若干の誤差はあります)
「ナノパーセント見積り」を私が行ったからなのかと思い、別の人(中級レベルのプログラマ)にも
試してもらうと、やはり同じ結果で約1.7倍になり個人差がありませんでした。
残念ながら他社にお願いができなかったので、会社によって違うかもしれません。
恐らく、同じ会社であれば外的影響(仕様変更の量、プログラミング以外の業務など)が
似ているからかもしれません。

最初に紹介した図を累積表示に変えた次の図を見てほしい。
所要時間(発生確率累積)
 私が作成した図によると確率が50%になるのは2倍の位置だが、1.7倍は確率30%である。
実際はもう少しカーブの頂点が左に来るのかもしれない。
見積りの確率としては、不確実性コーンというのがあるが、またの機会にお話ししたい。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

見積手法


 Cohnは[Coc04]フィボナッチ数を使ってタスクの大まかな見積もりを作る方法を提案している。タスクには1,2,3,5,8,13,21,34,55,89…といったサイズがある。今まで正確な見積もりをしてきた実績のあるチームなら、21までのフィボナッチ数と40,60,80,100の4つの数を使って大きさを見積もる。

Johanna Rothman(でびあんぐる)『Manage It! 現場開発者のための達人式プロジェクトマネジメント』オーム社、2008年、第5章



 見積事態が正確ではなく、あくまで予想なので、このフィボナッチ数を使うのは非常に良いアイディアだと思います。
即ち7と思うのだったら5か8どちらがいいか考え8にするといった具合です。


 このフィボナッチ数を利用した面白い見積ゲームがある。
その名も「計画ポーカー
計画ポーカー

 これは、複数人で見積を行い、同時にフィボナッチ数のカードを出し合いサイズを決定するゲームです。
ここで注意するのが、平均を取ったりしないことです。
全員が不満のない数字になればよいのであって、全員が合意する必要がないことです。
計画ポーカーは見積が難しい場合に有効な手段ではないでしょうか。

テーマ : プログラミング
ジャンル : コンピュータ

プレッシャーの代償

リスターの法則
 人間は時間的なプレッシャーをいくらかけられても、早くは考えられない

トム・デマルコ(伊豆原弓)『ゆとりの法則 誰も書かなかったプロジェクト管理の誤解』日経BP社、2001年、第7章

 知的労働者にとってプレッシャーほど悪なものはない。
考える速さが変わらないとしたら、労働者は次の方法を取るだろう。

1.無駄な時間をなくす
2.クリティカルパスにない仕事を後回しにする。
3.夜遅くまで仕事をする

 この方法は全て健全にみえますか?

私はどの方法も取りたくないと思っています。

「1.無駄な時間をなくす」について
現状の作業で無駄な時間がありますか?
知的労働者であれば、遊んでいるわけがありません。
トイレや喫煙所でさえも仕事のアイディアを模索しているのではないでしょうか。

「2.クリティカルパスにない仕事を後回しにする。」
これも、知的労働者であれば、自然とやっていることです。

「3.夜遅くまで仕事をする」
最悪です。そのうち優秀な人材から履歴書を作成し始めるでしょう。

 これでも部下にプレッシャーを与えますか?
適度な緊張感は必要です。人間、直ぐにだらけてしまいます。
しかし、上司のエゴで部下にプレシャーを与えることはパワーハラスメントです。
立派な犯罪です。今すぐにやめましょう。

テーマ : プログラミング
ジャンル : コンピュータ

ハドソン湾スタート

 カナダ北東部にあるハドソン湾会社の1600~1700年代の習慣に由来している。当時のハドソン湾会社は毛皮商人に遠征のための物資を提給していた。毛皮商人たちが必要なものを忘れていないか確認できるように、会社は商人たちにハドソン湾を出て数マイル先の地点でいったん野営させていた。商人たちは、ほんの数マイル先で野営することにより、文明を離れる前に道具や消耗品の忘れ物がないか確認していただけだ。旅を小さく始めることで、遠征を耐え抜く能力を確認していたともいえる。

Johanna Rothman(でびあんぐる)『Manage It!現場開発者のための達人式プロジェクトマネジメント』オーム社、2008年、第4章

 自分にもプロジェクトチームにもまったく経験がないプロジェクトを管理する場合、プロジェクトを見積もる方法にハドソン湾スタートで検討しよう。
 プロジェクトチームが実際のプロジェクトの環境で物事を試行する技法で、試行できるのはできるかぎり小さなものにする。("Hello World"プログラムでも十分かも)4時間以内で完了できることから始め、何かを作ったら、必要なタスクをどうやって見積もるか、前よりも理解しているだろう。理解が少ししか増えていなかったら、短いイテレーションを開始してから決める。
 有利な点として次のものがある。
・自分たちが何かを達成できるという確信をチームが得られる
・いくつかのタスクをどうやって整理すればいいかについても理解が深まる

 プロジェクトマネージャーであれば誰もが、やっている技法ですが、私が気に入ったのはネーミングです。技法に名前を付け、組織で共通言語にまで育つと、組織のスキルも上がり、コミュニケーションも良くなります。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

夢追

Author:夢追
芸術プログラミングの世界へようこそ

検索フォーム
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
フリースペース
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。