"If you have done enough software projects, you must have figured out the pattern already. Programmers would sit down and start coding, before even understanding the requirements, let alone specifying how the system should work."<p>Erm. No. Nope.<p>I have never seen anyone start coding without knowing how their code should work and how it would interact with the other code, the rest of the project and at some point, other projects...