The design phase is one of the most important in the software development cycle. You can trace many of the problems associated with failed software projects to poor upfront design and inadequate communication between the system’s developers and the system’s consumers