システム開発は長い道のりでありますが、規模の大小に関わらず役割分担を適切に行えばスムーズな開発になると考えられています。システム開発は家を建てるのによく例えられます。家は建て主である発注元が建築士や施工会社に依頼して立てます。システム開発でもシステムエンジニアや開発会社が発注主と相談しながら欲しい機能を設定したり、利用しなくてはならないソフトウエアなどをピックアップしていき、ゴールとおおまかな動きをまとめて発注主に説明します。
家の設計図はこの時点ではなく、完成予想図的なものが成果物として提出され、合意が取れれば開発開始となります。次はプログラム作成となりますが、実際の家と同様に要望を叶えるために設計図を作ります。また、設計図をもとに必要な木材などの材料が集められ、大工さんにどのように作るか指示されます。プログラムの場合も利用するソフトウエアなどが用意され、プログラムを書くための仕様書が提示されます。
建築の場合は工期のまま済むことが多いですが、天候不順などがあれば伸びてしまいます。コーディングの場合は天気は関係ありませんが、仕様書によっては工期が延びることも多いようです。しかし、建築の場合と同様に人員を単純に追加しても問題が解決することは少ないため、仕様書の設計には時間をかけて確実なものを作るプロジェクトが多くなってきています。その後は性能がしっかりでているか、仕様書や設計図どおりにできているかが検査されて納品となります