With my experience I've seen lot of programmer start coding before thinking. They are good coder but I doubt there programming skills. Programming is not just coding, but doing it efficiently. Many young-stars ask me "Bro, your code is so organized. How you manage to do it". Well this is what I do.
When I program something even if it's a single method or an entire class or entire module I spent 2/3 of the time planning. Finding and cross checking all possible loop holes. And later implementing them step by step. And unit testing, despite I write the test class later but plan and note down the process for it even before I start coding. This helps me to write a program with minimum bugs. And a code with minimum bug helps you complete the project quickly. Why? well every client has a tendency to add some new requirements with the bug list.
It's an obvious. When the find a bug they comeup with new new Ideas related to it and will definitely ask you to do those as a favour. And you have to consider 60% of those new changes within your project cost. So, less bug is always good for business.