システムは阿吽の呼吸で作られることは少ないようです。大規模であればあるほど設計書が重視され、人の感情やチームワークよりも設計書に書かれたことを実現することが最優先となります。また、各プログラマに与えられる仕事はコンポーネントに分けられていることが多く、システムの全体像を知ることはほとんど無い職場も多いようです。システム設計はすべてのプログラマの指針となりますので最初に時間をかけて設計されます。
特にクライアントから承諾を得たシステム要求定義書などから実現しなくてはならない機能の搾り出しは重要であると考えられています。実際にプログラマに仕事を依頼するための仕様などを決める作業はシステム設計と呼ばれ、必要なハードウエアとソフトウエアを描き出す設計方針と設計方針からソフトウエアに落としこむ内部設計、内部設計から実際にプログラマに依頼できるサイズにまで区分し、詳細な設計方針を決めるプログラム設計があります。特に内部設計ではプログラム全体および各機能別のコンポーネントの区分け、データ設計なども考慮されるので重要視されます。現在では多くの会社が外部の協力会社と連携してプログラムを作り上げていくことが多いので設計の際にはプログラマの人数に応じた設計となることも多いようです。
また、内部設計においては全体像を注視することは少なく、機能別にコンポーネントとしてさらに詳細に分けてプログラム設計しやすいようにすることが多いようです。