39

Over the last year or so, our team has lost many computer programmers, and we have been unable to fill these positions. In other words, we are severely understaffed1.

Due to this severe understaffing, my boss has started to assign to non-programmers2 some tasks and projects that until now had been done only by programmers.

Although I understand why this is happening, I consider the practice extremely dangerous. Without going into details, gross programming errors could easily make our company legally liable for damages.

The way these non-programmers are muddling through is by (a) copying the code of prior projects wholesale, and tweaking this code until it produces results that do not look obviously wrong; and (b) pestering the few remaining programmers in the team to do for them what they cannot do themselves.

I am now one of the programmers who are being pestered as described in (b).

Of course, I can always plead that I am too busy (which, actually, in this case is 100% the truth), but I wonder if this is really the right course of action.

Should I just leave it at that (i.e. plead "no bandwidth"), or should I speak up?

More specifically,

  • Should I tell my boss (a) that I refuse to enable incompetence; and (b) that assigning non-programmers to projects where programming skill is required is dangerous?

  • Should I report this situation to HR?


1 Our HR department is also understaffed, for similar reasons, which makes matters much worse.

2 By "non-programmer" I don't mean someone who does not have programming in their job description. I mean someone who does not know how to write a computer program.

8
  • 7
    1) Is there any kind of QA process? 2) I know you can't go into details but are we talking about something where the code being wrong or failing can result in actual harm to people or property or mess up financial data? (Are you in a highly regulated industry?)
    – BSMP
    Jan 31 at 19:42
  • 3
    "we have been unable to fill these positions" did you try raising the salary for new hires?
    – wha7ever
    Feb 1 at 16:06
  • 3
    I think what this discloses is that management hold programmers (and perhaps even all other workers) in very low regard in this company, and that is the fundamental problem. You wouldn't ask inexperienced people with no relevant background, to do carpentry to fix the office desks. Most would think twice about even asking them to paint the walls, because there will soon be paint everywhere. Why would you ask non-programmers to program computers?
    – Steve
    Feb 2 at 8:27
  • What alternative solution(s) do you have in mind? You say you're severely understaffed, so presumably experienced programmers wouldn't have time to work on the tasks these "non-programmers" are doing. Telling your boss "this is bad" wouldn't help much if there's no better alternative. Feb 2 at 11:08
  • 3
    @BernhardBarker, presumably the alternative would be not to do the tasks that are being assigned to those who cannot do them competently. No carpenters, the desks don't get fixed. No painters, the walls don't get painted. No programmers, the computers don't get programmed. Or if they really are critical tasks that must be done, then pay what is necessary to attract a new hire with the necessary competence. They'll pay anyway - it will just express itself for now through the consequences of badly done work, damage, and little productivity relative to the wage paid to the non-programmers.
    – Steve
    Feb 2 at 12:25

6 Answers 6

81

Should I just leave it at that (i.e. plead "no bandwidth"), or should I speak up?

You should speak with your boss, but not in any of the confrontational examples that you provided.

When the non-programmer assigned to the project, asks you to essentially finish their project for them you should first tell them "let me run this by my manager" and then ask your boss how he wants this handled. You can say something like:

Hey boss, X reached out to me to help them out with project Y as they appear to be stuck. How would you like me to handle their request?

After that, it is up to the boss whether you should help or not. Don't mention anything about your perception of your coworker's competency.

4
  • 88
    More helpfully and a little more in the spirit of the original question, if your manager says you should help they would probably also like to know 1) how much of your time you think it will take and 2) what you won't be able to do that's currently on your workload. Good managers will ask this but if you already have rapport with your manager you could mention it upfront. Jan 31 at 19:40
  • 8
    If a subordinate comes to me and says basically "someone is asking me for help, what should I do?", I would be rather concerned if they have more than 6 months of work experience, given that I consider helping others to be a key part of being a decent employee/person and it was an expected part of every job I've ever held. When speaking to your boss, I'd strongly suggest expanding on why you consider this particular request for help to be problematic (e.g. it will take too much time away from your other tasks). Feb 2 at 11:04
  • Based on what did you conclude that OP is being asked to "essentially finish their project for them"? All I see in the question is them asking programmers to do "what they cannot do themselves", which may be asking to finish their project, but it seems more likely to just be asking for help with ... well, the parts they cannot do themselves (something which probably every programmer who's ever worked in a team has asked for help with). Feb 2 at 11:15
  • 1
    @BernhardBarker it heavily depends on what "help" entails here, which given that people are being assigned tasks they do not have skills and qualifications to do, could be unreasonably much for the kind of "help everybody" attitude that otherwise makes sense in a mutually supportive work environment. Feb 2 at 17:46
33

Should I tell my boss (a) that I refuse to enable incompetence; and (b) that assigning non-programmers to projects where programming skill is required is dangerous?

Refusing to perform the tasks assigned to you is seldom a wise career move. And virtually every job description I've ever seen included something along the lines of "... and other tasks as assigned."

Should I report this situation to HR?

It's extremely unlikely HR would put itself in the middle of this.

Instead, speak with your boss. Explain how busy you are and why you think the choice to use "non-programmers" is dangerous.

If you are still bothered that much by this practice, it might be time to find a new job and leave this one.

15
  • 8
    Unless those tasks are outside of your job description. OP never mentioned he's a technical lead, or has training/mentoring in his JD. Also if his industry is regulated and he's not reporting what is clearly a case of gross misconduct from whoever tasked those unskilled people he might be liable for damages together with his employer as an enabler.
    – BoboDarph
    Feb 1 at 15:56
  • 2
    In the end, your job is generally whatever you're told to do, and as long as it's not immoral, self-contradictory, illegal, etc., then orders are orders. If a brain surgeon is told to take out the trash, then that's what they're being paid for. It may be a little more complicated if there's a meaningful contract between you and the employer, but not so much if you're a vanilla employee. Feb 1 at 19:13
  • 8
    @JoeStrazzere being required to help inadequately trained colleagues complete their inappropriately assigned work, to the detriment of your work (as you are already busy), most certainly isnt in any job description that would be reasonable. This company is a dumpster fire, dont blame the employee for attempting to protect themselves here.
    – user34687
    Feb 1 at 22:08
  • 2
    @JoeStrazzere yes, yes we do get to make that decision - only in a badly run company does an employee get treated like a slave. And this definitely sounds like a badly run company - the fact that you seem to be in agreement with how this company runs is also interesting...
    – user34687
    Feb 2 at 1:32
  • 4
    @Moo If your manager told you that one thing gets priority over another, then doing the thing you were told gets priority isn't "to the detriment of your work", it is the most important work you could be doing. Feb 2 at 9:00
13

Every company doing software development is currently understaffed. It's a worldwide issue. There just aren't enough competent people to fill the positions available, and there's no silver bullet HR can use to fix this easily.

Should I tell my boss (a) that I refuse to enable incompetence; and (b) that assigning non-programmers to projects where programming skill is required is dangerous?

This is not helpful, because neither (a) nor (b) alone will solve his current problem. Instead, make suggestions that will help him solve the problem. Accept the lack of competent software developers as given and think about ways you can help the company make the situation better. Examples would be:

  • Postpone all non-urgent projects so that the remaining developers have more time to train and help the non-developers.
  • Send the non-developers on courses.
  • Establish quality assurance processes, for example, code reviews, unit tests, etc.
  • Make sure all simple tasks are offloaded to non-developers. You want your valuable, scarce developers to do code reviews, training and software architecture design, not debugging, first-level customer support or writing unit tests for trivial cases.
10
  • 9
    "neither (a) nor (b) will solve his current problem". It really has to start with the boss acknowledging that there is a problem in the first place. Your proposals will not make sense to someone who is unaware that there is a problem in the first place.
    – MSalters
    Feb 1 at 9:47
  • 2
    @MSalters: Good point, I've reworded the sentence. However, just because the boss doesn't discuss this issue with OP, it doesn't necessarily mean that he is unaware of it.
    – Heinzi
    Feb 1 at 9:59
  • 7
    "there just aren't enough competent people to fill the positions available" From my experience in looking for software development jobs, the idea of "competent" has doubled in required skills and experience in the last 3-5 years, and doubled again in the past 1-2 years. Job descriptions that require 10-20 years experience, a Master's degree, and 20-30 different languages/technologies for an mid-level job is completely unrealistic and not an accurate description of "competent". Feb 1 at 16:37
  • 10
    @computercarguy: Hmm, that doesn't match my experience in looking for software developers. We don't require experience, formal degrees or some specific languages/technologies. We just want smart, diligent people who bring a net benefit to our workload, i.e., the amount of development work they get done must be larger than the amount of development work we can't do any more because we have to manage them or fix their bugs instead. Impossible to find at the moment. (Maybe we're just doing it wrong, but we are definitely not the only ones with this problem.)
    – Heinzi
    Feb 1 at 21:56
  • 3
    I don't think there's a lack of competent staff available. What's actually been happening in recent years is that complexity of technology and tools has been proliferating wildly, at the same time as wages have fallen through the floor and staff churn has been soaring. The net effect is that most businesses now simply have a pile of mess to deal with.
    – Steve
    Feb 2 at 7:53
5

As a software developer, I just imagine what would happen if my boss told me to create some of the artwork used for a product. I wouldn’t be happy. The proper graphics designers wouldn’t be happy. Customers wouldn’t be happy with the result. And in that situation, at least rubbish artwork like what I would produce is easily identified, including by me, unlike rubbish code, and that keeps the damage down.

I would tell your boss that what they are doing is very misguided. I’d expect overall productivity go down, and quality to go down even more. And at some point, bad quality needs fixing, which costs even more.

Now if you have some individuals with talent and interest in software development, that would be different. Just like you will occasionally find a software developer who has talent and interest to create some artwork.

4
  • 10
    I think you should avoid telling the boss that his actions are misguided! That's an opinion, and a very confrontational one at that. Better to list your concerns about quality and how much time it's taking from senior devs. Try to come up with some better options, eg 'what can we put on hold, and what needs to be done now? How can we best allocate dev time to that?'. These are questions that form the basis for discussion rather than starting an argument. Feb 1 at 9:23
  • 3
    Max is your boss someone who can’t accept the truth? He’s the boss, priorities and who to assign work to people are his job, and he needs to work and do his job to justify his salary, just as I do.
    – gnasher729
    Feb 1 at 18:35
  • 1
    gnasher729 my boss is great actually - he's an ex dev and now the managing director of the company. He totally understands development problems. I would never, though, tell him that his actions are "misguided" as he would be offended, and rightly so. Instead I'd say "I think that's not going to work because..." or "We could do that, but i'm worried that..." etc. Keep it about my concerns, and back it up with a logical argument, instead of going in trying to start a fight. That's just basic discussion stuff right? Feb 3 at 9:22
  • @gnasher729, yes, those are part of a manager's job, yet many managers only see their job as satisfying every need/want/desire of their manager. They justify their salary by "not angering the gods", and if they get any kind of feedback from their workers that jeopardizes that, they get defensive and start making lists of who to fire during the next round of lay-offs. That happens even when the feedback is a reasonable request/suggestion. I like your answer, but it needs to be done tactfully, or you'll be in search for a new boss, whether you want to or not. Feb 3 at 16:12
3

Should I tell my boss (a) that I refuse to enable incompetence;

You can do that, of course, by quitting as others have apparently already done.

Or, you could make the best of the situation. Perhaps find 1 or 2 people to mentor and guide the others towards less critical paths that help move the projects forward that don't involve much expertise. You could limit the number of people you're willing to help as a compromise.

Importantly, there's a huge difference between "can't write a program" and "inexperienced with writing production code as a job". It's hard to believe that these folks are at "can't write a program" level. They're likely marginal but with some aptitude. They might see it as an opportunity to advance and you're about to mark them as "incompetent" before they get a chance.

and (b) that assigning non-programmers to projects where programming skill is required is dangerous?

Everything is dangerous. Your org is understaffed. That's already dangerous. It's a risk like any other. Your leadership has decided they can take a risk on losing skilled programmers.

Should I report this situation to HR?

Understaffing is a deliberate decision of management. HR will support the decisions of management. You would be planting a red-flag on yourself.

1
  • At the moment in the UK it is not necessarily a management decision. I’m told that once you find someone you want to offer a job to, you don’t wait to find someone better but make an offer immediately (of course if they are not good enough, you don’t. But you don’t wait for someone better. )
    – gnasher729
    Feb 2 at 20:05
-4

This is only really a problem if the newbie is being coerced to do a job he/she does not want to do. Like really how hard is it to train a secretary to set up a WordPress site? Or get her to help with documentation? There are basic mundane task that can be outsourced to other people in the company if need be.

The original post stinks of some sort of intellectual gatekeeping. Programming is not some sort of skill only the intellectual elite can do. In my many years of hobby programming I have realised that people have this idea that learning programming is some insurmountable task, but to get a reasonable grasp of OOP there are some basic decision structure, iteration structures and then also the varying data structures. Polymorphism, encapsulation, delegation and inheritance and then dealing with the UI.

It can get complicated depending on how deep you want to go down the rabbit hole. Really though, a lot of programming is surprisingly accessible and only takes the exercise of a healthy mind to master. If you take some time to teach the other people and they have a desire to learn. It may surprise you what they are capable of.

3
  • 9
    how hard is it to train a secretary to ... refractor code? Very hard. Feb 1 at 19:16
  • Ok I have improved this post.
    – Neil Meyer
    Feb 1 at 19:27
  • 3
    I agree that the folks who are being assigned programming tasks can learn if they want to but this doesn't necessarily help the OP since they're not the one assigning the work and it doesn't sound like they have the time to teach them how to program in general. (I'm not sure OP should be the one to do it anyway if they're already irritated with them.) It's also hard to say whether giving them the easier tasks is enough to help with the workload. Unfortunately, the OP chose not to answer any requests for clarification when they made their edit.
    – BSMP
    Feb 2 at 7:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .