If you had to name the chief difference between excellent and mediocre developers, what would you pick?
Would it be the quality of their code? Their expertise with a particular language or framework? Their insistence on testing? Their problem-solving skills?
If I had to pick a single difference between excellent and mediocre developers, it would be this: excellent developers never ask permission to do their job.
Nobody stands over a plumber and tells him to rush fixing a pipe. No competent plumber would stand for it. And neither should we.
Is a project going to take longer than the boss wants? Then, be honest, up front. Excellent developers don’t skimp or cut corners just to make their bosses happy; they explain the situation and offer solutions. They are professionals who are open, honest and straightforward. You should be, too.