Designing a software project is more than scratching some heads and magically deploying a product. There are many stages required for all but the most simplistic designs to be ready for marketing, which are generally broken down into a few major categories; preplanning, planning;component design; user interface design; quality assurance and marketing and deployment.
The first stage is perhaps the most important. Too many software design projects begin with an idea that might as well have been jotted on a napkin, thrown into a trashcan, driven to a dump, uncovered by a homeless man and finally sold to Silicon Valley .