4

This question already has an answer here:

Since taking a job about year ago as a senior developer, I've seen my fair share of work that, let's just say, is less than stellar. The company is full of developers (for the sake of this question their name is "Joe") and Joe does things that do not follow proper procedures, break quite often and create lots of maintenance work to get running again. I'm usually the guy they go to to figure out the problem, and I can spend days trying to peel away their stupidity. Joe is not a direct report of my manager either, my manager understands my pain, but doesn't do much more than that.

It's not that Joe is a bad employee, he works hard and is well respected in the company. He's just not up with the times with modern software development, and some of the key decisions he makes are making things more difficult for lots of people (not just me).

I've also approached Joe before with an offer of, "Hey, have you ever seen this, you should check it out, I'll be happy to walk you through it". It was quickly rejected.

I'm frustrated, because I know better ways to do these things, things that have a proven track record in my previous companies as working. I was hired to bring these ideas to my immediate group, but I'm finding my job stretches out to Joe's work as well often enough that I'm getting pretty fed up having to deal with his work.

My question is, how open should I be about Joe concerning their shoddy work?

Do I?

  • Go to his boss with the basic idea of "Joe does shoddy work, he should be doing X, Y, Z, can I help?". From the conversations I've had with Joe's boss, he'd probably be greatly concerned these processes are not being followed.

  • Have a direct conversation with Joe and basically tell him in nicer words, "Dude! your work sucks".

  • Should I just stay quiet and be the voice of reason when it is asked of me?

Please help.

marked as duplicate by Chris E, Mister Positive, scaaahu, gnat, Draken Feb 20 '18 at 8:01

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    Does Joe's "shoddy" work impact your ability to do your job? – Mister Positive Feb 19 '18 at 17:32
  • 1
    @MisterPositive, yes, I get tasked to figure out why our two systems don't talk, and I can spend days trying to figure it out. The original post hinted at this, more or less – Jay Feb 19 '18 at 17:43
  • @raterus something on the lines of what Masked Man said, if you were hired as a Senior Developer, then I guess that part of your job is to help other developers improve their coding skills and stick to company practices...maybe this leaves you less time to do other tasks, but seems that helping Joe and similar may actually be expected from you. – DarkCygnus Feb 19 '18 at 17:55
  • @ChrisE, I don't feel this is a duplicate because in my case, Joe is a great employee, works hard and tries to do a great job. At the end of the day he gets what's asked of him done, there is just a trail of technical debt to clean up behind his "success", as well as things he actively does to break working development – Jay Feb 19 '18 at 17:58
  • 1
    the simple answer here is generally "no". Note that if this is yet another question about software, you'd spend most of the rest of your life complaining about bad code you found. Like, you'd have to dedicate say 6 hours a day to that. it's just a nonstarter - forget it or go work in another industry. – Fattie Feb 19 '18 at 19:31
3

Whether imagined or not, I detect a lack of tact here. If your goal is to improve Joe's work, and not just to blow off steam, you should think of another approach. You should be careful not to come across as a prima donna or know-it-all. Most devs think they write the world's best code, and all but one are wrong.

Instead of pointing out how crappy Joe's work is - to either him or his manager - consider sitting down with Joe to discuss the issues that you're seeing and to suggest alternative approaches that will be easier for everyone - not just you. If you try to initiate a genuine discussion by saying that his work product sucks, Joe will naturally become defensive and you will lose your opportunity.

Instead, show him the benefits - from his perspective! - of doing X, Y, and Z. If you can get across to him that you want to help him do his job better, you have a better chance of succeeding.

If that doesn't work, well... then you can talk with his manager. But going about it this way establishes your good faith and shows that you are trying to solve a problem, not make yourself look better at his employee's expense.

1

You are in an unenviable situation. I take it that since you are senior developer, you are responsible for technical delivery of the module/sub-system. If that is the case, any failing of the module/sub-system would be attributed to you. In this case, it is only logical that you assume all responsibility and take charge of the module/sub-system. First, you must take charge of your team (it does not matter if there are members who report to other managers).

You should be the one to tell them what to do and tell them, every morning in a standup meeting and then document it and send it across. Then track the variance, which actually is part of your responsibility. Send note to developers who have had variance and be clear, detailed and explicit about it.

This brings discipline to the team and their work. If there is a regression break, mention that in your mail and fix responsibility on the person to fix it.

This way, not only will you be driving a better process, you shall also be accumulating evidence against 'Joe' and his incompetence. Yes, if you can't help Joe to help himself, you have to get rid of him.

Once you have sufficient evidence, take it to your boss and ask for a replacement for Joe.

Your situation unfortunately calls you to be more of a manager than a pure engineer in this case; regrettable but a reality none the less.

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