12

For the last two years I've been working for a very small software company in a semi-junior development position. When I started, I put in place procedures regarding code deployment and automated much of the build process as there was no real structure for either of these when I started. Since then, the company has doubled in size, I've moved on to doing more normal development, and handle most administrative tasks by firing off automation scripts I wrote when first starting.

As part of the company growing, a QA department was formed and we moved an employee from elsewhere in the company to head the department. Because of the minuscule amount of work I did for deployments in the past, he comes to me to handle many database related tasks that occur on the same time schedule as code deployment despite me not being SQL developer These include, deploying SQL code to our hundreds of databases, managing deploying testing databases to QA servers, and making checking the database schema for things that may have been missed. I am also now been put in charge of debugging the build if any developer checks in code that breaks it, handling all source control tasks involving merges and removing bad code from builds, and troubleshooting any tech problems the QA team has. Many of these tasks were previously handled by the most appropriately qualified individual, but the QA manager thinks I should all tasks myself

Most of these tasks take little time individually, but for each one, the QA manager brings the task to my attention as soon as it comes up and demands it be my highest priority task. I am interrupted 5-6 times a day while writing code to do tasks that can take anywhere between 1 minute to an hour so that his team can remain productive. If I don't complete the task right away, he will often walk to my desk and stand behind me and watch until the task is done. Because of this my developing productivity has tanked and I am no longer able to make the code deadlines I was able to before, reflecting negatively on my position as a developer.

I have made it clear to my manager that the constant interruptions make it much harder for me to develop code, and that my job satisfaction is suffering as a consequence. He has stated that he would take steps to resolve my complaints but after a few months nothing has changed, and the QA manager is demanding more of my time more often. The QA manager has complained to upper management that my turn around time for these tasks has been sub par, since I prefer to finish my current task before starting a new one. After letting him know how it was negatively impacting my ability to work, he has started making moves to pull me away from development to do work for his team as a full time position, which I have no desire of doing.

I still consider myself a junior developer, and I work here for the learning opportunity, which has been mostly stifled by doing what I consider fairly menial labor. I've automated as much of it as I can but I am having a difficult time managing automation along with my other programming and administrative duties. Is there a good way to nestle myself out of this position and go back to coding full time?

8
  • 3
    Good luck, make it clear in writing you want to be a full time developer.
    – paparazzo
    Nov 20, 2017 at 23:32
  • 1
    Not an answer, but there is a Kanban saying that supports your preferred work style: Stop starting, start finishing (agilebuddha.com/agile/…). I find that I work better when I work this way - and I don't even work in an agile environment.
    – Peter M
    Nov 20, 2017 at 23:51
  • 2
    What would happen if you told the QA manager that you have to finish all tasks for your team before helping out another team? Does he have the authority to force you to help him if you are not one of his reports? Nov 20, 2017 at 23:56
  • 5
    Have you tried explaining that you will finish your current task, and get to his task, sooner if you are allowed to concentrate? It may be hard to say no, but as long as you reward pestering by switching to his task it will continue. Nov 21, 2017 at 1:12
  • 1
    Perhaps it's time to suggest that if he's dissatisfied with the help you're giving him with HIS tasks he might be better off asking someone else who he has more faith in. Or else, it's time to ask for a raise, since you're doing what are usually senior developer tasks. Nov 23, 2017 at 13:26

3 Answers 3

25

You need your manager's support for this option to work, but with it, the QA manager can be retrained. When he asks you to work on something, ask him to send you a request and you'll add it to your queue. If it needs to be done before other things in your queue, then your manager will need to weigh in.

And then, talk to your manager, and ask him what things he would like to be late, so that you can work on this task for the QA manager. Make it clear each time you do a task, what that is costing in work that you would be doing for your own manager. If your manager has your back, he'll tell you to do the QA work after at least some of your existing work. Then, if the QA manager stands there, let him know that he can stand there all he wants, but you're not going to work on his stuff until you've done what your manager has prioritized for you. And turn your back and ignore him.

This could backfire, and you'd end up doing more and more QA work, because your manager would rather lose you than deal with the QA manager. But if your manager is that weak, it might be worth looking elsewhere anyway.

5

The QA manager has no incentive to be responsible since s/he has discovered you will do the work if s/he pesters you. Therefore, you need to make the QA manager's problem the QA manager's problem by allowing his/her tasks to be late.

As Henry Cloud, Ph.D. writes on page 15 of Boundaries for Leaders,

In the end, as a leader you are always going to get a combination of two things: what you create and what you allow.

...

A central principle of boundaries is that of ownership.

By taking on the QA manager's problems by doing his/her work, you are allowing this manager to redirect your labor. Only when you make him/her assume ownership over his/her responsibilities by allowing him/her to experience the consequences of missed deadlines will s/he stop pestering you.

As noted in one of the other answers, prior to saying "no" to the QA manager you should meet with your manager and let him/her know that you are going to stop doing the other department's work, obtain his/her agreement, and follow up with an email confirming your conversation.

This way you'll have a paper trail if anyone tries to hold you accountable for the missed deadlines.

If you find it difficult to allow this conflict to occur, you have to figure out what is the "payoff" that you receive by complying with the QA manager. This payoff may be emotional, status, or financial.

In the end, you need to develop the courage to manage the one thing you control: your own behavior. For many workers boundary setting in the workplace is a tough lesson to learn, because the workplace frequently rewards people for doing others' jobs.

0

If I don't complete the task right away, he will often walk to my desk and stand behind me and watch until the task is done

This is not acceptable on a personal/human level. This behaviour demonstrate a lack of trust in you and is not reasonable. If you want to do things, but has no trust in you saying "I will do it", why waste time and walk to your desk ?

I think your manager underestimate his work. Another managers of other areas cannot "often walk to a desk" of an employee. They MUST ask to your manager if your time can be scheduled to follow other tasks.

In that way, bigger point here is at organizational level. If your duty is to follow this QA tasks, then move you to QA team. If your duty is another, stay on develop and do a transfer of knowledge to another member of QA team.

These include, deploying SQL code to our hundreds of databases, managing deploying testing databases to QA servers, and making checking the database schema for things that may have been missed. I am also now been put in charge of debugging the build if any developer checks in code that breaks it, handling all source control tasks involving merges and removing bad code from builds, and troubleshooting any tech problems the QA team has. Many of these tasks were previously handled by the most appropriately qualified individual, but the QA manager thinks I should all tasks myself

Management should manage also risks. In particular what I can see here is a single point of feature: what if you quit ? How will handle this tasks ? In "good" and "organized" companies there are at least two people for every "job" to mitigate people leaving.

A question for you: do you have a manager-feedback periodic meeting in place to highlight these problems ?

You must log in to answer this question.

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