-10

As a manager for a software development team, how do I deal with developers who don't seem to understand what their job description is?

In particular, I am currently dealing with a junior developer who wants to be "challenged" and asks for "creative" tasks for me to give him. Furthermore, he constantly makes input and recommendations on processes that are simply not his responsibility. The other day, he wanted to talk to me about possible speed-up improvements of a particular piece of code. This is annoying, because even if it could be sped up ... so what? That's not what you were hired to do. If we wanted somebody to speed that part of the code up ... guess what? We'll bloody hire somebody to do that. The fact that we haven't, should tell you that we have other priorities!

And that's the issue. He has been hired, along with a few other guys, to .... code. On our latest projects for our newest clients. We have deadlines to meet, and I'd like him to focus on Coding. That's his job description. I respect the fact that he wants to be challenged, but then maybe he should get a job as a SWAT agent. But in our deparment, our junior developers are nothing more than code monkeys.

How do I explain this to him?

DO NOT misunderstand me. I am not saying his attitude is bad, or anything, but I just need him to understand that this isn't Facebook or Google where we can afford to give him "challenging" tasks like a superhuman chess engine. We are a mid-size company constantly struggling to meet deadlines. We need him to code.

  • 16
    "In our deparment, our junior developers are nothing more than code monkeys." you don't sound like an inspiring manager to work for. Even if you were working in fast food or something, you could definitely do something to make your workers more inspired and productive. The question you should be asking is how you can be a better manager. The question you asked will get resolved as a by-product. – Chan-Ho Suh Dec 27 '18 at 0:23
  • 8
    If you hire people for a developer position, give them developer titles (even if it's just a junior) and then treat them as if they're just code monkeys, yeah, no wonder they get upset. If you want code monkeys, hire code monkeys -- don't hire developers. – Abigail Dec 27 '18 at 0:55
  • 4
    You keep saying you hired him to code. How does optimization not count as coding? How are you defining coding as something different from what this guy is doing? – Kyle Delaney Dec 27 '18 at 1:32
  • 5
    @FEOWFO Wow. Given you’re telling us that you’re a manager, how can you be so tactless? – Ernest Friedman-Hill Dec 27 '18 at 3:31
  • 5
    I highly, HIGHLY suggest you, as a manager, to spend some time reading some questions here. You aren't managing your workforce right and this is just the tip of the iceberg. – Cris Dec 27 '18 at 19:39
18

It must be depressing working for you. It ANNOYS you when someone actually uses their brain? Here's something that YOU need to understand: When you pay a developer a salary, you pay them to come to work in the morning, leave in the afternoon, and to fill a chair in between. You make them do productive work by providing a good and encouraging working environment and motivating them. With your attitude, as soon as this junior developer is good enough, he or she will run away to find a company with a decent manager. Meanwhile, due to the lack of motivation, you will get less productivity from this employee than you could.

PS. You don't need to explain to him that you regard him just as a "code monkey", he will figure that out soon enough. And he will regard you as nothing more than a PHB.

  • 1
    The OP states that the company is struggling to meet deadlines - how does using resources to increase performance on a module which already works aid in meeting deadlines? – user1666620 Dec 27 '18 at 1:49
  • 7
    @user1666620 - At no point does the author of the question indicate the deadlines are not being met. – Donald Dec 27 '18 at 7:14
12

Simple. Challenge him to finish the mundane tasks under deadline. Once he achieves that tell him he will have the bonus time to find "fun" stuff to work on like speeding up other parts of the codebase. A good manager learns to work with individuals strengths. This guy is eager. Use that for good instead of trying to quash his spirit into a drone.

  • Once he is done with his mundane tasks, there are more mundane tasks waiting for him. So, no. I won't be giving him "fun tasks". – FEOWFO Dec 27 '18 at 2:21
  • 12
    @FEOWFO Then gnasher is right and he is going to leave you and you are going to piss off every single person worth their salt until the only drones you have left working for you are passionless and nearly worthless. Good Luck. – bruglesco Dec 27 '18 at 2:24
1

I think you may need to take a step back and reevaluate what you're trying to ask. I'm guessing the real issue here is that you have an employee who's having trouble adjusting to the workflow of your company. If you think in those terms, I think you can resolve things pretty well.

He's clearly an ambitious coder who wants to impress you, so use his strengths to your advantage. Remember that as a manager you are aware of business elements that he is not, so if he doesn't seem to respect the deadlines and the company's financial situation then feel free to share as much information as is pertinent. If he's out looking for extra projects then perhaps you haven't given him an adequate to-do list. If you have, then maybe while he's investigating his tasks he is finding areas of the code that he wants to improve on because there are problems with the code base that are obstructing his progress with those tasks. Consider that he may not be going off the rails as far as it looks, but rather taking small detours in order to better accomplish the tasks you've assigned to him.

1

A challenge for you will be to resist the temptation to look at people from manager stand point (as resources). Right now it looks like the force is directed towards you. So if you want to be a great manager (leader is the buzz word as it seems :) - you should find a way to redirect the force and amplify it once you're sure it is pointing the right direction. From what you wrote - it seems the right direction for you is maximizing velocity.

A challenge for the developer(s):

  1. Challenge the developer to do the tasks at hand with minimum required quality (just enough as you seem to prefer it, not perfect) but with maximum velocity. A very important part of the "minimum quality" game is to ensure the client knows what to expect and what not (common sense doesn't seem to be so common these days, especially between a client and a provider : ).
  2. Challenge him or her to do some very smart piece of code or process, that will speed up the tasks the next time (he or she, using the new process or tools should be able to complete similar task 20-30% faster the next time).
  3. After the velocity is twice better than before - use the saved time and allow them to play with the code a little bit to make it faster / optimize it a bit.

This proved to work for us. The best way to fasten point 1 and 2 is to group similar tasks (maybe it's your job as a manager, I don't know), so context switching overheat is minimized.

The last challenge for you will be to resist the temptation to push more and more mundane tasks once the developer is done faster with the ones being planned. First aim to do the required and leave some room for the developers to experiment.

0

He needs to understand that his priority is to build features which customers want to buy, and that micro-optimization is as bad as premature optimization.

He needs to understand that if nobody is complaining that something is slow or that there is not a provably large bottleneck that is genuinely affecting overall performance (and thus customer productivity) by a non-neglible %, then it's really not a priority.

Regarding lack of challenge and creativity, honestly that's only going to happen regularly in a startup. Not even Google or Facebook can provide that - he'd need to go to a startup or a company which is rebuilding an older core product to modern standards in order to ever see the like.

However I'm not sure a junior developer should be going to a (presumably) non-technical manager talking about systems performance - surely he has a senior developer to mentor him who he can bounce his ideas off and query?

  • 2
    Note that lots of customers don't complain, but just switch to another product. – gnasher729 Dec 27 '18 at 1:10
  • 1
    Robust code is an important investment. You'll save money by creating fewer bugs down the line and by making the code easier to read for every developer who comes next. – Kyle Delaney Dec 27 '18 at 1:30
  • @KyleDelaney I know robust code is good, but at the same time spending time to "fix" a module that already works adequately in order to gain a nebulous performance increase may not be the best use of limited resources. – user1666620 Dec 27 '18 at 1:46
  • 1
    @user1666620 we don't know it's a "nebulous" increase. OP basically said he shut the junior dev down and doesn't care to hear more. A better approach would be to ask how the junior dev knows it's a substantial improvement and whether it's in a critical place etc. That way it's clear from the questioning what is required to justify doing the work. – Chan-Ho Suh Dec 27 '18 at 8:33
  • @Chan-HoSuh the cynic in me says that if it's coming from a fresh out of college junior developer, it's almost certainly not going to really help very much. – user1666620 Dec 27 '18 at 11:17
-1

You deflect the conversation into the actual work. Interrupt with 'Have you completed XYX?' Ignore the rest, you're not his mum, chat friend. pen pal or mentor, you're his manager. If he's completed XYX, give him YXY to do with a bit of praise on his performance to make him feel good.

If he has any actual brains he'll eventually work out that poking his head up will just get him more tasks and the biggest challenge he's likely to see is meeting timeframes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.