What is the difference between a good software engineer and a weaker software engineer?
Answer: When you give a weak software engineer a new job the first question they ask themselves is “how am I going to design this?” where as the good software engineer asks themselves “how am I going to test the code?”
Be aware that “job” could mean developing a new class to represent a simple concept or it could mean developing a complete database management system for a large corporation.