開発コストを低く見積もってしまう罠
#開発コスト #エンジニアリング #アンチパターン
技術の進化により機能単体の開発速度は以前より早くなっている
PDCA, OODAの回す速度が早くなっているということ
最近はAIによる効率アップとかもよく言われる
ここだけ見てしまうと落とし穴がある
Howだけ考えると複雑さを導入して仕事が増える
コンセプトを作り出すためのWhy, Whatの深掘りを疎かにしてはならない
---
すでにある技術や、Howから外部仕様を考えてしまう
作ることが目的と化してはならない
実装やデータ構造からUIを考えるとデータ中心UIになる
内部仕様を雑に考えてしまう
システム的な前提条件の考慮漏れ
機能同士の関連
設計意識が薄いということについて
外部仕様は、ユーザーのシナリオやペルソナからメンタルモデルと一致させる
OOUI, Smalltalk MVC
ドメインと問題空間と解決空間
解決策を早期に固定化するとWhyを置き去りにしてしまう
手段の固定化を防ぎたい
---
開発コストを低く見積もってしまうバイアスを生む
技術の進化で変わるのは生産リードタイムだけ
経験値の低い人や"完全に理解した"状況の人は生産リードタイムだけを見て低い見積もりを出しがち
怖さを知らないことの怖さ
能力や専門性や経験の低い人は自分の能力を過大評価する傾向がある
コンテキストと成果物の間にどれだけ根拠付けできるか
開発コストとしては、これまで通りに開発リードタイム、調達リードタイムを考慮する必要がある
依存タスク作業や前提工程の解像度が低いと開発コストを低く見積もってしまう
ベロシティを開発組織のKPIとするのはアンチパターン
開発組織全体が疲弊する
開発コストを低く見積もり、それをコミットの約束にすると
締め切り駆動開発になりがち
顧客にとっての価値ベースの優先順位を見誤る
DEV Teamは言われたものをただ作る状態→社内受託状態
緊急ではないが重要なものへの時間を取れない
長期的に、気づくのが難しいレベルで少しずつ生産性が落ちていく
集合知が生まれず、知識に格差もできて伝承もされない
開発組織がスケールしなくなる
システムの内部仕様や外部仕様がもろくなる
適切なタイミングでのリファクタリングの敷居が高くなる
非機能要件をおろそかにする
長期的なリグレッション管理のコストが高まる
プラスアルファの相乗効果を生みづらい
UI/UXの探求ができない
本質的なプロダクトの価値を高める活動のモチベーションが下がる
誰も評価・計測する指標を持たない
皺寄せは組織の末端に近いほど受けやすい
DEV Teamはよく意識しておくべき
解像度が高い状態になるまでコミットの約束はしないほうがよい
約束は開発を遅らせる
事実を元としない経験則による楽観的な見積もりは肉体的にも精神的にも致命傷となり得る
見積もりは常に悲観的に(直感の2倍が丁度いい)
まずは事実関係を整理するところから始める
経験したことのないことに対しては見積もりが不可能
未経験の領域に対する見積もり精度を高めるのに事前にアレコレ根回ししてと本質的ではない
---
どう向き合うか
状況によって目的・目標を微修正し続け、思考法を状況によって切り替える
アンチ計画主義
決断を遅らせる
アジャイルな要件定義と開発スコープ