Question: 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.

Answer: 
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.
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.