ソフトウェアスケジュール

未踏ユースのみなさんは、今頃作業スケジュールを書いているか、もう書き終わってるんじゃないでしょうか。

今日作業スケジュールを書いてたんですが、開発項目が15個ぐらいになりました。ドキュメント、サンプルの作成も含めて15項目です。まだ途中なので増えたり減ったりするかもしれません。

Joel on Softwareの記事にスケジュールに関する話があります。
http://www.joelonsoftware.com/articles/fog0000000245.html
本のJoel on Softwareの日本語版では上記記事の日本語訳があります。

スケジュールをつくらないといけないのは分かっていてもやはり面倒ですが、なんとかつくらないといけません。
さらに、スケジュールを作るときはできるだけ項目を細かく分けなければいけません。
上記のJoel on Softwareで個人的に一番重要だと思っているのが項目を細かくすることです。
例えば、ペイントソフトを作っていて

  • pngファイルへの対応:2日

と書くより

  • pngファイルの読み書き処理についての調査:6時間
  • pngファイル読み込み処理の実装:6時間
  • pngファイル書き込み処理の実装:6時間

と具体的に書いたほうがいいです。
大雑把に書いた場合不正確な時間になるだけでなく、(自分の経験より)実際よりも短い時間を設定してしまうことが多いです。
細かく書いてない場合、「pngファイルへの対応」で実際になにをやるかわかっていない場合が多いです。そのため、少ない時間で終わらせられると考えてしまう場合が多いのです。
以前プログラムのアルバイトをしていたときにスケジュールを書いたのですが、実際にはスケジュールに書いた時間の2倍ぐらいの時間が掛かってしまい、迷惑を掛けてしまったことがあります。
初めてスケジュールを書く人は、自分が思っている時間の2倍ぐらいの時間を書いたほうがいいでしょう。

それとバグ修正の時間をいれる必要があります。自分の作ったバグや使っているライブラリのバグ等によって、予定した時間の2倍、3倍の時間が掛かってしまうことがあります。

今回のGPUPPURの開発で提出するスケジュールは結構大まかなもののようです。各項目に1時間単位の時間は設定できないようなので、数日単位の粒度の機能にわけて作ってます。ですので、個人的にちゃんとしたスケジュールを作っておこうと思うのですが・・・面倒でやる気が起きないorz