A Sign of an Experienced Developer
My brother and I were chatting about the use of in-house candidate assessments, and he mentioned his criteria for how he measures how “senior” a developer is.
The more senior a developer, the quicker they will ask for help when they don’t know the answer.
While the premise can seem counter-intuitive at first, it has proven relatively faithful. Consider the following.
Knowing What You Know
When it comes to someone who has been doing development for a while, they know very well that they have limits. They’ve hit their limits hundreds of times, and simply know that the solution isn’t within their knowledge set. So, they go look it up.
With in-experienced developers, often there can be a resistance to look things up, simply because either they have pride about knowing the answers, newer developers simply take longer to look up the answer.
Knowing What You Don’t Know
In-experienced developers are simply sometimes unaware of the bounds of their knowledge. They have a task, and when they approach it, they can assume that they are in possession of all the pieces of the puzzle they need to assemble.
But, often, this is simply not the case. The number of tools, options, variants, configurations, and simply scenarios is, virtually, limitless. An experienced developer simply knows recognizes a problem they’ve never seen before quicker than an inexperienced one, quite often. They also recognize when the scope of an assignment has gone beyond the knowledge they possess, and they feel no hesitation to simply step out and “look it up”.
In essence, the more experienced a developer, the more they know, from experience, where their knowledge lies and where it doesn’t, and they have no problem acquiring more.
Knowing Your Task
And, finally, experienced developers have simply been around the block a time or two, and if there is a more efficient way to accomplish something, they will gravitate towards it. Quite simply, most of the mundane drudgery portion of coding (everyone has to grind sometimes) is boring, and they’ve learned to keep an eye open.
For the in-experienced developers, on the other hand, the process at hand consumes most of their attention. They are looking to accomplish the “task”, which in their mind is the code.
The experienced developer realizes that the real task accomplishing the purpose of the task, thus, his task is wider scope than simply looking at the code, it is “accomplishing the end result”. Thus, whatever methods, means, or behavior best produce that result, that is what they go with. Thus, knowing their knowledge, and their lack of it, when the best approach is to simply look it up, in terms of time, mental energy, and whatnot, they employ those methods.
Whereas the in-experienced developer can develop a sort of “tunnel-vision”, the experienced developer, quite often in their extra brain-cycles they aren’t using on actually using their keyboards, can be open to lateral thoughts on how to better accomplish the same task.
Ask For Help
The bottom line is the experienced developer simply knows when and why to ask for help. They know their trade, their tools, and their task, and they accomplish it efficiently and quickly, using whatever means necessary.
After all, one of the main tenants of Agile Development is “Working Software”. The best code is always the one you don’t have to write, because you save time in the doing, maintaining, and the debugging.
Asking for help, while some may view as a sign of weakness, can actually be one of our greatest strengths.