55

I work as a team leader in a team of 6 (2 very senior devs, 1 senior dev, 1 medium level dev, 1 junior dev and 1 senior graphic designer). Our client has his own internal team of 5 (1 architect, 2 senior devs and 2 junior devs).

The performance and the skills of the internal team are extremely low (commits that don’t compile, even tags, merges that break/remove working functionalities and that reach production untested, nonsense questions, months to complete simple changes, etc.) and we are always fixing their poor work. For example:

  • We fixed dozens and dozens of bugs opened in the last year and a half and that were assigned to the internal team, spending less than 30 minutes on each (even in the part of the project we have never worked on before);
  • A project was assigned to the internal team and was estimated at 3 months: after 6 months they admitted they were unable to complete it, so the client assigned it to us. In 6 months they did less than 10% of the required work. In a month and a half we closed this project;
  • We had to spend more than a week to fix a mess in SVN they created

From the beginning of this year, the client more or less bypassed his own team and assigned everything directly to us (in fact our team will soon grow by at least 4 devs). The other team didn’t take it well and are trying to sabotage us; we need them to contact other suppliers because for their internal policy; 2 suppliers cannot speak directly without client mediation and they literally take weeks to simply forward an email. When we need clarifications on code they developed, they are elusive and don’t provide any useful explanation. They didn't give us resources or privileges that we required in order to complete our tasks, etc.

The client is well aware of the situation but he seems he wants to do nothing to solve it. Does anyone who went through a similar situation have some advice on how to solve this problem?

  • 3
    @Allerleirauh client is a big (mainly national) company with more or less 2000 employees. This company has an internal IT department but is not its main focus (about 100 people) My company is multinational with 20000 employees. I work in the IT division. Your client is not assimilable with ours: internal IT decides autonomously the tasks that should be done, at what priority and who will develop them (internally, externally and to which supplier) – Elitot Confused Apr 5 at 12:08
  • 36
    Your company has 20,000 people? This is not something you should even attempt to manage yourself, as you are the team leader, not the one actually responsible for the contract. Tell your boss the issue; they will tell you what to do. – MineR Apr 5 at 13:50
  • 4
    By "the client is well aware of the situation" do you mean that you, your management, or whoever is in charge of the contract in your company, has communicated with the person or persons in the other company who are in charge of the contract and responsible for approving payment of your company's invoices? From other things you have said, it sounds like you mean "I sent email more than once to the people I normally communicate with on their team". If that's what you really mean, then that's not "the client is well aware of the situation". – Makyen Apr 5 at 15:32
  • 3
    You keep saying "client" but that doesn't tell us very much. What is your relationship with this other organisation? Are you a consultancy? For what purpose was your firm hired by the client? – Lightness Races in Orbit Apr 6 at 14:10
  • 1
    Please add this context to the question :) – Lightness Races in Orbit Apr 9 at 10:04

12 Answers 12

3

My last role I was in exactly your situation.

This sounds harsh but shut the other team down with extreme prejudice. Do not talk to them, help them, support them, or allow them to touch what you are doing. If they are causing problems, document them immediately (only if you have supporting evidence, otherwise forget it), and escalate as high as you can on your side.

Trying to indulge or accommodate them in any way, even as an attempt to improve the relationship, will only be taken as weakness by the management / leadership teams on both the supplier and client sides.

If this other team are as bad as you say then they can raise the roof about your treatment of them and they will be ignored, overruled, sidelined, and eventually (if you're lucky) removed altogether from the project. Based on what you have said, their own leadership think they're unable to deliver anyway.

These dual-team environments are toxic and do not work. Either you as the supplier have delivery responsibility for the software, or the client team has. If you have delivery responsibility then you need to make sure you and your team deliver the software, because if anything (including the client's own delivery team) prevent you from doing that, you and your team will take the blame.

146

Please don't mislead yourself, you are nothing more than an external contractor to the company. You are NOT part of the company, so there is no legal or moral reason to grant you anything more than you already have. You don't belong to the company, you are not their human resources, you work as a provider-client relationship.

You have been paid, right? There should not be any reason for you to go above the boundary, it's not your company. Please don't be emotional. If you're not given resources, simply ask. If not granted, it's not yours.

Someone that pass through a similar situation has some advice on how to solve this problem?

Simple. Send your invoice to your client for your time.

  • Comments are not for extended discussion; this conversation has been moved to chat. – Monica Cellio Apr 7 at 19:42
  • I agree with this answer, also worth mentioning: if you don't like it, move on and get a contract you enjoy. – SaggingRufus Apr 8 at 11:17
58

This is normal. The client doesn't have a good development team, so they contract some of the work to you. Their development team realise that you are a threat to their jobs so they have no incentive to help you.

Their manager should have been aware that this was going to happen, and there are various things he can do to solve it, but that's not your problem.

Your problem is how to ensure that these delays don't make you look bad to the person paying the bill. Make sure he's aware that there are problems and ask how you can help him.

Maybe he'd like to know about email queries that are unanswered after a week, or maybe he'd like to be CC'd at the start. Maybe he'd like you to fix the other team's bugs and just bill him, but maybe he wants to approve each one.

  • 12
    Presumably there are formal contacts for the outsource company and the client company. Problems should be escalated to that level. The IT company should give regular feedback from that level. We completely X, and Y. Z will be completed in 3 weeks. "Elitot Confused" has been waiting two weeks for aaa so we do not have an estimated completion date for AAA. "Elitot Confused" has been waiting five weeks fo bbb and so we have stopped work on BBB. and so on. // Short version - Document everything!!! – MaxW Apr 5 at 17:55
  • 2
    Yes, "document everything" was the phrase I was looking for somewhere in these answers. That's the most important thing. – Dannie Apr 7 at 18:21
  • 2
    @MaxW -- Your comment would make a good answer. – Jasper Apr 7 at 20:56
27

Email the requests to the client team, and follow up with an email after the amount of time it would have taken you to comply with that request. CC this (nicely worded) reminder to the boss of the client company. They will either ignore it or help you out. If they ignore it, you have the paper trail to prove you are not the ones slowing the project, if they help you, all the better. After some iterations the boss of the client company will think of a way to reduce his spam-load, and give you a quick pass through (Some person just passing along the messages, as your own personal VPN).

In parallel, try to establish a personal relationship with one or more members of the other team. The petty communication outages that they produce are a sign that they harbor personal resentment. This can often be remedied by face-to-face meet ups. I stress personal relationships. Not the 'let's implement X'-kind of conversation, but the 'public transport sure sucks, huh?'-common ground kind of conversation. Let them see the humans in your bunch of know-it-alls , and try yourself to see the humans in their bunch of nitwits.

  • Knowing the client, they will ignore the spam. We had a lot of chats and meeting with person of that team. Usually they stay on their ideas and we stay on ours. usually again ours proves to be correct and the client knows it (because we use solid proof to demonstrate our ideas) – Elitot Confused Apr 5 at 12:18
  • 3
    @ElitotConfused If they ignore the spam, you will have a BS job, but a paid BS job - find the mental place to deal with that, or quit; --- about the meetups: I stress personal relationships. Not the 'let's implement X'-kind of conversation, but the 'public transport sure sucks, huh?' kind of conversation. Let them see the humans in your bunch of know-it-alls , and try yourself to see the humans in their bunch of nitwits. – bukwyrm Apr 5 at 12:48
13

Client is well aware of the situation but he seems he wants to do nothing to solve.

So, you've brought this to the attention of the "powers that be" and they're not interested in fixing the problem. I assume that they pay you for all of this "extra" work that you perform? If so, then either continue performing the work and continue getting paid for it or fire the client. There are no other options.

  • 1
    this is not helpful if for example boss of own company and boss of client insist on this relationship... – Allerleirauh Apr 5 at 7:41
  • 2
    @Allerleirauh "there are no other options" may not be helpful but it is the right answer – Pierre Arlaud Apr 5 at 12:02
  • 1
    We work on a body rental type of contract. There is no extra pay. the price is fixed at the beginning of the contract. – Elitot Confused Apr 5 at 12:23
  • 3
    @ElitotConfused I understand you saying that the cost per hour is fixed, but is the number of hours fixed or the product delivered (or both)? If it is both, you should find a new job. Otherwise, the cost has been increased--either they are paying for more hours (overtime) or they are paying for more hours (because it will take longer to get their product delivered). – user3067860 Apr 5 at 18:33
  • @user3067860 the only case where the client pays more is when the team is somehow enlarged. For every other situations price is fixed in term of hours we are supposed to work. – Elitot Confused Apr 9 at 6:37
7

Ask for a regular status meeting with the client (hopefully you have that already but I get the sense that you don't). (NOTE: By regular I mean at least weekly, if not 2-3 times a week. If you can swing it, a stand up every day would be ideal.) During this status meeting, talk about the roadblocks you currently have... list them one by one, what you need, what you are waiting for and from whom, and what the dangers are if the request isn't filled in a timely manner... the project quality will suffer, you will ship late, etc.

We sent an email last week that we need X from the suppliers and that we would need it within a week in order to not put the project deadline in danger. We are rapidly approaching a week since our request. Do you have any updates on when we might get X? If we don't get it by this Friday, we will have to push back the delivery date by a week.

We sent an email last week to Jim asking for clarification on the Widget code. We can't proceed until we get that clarification. When can we set up that meeting?

and so on. Don't be accusatory or emotional, be factual, be clear about what problems this issue is causing or will cause to the project. When you don't get X for 3 weeks and you needed it the next day, no one should be surprised when you state that the delivery date will slip by 3 weeks.

Once things start looking like you won't ship on the initially agreed upon time, start communicating regularly with the client management. Inform them that the X, Y, and Z delays that you have notified them of are of their teams' doing and will put you past the scheduled timeframe. Any additional work past X date will incur additional at the rate of $Z. (Maybe it's too late to do some of this but you can at least start dropping hints of contract renegotiation due to delays beyond your control and of the client company's making).

  • 2
    Yup. Status meeting should have the Joe Friday approach. "Just the facts sir..." It is not a place to brainstorm solutions. So the client contact takes a todo to have Joe at client's site respond or to find out when Joe will respond. – MaxW Apr 5 at 18:03
3

Document each request, each complaint, and the hours wasted trying to work through the internal team to get the resources you need.

Right now, the internal team is fighting you because, so far, you have proven more capable of handling the application and are upstaging them - they are retaliating by making things more difficult for you.

Continue to provide the support you have thus far, and keep your client in the loop about all of these hang-ups. CC them, if you can, so that they are well aware of your attempts to keep things moving.

Eventually, they will have to confront this issue - but this is not your problem to solve. Your only concern should be getting your own work done, and showing that you are doing everything you can to get the resources for that work.

So long as you are doing your work to the degree you've described thus far, with the only complications being the internal team, they should have no reason to break off ties with you (though, they may want to consider restructuring that team - but again, this is not your problem to solve).

  • +1 this seems the right answer. An excel sheet with emails and how long they are delayed, can go a long way. – Rui F Ribeiro Apr 6 at 11:08
3

Here is what I read:

  • We are great
  • Client not so much
  • They don't like us

Pro-tip, sometimes it better to be liked than right. Who do you want to be friends with more, the boss man, or the workers? Boss man pays the bills so always be his friend. But sometimes it helps to be friends with the workers also.

So instead of "Us" versus "Them", try to make it "We".

Rule #1: BE NICE

I'm sure you are always very professional, but from what you said in your post, I'm doubting you are always nice.

Sometimes a friendly visit to the client, box of donuts/candy/meat-veg tray/ice cream/movie tickets/etc... can go along way. Basically say, "we want to get along, we want to help you, we are on your side."

This isn't so much a reward, since it doesn't sound like you are in a position to reward or punish. Its more about trying to change the perception of the other team about you from "they are our enemies" to "they are our friends".

Rule #2: Be in control

If I was manager in this situation, I would say, "how can we manage the code better".

If possible, I'd maintain a separate Git repo, where you can add their contributions as separate pull requests. If they are stuck on SVN, so be it. You can give them your contributions as big single commits. Even if you have to move the code manually, its better than the client team screwing up the repo your team depends on.

Don't let their bad commits and bad SVN practices control your productivity.

Also, like the other posts said, document communications in case you need to CYA.

Good luck!

  • 3
    Seriously? You're suggesting to reward obstructionist and unprofessional behaviour by buying another company's employees .. ice cream and movie tickets? – Lightness Races in Orbit Apr 6 at 14:14
  • And SVN is not the problem here. – Lightness Races in Orbit Apr 6 at 14:14
  • @LightnessRacesinOrbit sometimes the carrot works better than the stick. It’s not about “rewarding” so much as strategies for controlling the situation to obtain the desired outcome. – Turtle1363 Apr 6 at 14:18
  • 4
    If I were wilfully ignoring a team for weeks on end, then they turned up to give me movie tickets, I'd find that really awkward and weird. – Lightness Races in Orbit Apr 6 at 14:26
  • 2
    @LightnessRacesinOrbit, maybe? Relationships can be awkward and weird. That's when you pull the team lead aside and say something to the effect of, "I feel like our communication hasn't been the best lately. I want you to know that we are here for you, and we all have the same goal of wanting the company to succeed. I just wanted to give you this small token, I hope you enjoy it. If you need anything please let us know. We are looking forward to the new challenges and opportunities in the next few weeks, I hope I can count on you for your support." – Turtle1363 Apr 6 at 14:32
1

Where is the client internal team located? Is there a possibility that somebody from your team can go to the site where the internal team is located? I have had experiences in the past with teams that were difficult to work with, and I find that the best solution is to just go down and talk with people directly. I have had to spend entire days tracking down information myself from internal teams, just because the communication and initiative was simply not there. There is no need to be abrasive, or confrontational, just show up and get the communication lines established. Find out if they have a weekly meeting and have someone attend it. The bottom line is that the other team is struggling and your work is showing that to everyone. They are defensive for a good reason, so just show up with the attitude of "how can we help each other?". Maybe you can start doing some mentoring, or help them improve their process. You are hired as consultants not just to deliver the project, but to enhance the company/team.

1

Other answers covered how to cover the financial side of the things. Now, if their damage also causes you unnecessary anxiety and setbacks that extra money alone can't fix, you can eliminate that damage alone. For example, with these measures:

  • Don't work on the same codebase. Only merge their changes occasionally (to drastically limit the time spent on pointing out their flaws again and again) and only after they pass your scrunity.
    • You can rationalize this to the client as smth like: "Their code is not up to our standards so we have to bring it up to them each time before incorporating it -- otherwise, it costs much more of our time and your money down the line".
    • Incentivise them to merge your changes back opportunistically by smth like: "Otherwise, it will cost us disproportionally more time on the next merge."
    • You mentioned that they are using SVN. You can use Git internally 'cuz it features much more advanced branching and merging logic, making complex merges much easier. (Git comes with a two-way SVN bridge out of the box.)
  • Don't fix their bugs for them as an integral part of your work but rather as a separate activity (e.g. as a part of the above-mentioned scrunity) so that it's easy to separate it from your regular work and easy to bill for it separately (plus the client will see exactly how much their staff's incompetence is costing them).
  • If your part of the work depends on some modules provided by them, warn the client that you will not complete that part of functionality if their module doesn't arrive in time. Only work on that module once the client explicitly asks you to and in the same manner as above.
  • Offer to coach their staff as an extra activity but only if they themselves are willing -- from code reviews (e.g. during the above scrunity, let them themselves address the flaws) to teaching them the best practices.
0

So I've read the existing answers and there's more to deal with.

Send your invoice to your client for your time.

Correct; however we also now have an employee morale problem on your side; or if we don't we will soon. Whatever cheapish things you can do to keep morale up, it's time to start doing them.

You may have to approach your customer with something along the lines of "Due to certain problems on your side causing an employee morale problem for us, we have to increase our future rates for you by about 10% so that we can buy perks for the employees." But please, find somebody more diplomatic than I.

  • 2
    OP is not the boss, so I don't think this answer makes sense for them. – user87779 Apr 5 at 20:03
  • @user87779: In which case the morale problem will have to propagate upwards until it does reach someone who can act on it. – Joshua Apr 5 at 21:52
  • exactly, i agree. So maybe edit the answer to say that, and maybe a way for the OP to help if happen if you think they can. – user87779 Apr 5 at 21:55
  • @user87779: I don't suppose you could splice an edit in? I've ran out of ability (which is why my rep stays low...) – Joshua Apr 5 at 23:04
  • huh, I'm not able to either. I wonder if the question was protected or something weird. – user87779 Apr 6 at 0:34
-1

The customer (here: the client) is always right. As long as the customer pays. So as long as the customer pays for every hour you work, it doesn’t matter if their team is lazy and incompetent. If your job takes three times longer, you get paid three times as much.

Of course, as long as the customer pays. So you should have a log about anything you asked the client team to do, and when it was delivered, and with ho many bugs. So if the customer doesn’t want to pay, you can show them why things take so long.

  • 1
    The OP has said they get a fixed amount of money. I don't know exactly what that entails, but in a few other comments they seem to imply they don't get paid more for working longer. That seems crazy to me, but you may know more about situations like that. – user87779 Apr 5 at 22:27

protected by mcknz Apr 7 at 19:02

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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