As a senior developer, I feel responsible to provide a good value to whomever is paying me. If my team is using good practices/methods, then it is much easier to deliver a good value. However, not every company is “really into” methodology. When a company is not, sooner or later, it will get-in-the-way of you providing a good value.
To get an idea of what I mean, let’s look at an example. If you asked three different levels of developers to make a screen for you, here is what you can expect:
- Junior developer – will look-up how to make a screen, and then make one. If it comes out wrong, he will be embarrassed and think it was his fault. He will try to do better next time.
- Mid-level developer – already knows how to make a screen. It will be done pretty quickly. If it comes out wrong, he will do it again. He will remake it as many times as you ask him to. If there are complaints about the screen, he knows whether the problem was his fault or yours, but he won’t bring it up. This is fun and easy. He doesn’t mind working on the same screen for a whole week, redoing it repeatedly until you make up your mind. He figures that you know best.
- Senior developer – based on previous experience, he will ask a few more questions “Why do you need the screen?” “Will you need more screens, like this one?”, “Do you have any screen standards defined, that I should follow?” He asks these questions because, ultimately, he only wants to make the screen once. If he is making several screens, he will determine if it is faster to make a program to make the screens for him. He does not want to re-make a screen more than once. If that happens, he will become irritated and start analyzing the process, to see if he can optimize it. He knows that rewriting a screen (several times) is wasteful and his dignity compels him to follow an optimal approach, which will provide the best value to his employer. Especially since, he knows better (honestly, he actually does).
Most senior developers joke about this typical behavior by saying “I am very efficient because I am lazy. I don’t want to do things twice”. This is really just a classic (inside) joke among developers, but non-developers tend to ONLY hear the part about laziness. Then they extrapolate all sorts of bad stuff. Sheesh. If you have to explain the joke each time, it just isn’t as funny. Right?
So, asking lots of questions is an honorable trait for developers. Unfortunately, this seems to bug the bajeebers out of some non-developers. “You ask too many questions” “You are over-thinking this” “Just get started already. You would already be done if you weren’t still talking”. All of this accuracy and discipline seems completely misplaced. “Where is your sense of adventure? Hey man, stop being such a buzz-kill”.
Conversely, if you are used-to working with a senior developer, [all of those questions] will be a relief to you. They will indicate that this person knows what he is doing. You can tell that he knows the right questions to ask. Therefore, you know you can count on him.
So, a little F.Y.I to those who think senior developers ask too many questions or are too detailed or verbose in their explanations. You might want to put some thought into [why that might be].
If we are talking about Star Wars, then yes, the senior developer should shelve that discussion. However, if you are asking him to do some work and he asks a lot of questions, then he is actually doing the type of work that is (at least) as tedious for him as it is for you. Please don’t make it any harder than it needs to be.
Just l33t-up, please and get it right the first time.