Normally, in employee interviews, I try to be more of a conversationalist and stay away from awkward, obvious baiting questions. However, I love asking this question when I interview a potential candidate. What is more important — completing a job on time or doing it right? A person’s answer is telling as to what kind of problem solver they are in the work environment. And, while there is no right or wrong answer, I am looking for a particular type of thoughtful response.
Let’s put more context to this question as it is easy to assume that it is always right to take whatever time is necessary to do it right. I think we have started to bake that into our kids, even. Especially when it comes to school work, we tell them to slow down and be careful to execute something correctly. A math problem may have an absolute correct or incorrect, but we adults know that most of life’s problems are not this clear.
Sometimes, it is better to get it done faster. Finishing a surgery correctly and taking a 15 more minutes than scheduled is the right thing to do. Taking time to load the dishwasher with care and respect for the contents is likely to win the approval of your spouse. However, taking extra time to mop the floor of the restaurant when there are 10 other things they need you to do will gain ire from an employer. Going 5, 10, or 20 hours over budget on billable work in an agency can be a problem.
Yes, it depends on the situation. That is exactly the point. Plenty of people will still enjoy your cake, even if it ends up not looking like the photo on Pinterest. If you miss an ingredient in the casserole, you wouldn’t throw it out and start over when your family is sitting at the table waiting to eat. If you didn’t perfectly name your variables or space and indent your program code, the program still works just fine.
Good enough will do.
Especially in the world of software and web development, the definition of “doing it right” is often subjective. Software developers, especially those acting as consultants, need to embrace imperfection and realize that good enough will do. It is the rare person that will admit this openly during an interview. But, as a business owner and your boss, I need to know you are going to emphasize getting the job done.
When you have agreed to a deadline, you do not immediately rewrite every data retrieval function (or insert your thing here) because you later learned that you could accomplish the result with 3 lines of code less per method. You will probably ship that imperfect code. You get it done and then clean it up, if you have time, which more likely than not, you do not.
The reality is that the client, users, and stakeholders will rarely know the difference between software that has unit tests written for every method versus those that only employ it for the known risky parts. They won’t feel the difference between a website that makes an Ajax call via jQuery versus one that makes the same request supported by a pure Angular get method that’s made up of a controller, directive, and service methods.
It’s ok to do something simple with simple tools and it’s ok if you write less than award worthy code. There is no “right” answer. There are merely different ways of accomplishing the same goal. The average business owner just wants you to get the job done – as quickly and fairly priced as possible. Most don’t care how you get it done. Truthfully, most hire us to take away the worry of how it gets done. As long as it works well enough to please your client and their customers, you’re doing it right.
What do you think?