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?
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.