There are many approaches to designing and building applications. One thing they all have in common is that they put design first. Often, it is tempting to sit down and start cranking out code without first creating a well-defined plan. For very simple programs that won’t be used for very long, that may be good enough. For anything but the most trivial program, however, it’s a huge mistake.
A solid design can help you better understand the application and how its pieces fit together. The better you understand the code, the less likely you are to make mistakes.
This issue is compounded when many developers work together. If different developers have different ideas about how the application (or even parts of it) should work, ...