The Importance of System Design
An initial system design is important to ensure that it does what is needed. It is hard to estimate how many software projects fail or are late, but it's a large percentage. The Project Management Institute (PMI) estimates that around 14% of software projects fail completely and almost half are delivered late. Even in small projects, it is common to find out too late that all the stakeholders had vastly different expectations, none of which are met in the final product.
By formally defining what a system will do, what inputs it receives, and what outputs it produces, we can avoid costly mistakes earlier in the process, both in terms of the time needed to fix any mistakes and in terms of lost reputation by making them initially. By clearly defining the different components of a system and how they rely on each other, we can also often identify problems before they happen, and optimize which components have to be built in which order.
A design...