技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

事前検証の重要性(技術的リスク、顧客要望への対応)

一般的な考え方になりますが、不確実性が高い場合は、無理に計画を立てて進めるよりも、事前検証により不確実性を事前に解消することの方が重要になります。
例えば、技術的にできるかどうかわからないという不確実性がある場合、ウォーターフォール的に大きな計画を作りその通りに作業しようとしても、工程を進める中で設計上実現不可能な点が見つかり、大きな手戻りやプロジェクト中止という結果になる可能性が高いです。また、顧客要望が曖昧という不確実性がある場合は、度重なる仕様変更でスケジュールを守れなくなったり、作ったシステムが実際にお客様の目に触れた時に突き返されてしまったりする可能性が高いです。
ウォーターフォールは現在の日本のIT業界では最もポピュラーなプロセスモデルですが、このプロセスモデルは不確実性が少ない開発でこそ真価を発揮するということは頭に入れておく必要があります。
 
技術的リスクがあると判断される場合は、プロトタイプの作成により不確実性を事前に解消することが有効になります。
実現可能性を見るために必要最低限の実装のみを行うことで、不確実性を事前に検証することが可能になります。
 
顧客要望が曖昧と判断される場合は、ペーパープロトタイプ(紙の上に描かれた疑似的なシステム)やアジャイル開発の考え方(必要最低限の中核機能のみ作成しいち早くシステムを見てもらう)により、事前に検証することが可能になります。
 
どのような仕事を行う上でも、計画がブレる可能性が高い不確実性がある場合は、不確実性の検証を後回しにせずになるべく早いタイミングで検証しておく、という心構えが重要になります。
決まったプロセスがない、非定型的なプロジェクトであれば尚更です。