Or, how do I know if the developer I am interviewing for my team is good enough or if I should hold out for the perfect match?
Over the years, as I've helped technical managers navigate the recruiting world, I often hear the following comment - "We found someone we like, but we don't want to make him an offer just yet, we want to see who else is out there."
While these well-intentioned managers are debating, the candidate is busy interviewing with other companies. This results in one of two scenarios: 1. The candidate accepts another job or 2. The candidate gets another offer which he then uses to get a better offer from you.
One of the most important things you can do for you interview process is: know up front what you are looking for, and when you find someone that meets the criteria, act on this immediately.
Now, I don't mean loosen your criteria and jump on the first candidate that is decent. No, what I mean is, have an evaluation process in place. If the candidate passes, don't doubt this process, make them an offer today.
Worst case, you are wrong and then you learn from the process and improve. Best case, the candidate is great. Most likely case, the candidate is very good and your evaluation process worked.