I am in a situation that I do not believe is unique. Basically company A is a small company, less than 100 employees, in cyber security industry. There is a ton of work to be done, but lacking the hands. Higher ups don't understand the sheer amount of work that goes into software development and don't believe hiring more technical people is worth the investment, they continue to hire more black suits(non-technical people).

Employee Tom, a software engineer, is spread incredibly thin with multiple deadlines. There are lower level technical employees (that basically do nothing and are incredibly lazy) but if you want to offload work to them, expect to spend 3x the time teaching them (of which they don't care) when you could just do the job yourself the right way. Because, I'd rather do one project 100% than 5 projects half as well. So I have a few questions on how to approach this.

  1. How to show higher ups that we desperately need more hands and less black suits without coming off as "lazy" or "unproductive"?

  2. More importantly, how to inform them that any additional hiring's need to run through the software developers because we will have to deal with them?

  3. At what point do you jump ship and get a job that you believe is ran correctly and you can do your best work?

Note: The job itself is great, flexible, learn a ton and the work is challenging, which I love. This makes a decision that much harder.

Edit: It might seem like I am might be unfair in my assessment. I think it would be helpful to give a few examples of tasks because some believe I am the source of the problem. Tasks such as...

1.) "We need a report for x project, please ask us questions if you don't understand anything." The report comes back with spelling mistakes everywhere, incomplete sentences.

2.) After teaching about our product for 3 months, we ask for a summary. They miss key details that were stressed many times and that only could have been missed if they did not care. We weren't looking for a detailed summary, but testing their awareness in a way.

3.) "Hey we understand you don't know the code base, could you read the code we have written (which is already documented) and document it in your own words and create a flow so you can better understand what we are trying to do?" - They attempt to do so and return a report in 20 minutes that is just lazy by all attempts. We then explain to them how we would like it. Process repeats.

I am perfectly happy and excited to help anyone, regardless of their experience, on anything they need. But when we take precious time out of our hectic schedule to teach them, and they show a 200% lack of interest (spelling mistakes), then I draw the line.

  • 1
    Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Feb 1 at 9:48
up vote 202 down vote accepted

Of course your management doesn't think you need more people, you have people who are clearly not busy.

Never do someone else's work over for them. Miss the deadline and send it back. Every time. You are incentivising them to perform poorly. Stop it. Eventually they will get better or get fired.

As far as you own actual workload. Learn to say no. When you are full up, ask what the priorities are and then drop the lower priority tasks off your schedule. Make sure people know you are doing this. In fact, when they ask, list what you have currently on your plate and ask specifically what they want you to drop to do the work.

  • Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Feb 1 at 9:48

One difference between junior and senior levels is the ability to manage yourself. That includes handling a workload that is too big.

Your three allies are delegation, priorities and saying no.

delegation -- this is an art all by itself. I know exactly what you feel, been there, done that. Yes, sometimes you have to give work to people who can't do it as well as you do, as fast as you do, or who need to be trained. Check if the training is repetitive - if you can train them in something once, but afterwards offload similar tasks to them multiple times, the training time will repay itself. The other two - accept it. When you delegate work, one of the most difficult skills is to accept that other people will do it worse, but you essentially have a choice of getting their result or no result.

priorities -- do important things first so that what is left at the end of the day/week/month is the stuff that is optional. There are a billion websites about this topic, the most easy one is to have the two factors urgency and importance. What is both urgent and important gets done first. What is urgent but not important second. What is important but not urgent gets moved to later, what is neither urgent nor important is dropped.

saying no -- when the boss gives you yet another task and you are at 100% capacity or near, simply ask "which other task does this replace?" He will look at you like he doesn't understand, but unless he is a total idiot he does. Explain again that you are at maximum capacity and if you accept this task, something else will not get done. Make it his decision which task gets dropped. This way you can say no without having the responsibility.

delegation will get the lower level people working, priorities will sort out Tom's working schedule, and saying no will prevent additional overload.

  • 4
    First answer that started out understanding the situation and realizing that I am not (at least not the vast majority) of the problem. – pm1391 Jan 30 at 13:24
  • 15
    Being the only programmer in my department, I get a LOT of requests all at once for changes/updates/fixes/etc. I've solved the "i'm too busy" by having a whiteboard listing project, estimated time needed to finish it or complete whatever stage it is on, and who asked me to do it. I welcome my office visitors to grab a marker and decide who they will make mad by re-prioritizing things and moving their stuff to the top of the list (or above someone else). Strangely, the people who can with impunity (VPs, etc) never take me up... and the lower folks are afraid of making the VPs mad. – ivanivan Jan 30 at 19:38
  • 2
    @ivanivan this is a very underrated comment. I will throw up a massive "to-do" list now for our dev's anything they want done I'll add/remove items to the list right in front of them – pm1391 Jan 31 at 12:35
  • @ivanivan Probably, the VPs, etc leave it alone because they understand exactly what you're doing, and why. – employee-X Jan 31 at 22:28
  • @pm1391 I recommend setting a limit right from the beginning (of say, 5 projects per-person, or 10 for the whole team). This way, it will not feel as arbitrary when you say, "Hey, this new project needs to push something else off." – employee-X Jan 31 at 22:29

"There are lower level technical employees (that basically do nothing and incredibly lazy) but if you want to offload work to them, expect to spend 3x the time teaching them."

Well, if you're going to do the stuff anyway you can still throw out any or all work they did. Just give them a task and don't teach them. You just have to define the task enough so they could understand. Point out their mistakes in a well defined manner on a conceptual level so they can improve. Let them read your code for the same stuff they tried to do later and let them ask you a few big questions. From the sound of it they are sitting around doing nothing.

It seems like you are micro managing too much. People are usualy smart and will figure out what you want, they just need time. Stop them from asking you too detailed questions. Restrict question to the conceptual level.

Also you won't be able to do 100% of all projects perfect. Depending on the country you live in your employer and your customers can only expect a mediocre product by law.

And it seems you have technical, low level, but technical personal sitting around doing nothing. Managment is most likely calculating their time into the projects.

You will have to incorporate them into the projects if you like it or not. Also remember your beginner days. You didn't know everything you do know now, but people probably gave you a chance.

  • 4
    Thanks for your answer. It might sound like micro-managing, but I promise you, the tasks that we have delegated to lower tier come back incomplete and unfit for any use. We had no say in the hiring process. And you're right, I try to remember my younger days. But, I was given a task and I never returned until it was complete because I cared, like many others in their jobs. These people do not care about the success of the product – pm1391 Jan 29 at 18:52
  • 8
    Then write up their performance and fire them. – HLGEM Jan 29 at 19:05
  • 8
    Then the "lower-tier" performance needs to percolate to the appropriate management level. Make sure that your manager knows that X has been assigned Y and has agreed to a delivery (or refused to, in which case the manager needs to deal with that). When X does not deliver, make sure to remind your manager that X agreed to the schedule and did not deliver. Repeat until X decides to shape up, manager shapes X up, or X leaves or is asked to leave. – Joe McMahon Jan 30 at 0:17
  • 14
    @pm1391, people who actually don't care are very rare (though they do exist). People who aren't good at self-education, on the other hand, are quite common. Start with simple basics, and insist, insist, insist that the employees clear up every unfamiliar term when learning new technologies or even just trying to code something. The importance of Word Clearing to effective learning can't be overstated and has to be seen to be fully appreciated. – Wildcard Jan 30 at 7:53
  • 3
    @pm1391 "my way of doing things is the only way" is usually not a good basis for firing people. That's why you are a technical worker and not in a decision making position. – Boat Jan 30 at 11:47

First, find out why they're hiring more black suites and don't assume it's because they don't know what they're doing. I understand your plight as a technologist, but if they're trying to look more attractive to investors or some other reason, your argument is pointless.

Second, it's hard for managers to understand you don't have enough people to get the work done, when the work, is in fact, getting done. There should be clear communication about what everyone is expected to do and how that relates to fulfilling the company's goals. It's difficult to find out who isn't doing their job when someone else does it for them.

Clarify your expectations and get your personal job situation corrected before making any recommendations on how to fix the entire company.

  • Thanks for the answer. I might not have articulated the current needs of the company enough. The only assumptions I have made towards the "black suites" are the ones that I work with, so I can speak to their usefulness. And while I understand the need to attract customers, the foundation of the company (software) needs to be solid, so I don't believe my argument is pointless. My question remains as to how to approach the situation when we ~have~ told them we need more hands. – pm1391 Jan 29 at 18:46
  • 1
    We received a "we will once the next contract rolls in". Next contract rolls in. No new software developers. We ask again. Repeat the process. Goes back to your point, work is getting done, but... we are chaotic. – pm1391 Jan 29 at 18:59
  • 1
    @pm1391 In addition to ensure that such answers got listed anywhere (eg. in an email), it would seem appropriate to allocate the new contract tasks to "Guy to be hired for contract X". Then when no resources are allocated for this new contract, you can point how you had planned that work to be done by the new software developers they agreed to hire. – Ángel Jan 30 at 10:09
  • 4
    I'm going to partially disagree with this. Why they hire more black suits is irrelevant, the issue you want more technical people to be hired. Don't waste time on trying to find out. – Jan Doggen Jan 30 at 10:59
  • 1
    @JanDoggen - although I agree with your point, if the company tells you they would hire more technical people, but they feel it is more important to hire 'black suits' and there's no money left for technical people, you either have to wait until more money is available or try and change the current strategy. – user8365 Jan 31 at 18:37

You need a professional project manager.

The project manager would whittle projects into tasks which would be given estimates and start dates. If a resource is over-allocated between projects then that would show up. If a resource doesn't have the technical skills to be assigned to any task on any project, then that would show up too.

Note that a project manager isn't someone who can spin straw into gold. A project manager is someone who tries to keep the situation realistic.

Edit - Another point is that the project manager should manage resource conflicts (same person working on two projects) not the resource.

  • agreed, might need to go that route and possibly a project manager could relay concerns – pm1391 Jan 29 at 21:47
  • 2
    I'd like to add to this point - even if you don't have a project manager, have a project management board! It helps a LOT with visibility, as to who is doing what and when, and having a pile of unallocated work will show there's a lack of resource. Also learn how to use 'slow' resource. It might take longer in the short run, but if you can get them to a reasonable speed, even if it takes them longer, it frees up your time to do something else. – Tharglet Asimis Jan 30 at 9:29

With your list of failed tasks, you are describing the evidence base for formal action against those junior employees. That could be disciplinary action, reduction in grade, mandatory retraining, including them in the next round of redundancies, or simply sacking them.

Complain informally to your manager. If this has no effect then complain formally, in writing, to your manager and to HR. They may already know that this person is dead weight, and they're just itching for an excuse to get rid of them. They don't have the evidence trail though, and you do.

This shouldn't come back to you. Even if it does though, you haven't really lost out. So a junior guy who never did his job properly in the first place isn't motivated to work with you? He wasn't anyway, so no great loss.

And the point at which you jump ship is if you've flagged all this up and nothing happens. If management really don't care whether their engineers can deliver products to time and quality, then the company will fail, and you're better leaving before it does.

protected by mcknz Sep 14 at 15:23

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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