I am a newish programmer (around 3 years of experience). We have a test group of about 1-3 people. So, the apps don't get really tested well AT ALL, e.g. maybe one tester checked the changed page, not the whole app. I've noticed that the business side and my boss are pretty close (business side makes our priorities), he cherry picks from the business side what he wants to work on and gives me the tough assignments with close deadlines, saying business wants me to work on it. He doesn't review any of my work, it goes to test then production. So when things fail it's blamed on my code, because he doesn't review code.

I talked to his bosses about this and they said he does other stuff and that I'm really good at coding so that's good that I do it. But he tells me everything he does and he sits on projects for months or years. There's a lack of accountability by his bosses. He talks about selling stocks with the guy next to him for a good part of the day. Then talks to business about all of the stuff he's doing, to appear that he really cares and is working hard. He tells everyone we have so much to do, when all he really does is the customer tickets, that I do as well and I have to do all the tickets that involve old client data to new client data (that's another task he doesn't handle). I also have the very sensitive, extraneous work projects. I am the only one in our app development team that has even been here for the past 3 years! They even had me refactor our entire apps with a contractor without verifying anything, I'm a junior programmer and the contractor is a 3rd party!

No one listens to me about him and I don't want to go much higher to leave myself open to burning bigger bridges (I may have already). I talked to him directly about it, but he lies and pretends to care. He said we'd share the next large project that he assigned to me, but I have to do all of the coding for it now and he just deals with the third party that we're purchasing product from with a couple of E-mails every few months. He asks me for help all of the time and he's been there about 4 years longer than me! Even asks me what my decision will be on a lot of things, because he doesn't want to make any calls. What I feel like is he doesn't want to be blamed for bugs. What is a good way of just protecting myself in this environment? I would think he has some type of responsibility if code fails, but I don't know what he says when he runs around telling everyone things. I am starting to send him and business managers some code that I can send, through E-mail, so I can say at least that I e-mailed them. I've just had him say in front of me, well I don't want to throw him(me) under the bus after he told me how I should do something. I hope this is not too long, it's not a rant.

I want to like my job more and retire with this organization. I am just trying to protect myself so I don't have stress so hard when I write code. I feel like a scapegoat they are just pushing everything through. I get really good reviews there, I got a near perfect one, but it also said to fully test my app before promoting to test. My boss said this was because of a failure in production using my code and that he had nothing else to put, and he had to put something. I told him, "you could've done additional training, as I do outside of work hours for myself". The fact is, he's not only my boss, but a coworker, the apps take two heads, as he was there before I joined, previously it was him and some other guy. What is a good way of just protecting myself in this environment?

@Dan - I understand, but it's just me and my boss, he's like my coworker. He has no team, no one else to manage, only me. He's responsible for doing regular work. If he's completely hands-off with me, with 0 review or feedback and doesn't push anything out himself that is a loss of productivity through ignorance. I could relate to your answer if I had more of a team, someone to rely on, but if I need something done and tell or ask him to do it, it doesn't get done and gets put back on me. He doesn't stand up for me in the organization neither which hinders my abilities as well.

  • What do you mean by "retire" from the place? Is it a government job of some sort? I never heard of a company offering anything other than 401k retirement plans, in America at least. – Dan Oct 19 '18 at 17:15
  • @Dan I intend to retire from my current employer, in that once I leave I will call myself retired and not try to get another job. I don't get a pension from them. I take it as meaning starvel would like to work with that employer for all of his career. – David Thornley Oct 19 '18 at 17:59

I am typically in favor of being a team play but this guy is not.

If he asks your opinion on something that is his job tell him it is his call.

Other than that focus on your job and don't worry about him.

Don't try and go above your managers head on this.

|improve this answer|||||
  • Good advice, don't let it get to you. It's going to get a whole lot worse once you learn people's salaries. Look for a new job imo. – goamn Oct 19 '18 at 4:13

The good thing about being a programmer right now is the high demand. I'm sure someone of your talent can find another position quite easily. I think that you should try to talk to your boss, if that doesn't work consider having an exit strategy.

|improve this answer|||||

Document Everything. Any communication from him should be in the form of email, to be tracked Also, start keeping log file with your daily tasks and end status of each by the end of the day.

That will help you to protect yourself from accusations that you dont do enough.

On the insufficient testing side - add testing solution to projects you work on and create test for your task.

It is much longer process than starting from scratch with all the tests, but you can develop test environment as you go, and can prove that your work is not a cause of issues

|improve this answer|||||

So when things fail it's blamed on my code, because he doesn't review code.

I think this is highly unfair for your boss. It's clear your boss entrusts you that you know how to code and develop the app. That's what you were hired for. Your boss is there to give you work and expects you to do the work. His job is to manage the in betweens from upper to lower(you). By him taking on easier tasks, that means he trusts you're able to do the harder work (things that would take too long for him to just get out of the way). If you can't do the work, then your boss does not have trust in you. If a boss has to check in and make sure each employee did what they say they would do, then he'd spend double the time to do his work. He'd have to do his work, then do your work.

It also mainly depends on what sort of bugs occur. For example, if the bug occurs only at some unlikely event then I can say it is a one off situation. But if the bug is right out of the gate because you didn't check for some common condition, then that is all on you. You code should work when a) it has the expected inputs/conditions, and 2) it fails gracefully when it has the not-so-expected inputs/conditions. Basically since your boss doesn't QA it, you should.

|improve this answer|||||
  • I've always had code reviews done. This is a 'best practice' for any development shop I've been in (and I've got 30+ years of experience). The reviews can be by other developers if not the manager. – JazzmanJim Oct 19 '18 at 18:28

Wow, that sounds like a bad environment.

Moving from test to production without adequate review is setting you (and the company) up for failure. I would not want to be in that situation.

So what to do? I can see several things you can start with:

  • Unit test the heck out of your code. NUnit (or JUnit for java) are your friends here.
  • Do code reviews, even if informal with other developers. This is something that I've had every place I've worked.
  • Become friends with your testing team. Set up integration and system testing of the entire system before moving to production. Get a signoff from testing. I'm surprised this is not done.
  • Document everything. Send emails to your manager asking for signoff. This covers your butt if/when something goes wrong.
  • Finally, nothing goes to production without business signoff. The business has (gasp) to determine if what is being delivered meets their needs.

Good luck with this. It is difficult to change a corporate culture.

|improve this answer|||||

First, forget telling your boss what to do. The higher-ups are presumably fine with what he does, no matter how it looks to you. There's likely considerations that you don't currently understand. Don't worry about what he's doing, and just try to do your own job as best you can.

Second, you're there to program, so do it. Three years is a significant amount of experience, and you should be capable of working more or less independently. In any case, that's clearly what is expected of you. You shouldn't need the sort of hand-holding you might get immediately out of college. As one of the better people there, you should expect to get the harder assignments. At my first long-term job, I wound up requesting them. Don't think of them as more work to do, think of them as ways to demonstrate your worth to those people who control your paycheck.

Third, keeping bugs out of your code is your responsibility. It isn't your boss's responsibility, and it isn't really QA's. Like everyone else, you will write buggy code, but you should try for less buggy. You should feel at least a little bad if a bug of yours causes problems in production.

You're there because people have confidence in your work, and that's a good thing. Capitalize on that. Show them their confidence is justified. If you intend to retire from the company, take the attitude that you're there to help it as best you can.

|improve this answer|||||

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