正しい見積り
- 4. 機能仕様どこまで細かく書くか
• 機能仕様書にも具体的・詳細なデータは必要。
→ 要求を満たしているかテスト可能にするため。
• アーキテクチャを end to end で貫くシナリオが必要。
アプリケーションの中核を成すフローが必要。
→ コードへのトレーサビリティを確保する。
• 関心事を絞り、詳細(Why/How)に立ち入りすぎないのは重要。
だがテクニカルノートやマーケティング情報なども記載する。
• 要求、仕様変更で変化しやすい処理と
変化しにくい処理を整理するのが基本設計・詳細設計
=開発の初期段階で決めつけすぎない。それ以外はなんでも書いていい。
※といっても私自身、完璧にうまくいった経験はない……。
時間を書けた割には読み返されない、
重要な情報がコードにしか残っていないドキュメントばかり……。
- 8. タスクを詳細にする
あらゆる作業を洗い出す
Just In Timeで作業する
• タスクの粒度を細かくする。
1/3/5人日ぐらい?もっと細かく4/8/16人時間?
タスクを具体的にして始めやすくする。
プロジェクトのゴールを抽象的に捉えて継続する。
• スケジュールに統合のための時間、デバッグの時間、
リファクタリング、ドキュメント整備時間を入れる。
統合までの期間が空くとデバッグに必要な時間は増える。
意思決定の背景や、有益なノウハウは期間をあけずに蓄積する。
• 休暇や祝日、問い合わせ、割り込み作業の見積もり依頼など、
その他のバッファを入れる。
複数のタスクを抱えていると、コンテキストスイッチに時間がか
かる。
- 10. 真摯に対応する
• 深夜残業
• 休日出勤
• 247++?
時間をかければ、人がたくさんいれば、
資金がたくさんあれば、才能があれば、
経験を積んでいれば、……、どうにでもなる。
どれも限りがあるのが人生。
やり遂げられなきゃ真摯じゃない?
- 14. • とりあえずそのまま頑張る 本当に大丈夫?
• 人を追加する 人の追加は生産性を下げることがある。
• 納期を延長する それでも足りず、さらにずるずる行くこともある。
• 技術的負債の融資を受けることで、できることもある。
負債が大きくなると多くの利息を払い続けることになる。
動作する、きれいなコードは動作すること優先。
だがきれいなコード・アーキテクチャをおろそかにしない。
自分のため、顧客のために技術的負債を減らす。新しいツールに投資する。
• 機能をあきらめる。優先度を変える
パーレートの法則:要件の80%は必要条件でもなければ必須のものでもない。
やれることをやらない。YAGNI
価値が大きく 早くできるものから完了させる。
アイゼンハワーマトリクス(重要だが緊急ではないもの)
• 使われない機能、読む価値のないドキュメント、動いて当然のテストに時間をか
けない
→不良在庫になる
対策:たぶん機能削減が一番有効
- 20. お金は 消費70%:浪費5%:投資25%
時間はどう配分すべき?
• Google 20%ルールは目標がないときの遺物
https://wired.jp/2013/08/20/googles-20-percent-time-is-as-good-as-dead-because-it-doesnt-need-it-
anymore/
株主が採算度外視の投資を見逃すわけがない。
業務時間に20%も自由に使っていいというのは幻想?
したたかに、自分のために使う?
• プライベートな時間はどう使う?
• 消費、投資が浪費に終わっていないか。
- 21. ちなみに5% 25%って何時間?
10 0 % 8 7 % 2 0 % 13 % 10 % 5 %
1日 7 .5 0 0 6 .5 0 0 1.5 0 0 1.0 0 0 0 .7 5 0 0 .3 7 5 ←2 2 .5 分
1週間(5 営業日) 3 7 .5 0 0 3 2 .5 0 0 7 .5 0 0 5 .0 0 0 3 .7 5 0 1.8 7 5 ←1時間5 2 .5 分
1ヶ月(2 0 営業日) 15 0 .0 0 0 13 0 .0 0 0 3 0 .0 0 0 2 0 .0 0 0 15 .0 0 0 7 .5 0 0
↑約17 .3 日 ↑4 営業日 ↑2 営業日 ↑1営業日
※1日休むと1ヶ月あたり5 % の生産が失われる。
※7 .5 時間の残業で5 % 生産が向上する。
• 7.5時間勤務なら0.375/1.875時間
• 一週間5営業日中1.875時間/1営業日+1.875時間
• 20営業日なら1営業日/5営業日
1、2日分ぐらいは残業したり体調悪くて休んだりするから
10%ぐらいはなんとかなるんじゃない?