2

I am seeking for advice on how to deal with the following situation:

I am a senior engineer working for a collaborative software project between 2 institutes (not companies, we do not have the same constraints in term of money funding and economical results - maybe it matters). I am the technical lead of my local team, although our roles are not clearly stated in a document or something, it stays informal.

We are working with a remote team, in another country. A few months ago we started to disagree on the software architecture, we talked face to face and had a kind of agreement but when our pull requests came in, some were accepted, some not because of the architecture disagreement.

Indeed, in order to foster code review we accept their pull requests and they accept ours.

So we started to argue and to 'fight', actually I am defending my point of view and a developer from the remote team defends his point of view. I find he is not playing fair because he uses FUD and always mentions my approach to be 'risky', which is exactly what our project owners do not want to hear.

We had various Skype meetings, but he's stubborn and doesn't want to reconsider his point of view. I ask myself a lot and I am also convinced I am right... So we started a kind of 'crusade'.

Finally we had a tough email exchange - and he talked to his boss, who called my boss, and now they are taking the theatrical approach of threatening us into ending our collaboration. My boss here doesn't want to see the project getting forked, he wants to preserve our collaboration.

So I don't know what to do ? I will meet the remote team in a few days. I would like to try to overcome our architectural disagreement on the project, speaking with all the developers. I would like to give another chance to my ideas to get into the project because I am sure it offers the best trade-offs.

What would be the best way to deal with this situation ?

1
  • 1
    How could anyone here possibly know how to navigate this minefield? You've got an unmanageable situation which calls for someone to step in and take ownership of the project and apparently that's not your job. VTC as "what should I do?" is too broad and personal to answer.
    – Lilienthal
    Nov 17, 2016 at 13:11

3 Answers 3

8

There is one clear path that you can take to instantly end the crusade: defect. Abandon your vision of the archtecture and start working to make the competing architecture the best it can be.

This is where having someone formally in charge comes in really handy. There is value in having debates and trying to find the optimal solution, but sometimes it is better to just make any decision and run with it.

"Perfect is the enemy of good", "A good plan, violently executed now, is better than a perfect plan next week." and all that.

That assumes that both "architectures" really work about equally well; if your problems cannot be solved by the other teams proposition (and vice versa), then you probably shoudn't collaborate that closely. Consider making two different projects that solve your different issues and collaborate only on the parts where it is worthwhile.

1
  • 1
    Any time two groups work together on a project, one MUST be appointed as teh one which is the ultimate decider when there are legitimate technical differences of opinion. That precludes many of these types of issues from happening. ANd when they do, it is clear who has the responsibility for the decision. You are right, at this point to salvage the relationship, being teh bigger person and making their idea work is about the only thing you have left as a path to success.
    – HLGEM
    Nov 17, 2016 at 18:56
3

It is now where it belongs, it's your bosses responsibility. You have done your part. It's now up to the boss if he is going to back his people or not, he has a lot of factors to consider, but it's out of your hands. You just need to abide by the decision professionally.

Personally if I was your boss I'd back my team and call their bluff, and if that meant losing a contract then so be it. But it's not an easy decision for many people. And I'd be unhappy that it escalated to this point before I was brought in to it.

As unofficial team lead you have no business getting into prolonged disputes you don't have the authority to manage. So keep that in mind for the future.

1
  • I'm curious is the Institute vs Industry aspect of this will mean the bosses will be in basically the same position as the OP and his antagonist on the other team. A collaboration of equals sounds great in some respects but nobody having final decision making power is a huge project risk.
    – Myles
    Nov 17, 2016 at 17:06
2

A 'crusade' is about doing something out of belief.

Having different opinions is best built on facts and cause-effect relations. If yours is having a clear process, well rounded picture, it is expected from the other one also, and so it will be comparable on same terms. If the other denies to show proof of concept, it is a good mark that he is just making it up. If the topic is really architecture related, it must have a real reason and be measurable, so you can call for this any time he states something being 'risky', and you consider it to be false assumption.

Considering Kilisi's answer about turning to next level in management for decision is formally correct, on the other hand I would first make sure the expected decision maker is not in special favor for the other team, which would pose as a clear call if they want to do something incorrect. It is better to look for someone, who is confirmed to be technically competent in the area of your software product, and either has authority to make decision above both groups, and/or have the credibility to count his response as good as a consultant.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .