作業を確率で見積もる

システム開発で各メンバーが作業を見積もるのはなかなか困難だ。簡単だと思っていた作業が以外に困難だったり、予期せぬ事(マウスが利かなくなったり)が起こって無駄に時間をとられて予定の期間で終わらなかったりする。そうかと思えば困難だと思っていた作業が意外とあっさり終わったりなんかしてどう報告しようかと思ったりしたりもする。
その様な作業に対してリーダーとメンバーは期限を決めて作業を割り振るのだがその時に「何日までにできます」「何日までにお願いね」とするより「何日までに80%の確率でできます」「80%の確率でできるのは何日後?」とする方が良いのではないだろうか。
<タスク発生時>リーダーは「わかりました」と言われるより、「80%の確率でできます」と回答された方が管理しやすいし、無用なリスクを回避できる。メンバーは確率で回答する事により、リーダーが納期を短くしても確率を下げる事で交渉することが可能となる。
<タスク完了時>作業が間に合わなくてもリーダーと確率で合意がとれている為、問題を素直に報告できるし、リーダーは間に合っていないのに「終わりました」などと言う虚偽の報告を受けずに済む。たとえメンバーがぎりぎりで間に合わせても全く質が伴っていなくては意味がないのでそういったリスクも回避できる。
最大のメリットはチームから無用な時間を減らすことができる。納期を確率で回答できない場合、メンバーは作業に対して保険の時間を追加する。これは作業中に問題が発生した場合のリスク回避の為である。リスクを回避するのは悪いことではないがこれを各メンバーが作業単位で発生させるとかなりの時間をリスクの為にとられる。
たとえばある作業を7と見積もったとき保険の時間を追加して10かかるとメンバーはリーダーに報告する。実際作業は7で終了した場合、メンバーはその時点で終わりましたとは言い辛い。7で「終わりました」と言うと今度は作業の際に期限を短くされるかもしれないからだ。これによりメンバーは10までの時間全てを使ってしまう。これぞ正に「パーキンソンの法則」だ。しかも7ではなく5で終わってしまった場合、残りの5を無駄に使ってしまうこともありうる。その様な時間が積み重なればかなりの量になるだろう。
納期を確率で回答できる場合には、「パーキンソンの法則」を回避できる可能性は上がる。確率で回答している為、無用な時間を含める必要が無くなるし作業が前倒しで終わる確率もあるので終わったと言いやすい。
その為には前提としてリーダーは納期がすぎた作業に対して、むやみに怒ったり罰をあたえたりしてはいけないしメンバーはチームのために正直に作業の納期と確率を見積もり、作業が前倒しで終わった場合には自ら次の作業に移らなくてはならない。
これを繰り返す事によって、リーダー及びメンバーが作業の見積もりの精度が上がり無用な時間とリスクを避けることが可能になるのではないだろうか。
確率で回答しただけで、すぐに効果がでるとは思えないが試してみてはどうだろう。ちなみに私はちょっとずつ実践中だが現実の壁はなかなか高いorz。

JavaScriptによるマウスホイールのイベント処理

最近Ajaxが普及してきたので、何かとJavaScriptを利用することが増えてます。
そんな中でマウスホイールを使っていろいろできないかと調べたのですが、
結構情報が少なくて、関数として纏まってるところがなかったので作ってみました。
wheel_roll.js
wheel_roll.js
対象ブラウザ:IE6系 Firefox 1.5系
※windowsでのみ確認
使い方
new WheelRoll(idもしくはelement, マウスホイール回転時に呼ばれる関数名, event);
例)

new WheelRoll(”abc”, “hogehoge”);

function hogehoge(rollCount) { ・・・}
マウスホイール回転時に関数hogehogeが呼ばれ引数に回転数が取得できます。
サンプルサイト:JavaScript マウスホイールでのイベント処理
http://f56.aaa.livedoor.jp/~tdnr/lab/wheel/
JavaScriptで初めてクラス作ってみたけど
これでいいのだろうか・・・

stereologのarchives表示対応

archivesを展開してみると年の表示がおかしかったのでちょっと直してみました。
http://f56.aaa.livedoor.jp/~tdnr/ppblog/log/file/func.php.lzh
0.67bのinc/func.phpに対して修正しました。必要な方はどうぞ。
調べたらSynaさんところで修正の情報がありました。先に調べればよかったorz