自分流工数の求め方

  1. 機能要件を決める。この時は必要最低限の機能に絞る。
  2. 正常系と高頻度の異常系の実装にかかる時間を決める。異常系でも運用回避できるものは除外。このとき発揮していい実装力は30%〜50%程度。全力はダメ。素朴なアルゴリズムで、最適化しないのを前提に。
  3. 2.で求めた時間から日数を求める。但し作業時間は最大でも8時間/日。残業、休出は想定外事象の対処に充てるため、考慮に入れてはいけない
  4. 3.の日数を2〜3倍し、これを納期とする。

ここまでを、必ず前倒しで完了する。遅くとも納期までの半分の日数で。そして期日まで次の工程をぐるぐる回す

  1. デプロイし他と結合、フィードバックを得る。
  2. フィードバックを取り入れ、リファクタリングし、対応できる異常系を拡大し、保守性を高める。
  3. バージョン管理システムを使って、正常に動作する状態でコミット。

要は、機能実装を工期の前半に集中させ、必ず納期を守る&後半はどこで開発が止まってもリリースできるようにしておく、ということ。

今のところこれでうまくいってます。もっとも、幸いにも今のプロジェクトマネージャが結構スケジュールに余裕をとってくれる&開発スコープを絞ってくれる人で、常に余裕をもったスケジュールになっている事も大きいと思いますが。残業も多い月で40時間程度、休日出勤は4半期に1回あるかどうか。