12

I am a software developer. I was under training period and I was evaluated by my two seniors. Whenever they used to give me any application it was both of them who were reviewing my application.

Both of them have different views on how an application should be built. For example, a simple validation in an email ID text box:

  • one of my supervisors wanted it to be with proper validations (it should only satisfy the rules for a well-formed email address);
  • the other supervisor did not want any validation.

The two supervisors do not review code or requirements together with each other. The first used to say "Where are the validations told you to do?" And when I added validation the other one used to say "I told you to not add validation".

When I tried to prove to them the point that the other person had told, then they would say that I am creating some misunderstandings or trying to hide my mistakes and put the blame on others. I was totally pissed off and confused with this.

So what I did was I made two applications one with validations and one without. So according to person's requirement I used to give the setup with or without validations.

So both were very very happy with my progress. Now the actual problem is delivering the final product. What should I do in such a situation?

migrated from programmers.stackexchange.com Jul 12 '12 at 21:36

This question came from our site for professionals, academics, and students working within the systems development life cycle.

  • 6
    Do you have all this in writing? An email from one person saying "Do the validations" and another email from the other person saying "don't do the validations". If so, I would confront them both with this and ask them to agree together what should be done. – FrustratedWithFormsDesigner Jul 12 '12 at 18:15
  • nope i dont have..since while reviewing the progress they come and and change the requirenments..Its all verbally..I have the points noted on a book..thats not a good proof i suppose .. – pradnya Jul 12 '12 at 18:18
  • 3
    What should you do in this situation? Quit! Do you really think this company culture is a good fit for anyone? – user16764 Jul 12 '12 at 18:51
  • 10
    You gave your side of the story, and they accused you to your face of lying. No, there is no other way out. The fact that one decision maker explicitly demanded that no input validation be done is also a huge red flag. – user16764 Jul 12 '12 at 18:56
  • 7
    You should not have two supervisors who both tell you what to do. It is ok to report on your progress to two managers should you be rotated between projects, but only one person should be telling you what to do at any given time. – Job Jul 12 '12 at 19:24

13 Answers 13

23

You need to tell them they need to talk to each other and come to an agreement on requirements. Tell them that you aren't going to waste your time doing twice the work for simple lack of communication.

  • 15
    Call a meeting with all three of you, sit down at one time, and discuss it. – Chad Jul 12 '12 at 18:59
  • 6
    Yeah but he wrote that they accused him of lying ... well something is wrong with these supervisors and i don't think that they will be happy about a metting. – Michal Franc Jul 12 '12 at 19:22
  • 2
    @Michal Franc: The job description of supervisors or managers is to have meetings. If they're not happy about that, you can escalate it to their managers. – Spoike Jul 13 '12 at 8:29
  • 1
    @Allensb and Chad : The OP is a trainee. How does he tell his supervisors how to run business? Is your advice practical? – scaaahu Jul 18 '12 at 6:06
  • 2
    @scaaahu: You are not telling your boss what to do, you are telling them what you need to to your work. One of the main responsibilities of a boss, IMHO, is to make sure their subordinates have the resources they need to do their work. The "ask them to name someone you can discuss it with" is meant as a proposal for how to solve the problem; if the boss has another idea, s/he's of course free to use that. – sleske Jul 18 '12 at 7:46
18

I don't see a big problem here. You are given requirements by supervisor A, to do X, then supervisor B comes and says to do Y which contradicts X.

Answer to B that his request contradicts A, by quoting the instructions given to you previously. Refuse -- in such an hostile environment -- to work on requirements by verbal communication. Insist on your superiors to send you a mail with their requirements. It reduces ambiguity and you can re-check your instructions when in doubt. And of course you have evidence that you did what you were told, if blamed for your supervisor's lack of communication.

Note, if they refuse to write you an email, but only give you verbal feedback all the time; No problem. Summarise how you understood your requirements yourself and ask them to confirm your summary, before writing a single line of code.

10

This is not an uncommon scenario in any profession. I had it happen to me in two other non-programming jobs.

Your error was in performing work while there was a disagreement about what consitituted acceptable performance. Do not ever let anyone give you conflicting requirements without putting the conflict in writing, sending it to both people to resolve and not performing the work until you have a written answer back. If they do not come to an agreement, involve their boss.

It is your reponsiblity to identify such conflicts and bring them up to be resolved. It doesn't have to be nasty, just an email that states, "Bob told me to do this and Jane told me to do that. Since I cannot do both, I need a resolution on which is the preferred method." In this case it is obvious the direction is mutually exclusive, but in some cases you may have to explain why doing X means you can't do Y.

Now where you have to be really careful is when the reason why they disagree is political not a genuine technical difference of opinion. In this case it is especially important to stay neutral in what you say and how you say it. You don't know who is going to win the political fight, so you don't want to get the wrong person mad at you.

  • He did all that. The response was to accuse him of, oh, how did he put it? "creating some misunderstandings or trying to hide [his] mistakes and put the blame on others. – user16764 Jul 12 '12 at 20:46
  • 2
    No he didn't. He did the work both ways with the conflict unresolved. He got nothing in writing. – HLGEM Jul 12 '12 at 21:02
4

Good and clear communication within the team members is MUST for software development project! Otherwise, it is a big candidate for failing.

Overall, mis-communication within the project members and project stakeholders is accountable for 80-90% of failure reasons.

How to fix it?

  • Make your instructions extremely clear (aka, clarify every detail of requirement and make them to signed-off requirements), get your supervisor to email you what you are expected to do. Have all your requirements and tasks to be recorded regularly. Thus, in the case of failure you would not be hold liable. Most importantly, no-one black-mail you or your job.
3

You may need several strategies. In all honesty, it could be a problem that you ended up coding two projects as you basically wasted half your time by doing the same work twice. As a first job failure, this isn't a huge one - after all, some of the blame is on your management. But it's not a mistake you want to repeat.

  1. Start with a meeting - talk to others in your company about the best way to set this up. It can be as informal as email - shooting a message to both of them simultaneously asking for clarification on discrepancies. If one answers without CCing the other, copy it yourself and say "do you agree?". Or it could require a face to face or conference call where you can go through the points one by one and get an agreement. Essentially, you need to force a context where one cannot give you guidance without the other hearing and agreeing to it.
  2. If it can't be resolved this way in a timely fashion, escalate. These two can't be your only management. If they can't reach agreement or take action to close the issue within 1-2 meetings or 2 days of email, escalate to their bosses. Explain the predicament focusing on the problem - the team lacks agreement on how to move forward. At this point, you really want the guidance in writing. It's fine on a day to day basis to get guidance in verbal form, but you've been DOUBLING the work required of you and not actually solving the communication problem. This is now an issue of your efficiency and you need the backup.

This is a grey area and I don't agree with the hardline of some posters. I have been in a position where I had to proceed with work even though management couldn't agree, but I knew and held myself responsible for the hit of my own lost productivity while I worked to resolve the issue. When doing so, I made it abundantly clear that the company was wasting money in terms of my salary being paid while the strategy was unclear.

1

Does your company operate a wiki? If so then perhaps the simplest solution is to require that they give you a written spec for what they want you to do, as a wiki page. That way both supervisors are required to put their ideas into a single page (hopefully working out their differences as they do so), and the edit history will provide a clear record of who said to do what, and when.

Wikis are invaluable for technical/software projects, in my opinion. So I hope your company is running one. If not, you might want to see if you can convince them to give one a try.

1

i'm not sure you're using the word 'supervisors' correctly. it sounds like these are not supervisors, just more-senior members of the team evaluating you. This is backed up by their response to your mentioning the conflicting requirements. Supervisors tend not to get defensive about things like that, only people afraid of looking bad do. go to the team's leader and tell that person what's going on. Arrange a meeting with all 4 of you, and above all else, GET ALL REQUIREMENTS IN WRITING.

1

Ask your direct supervisor what to do. While there can be multiple senior members of the team, you only have one person who writes your appraisal. That is the person to talk to when you have issues.

At the moment, I have my direct supervisor, her boss, (her bosses boss, etc) plus someone I am matrix managed to. When there are conflicts, I ask for clarification. The matrix manager is on a different project so we don't have "issues in the weeds of a project."

1

Your problem is not your supervisors. You could have the same situation if you have only one supervisor who keeps changing requirements. He could tell to include the e-mail validation and then changed his mind next day. How do you cope with this?

Your problem is the lack of written requirements.

Had you had well documented requirements, all you had to do is to write software according to the requirements. E.g. if the requirements says e-mail validation shall be implemented, you do so. Otherwise, you do not need to do it. If you are asked to implement it, ask for the spec.

  • 1
    Actually, working without detailed written requirements is common and encouraged in most agile methods, so you cannot dismiss it out-of-hand. However, this only works if everyone plays along (and some amount of written stuff is still needed). – sleske Jul 16 '12 at 10:39
  • @sleske: The OP just told us why agile method is bad. – scaaahu Jul 18 '12 at 2:47
  • I respectfully disagree: What the OP describes has very little to do with agile methods. If your supervisors refuse to cooperate and coordinate, no method is going to save you. – sleske Jul 18 '12 at 7:13
  • @sleske, well-documented requirements can save him as in my answer. Borrowing from what you said "working without detailed written requirements" hurts him. – scaaahu Jul 18 '12 at 8:31
  • 2
    Yes, well-documented requirements certainly help. I just wanted to point out that a) that's not the only way, and b) even with good reqs you typically still need to ask questions regularly, so good reqs alone are not enough. – sleske Jul 18 '12 at 8:56
0

I'd leave. But if you want to stay and try and address it (and address it you must or life will be hell for you), then I would do the following:

Arrange a meeting with each of them.
But don't tell each one of them that the other is also going to be there. Strongly consider inviting someone else or their manager.
Yes this will all really take courage but you can do it!

Be positive, be complimentary, talk about your enthusiasm for the project to put folks a little more at ease and then go right to it. "I'm horribly conflicted because I'm trying to do a good job but I've been given completely contradictory directions from two different people and I'm really confused and upset."

Be aware however that you are going to need to BE HONEST UP FRONT about what you do with the two version to try and do the right thing, but you reflected later and realized what a mistake that was. Oh and bury one of those versions

  • You say to be honest and up front, yet you also say to invite them both to a meeting by not telling them the other is going, that doesn't seem honest or upfront to me. – Rhys May 24 '13 at 8:59
0

By definition you cannot have two supervisors someone is your line manager do what they say and document it.

Or as a professional developer just implement basic validation for email ie somthing@somthing its the professional thing to do - the o reily book on regexes is a good place to start.

  • 5
    Have you never heard of Matrix Management? Quite often in an MM organisation you report to two people for everything you do, and have to resolve conflicts between both of your bosses yourself. – Mark Booth Jul 13 '12 at 13:37
  • Yes I have and we used it at BT but I still had one boss who wrote my appraisal and at the end of the day he was my boss even though i might get loaned out to other projects. If your doing MM as a free for all your company is dysfunctional - This is how Hitler ran Germany look ho wwell that turned out. – Neuro Jul 13 '12 at 19:38
  • 5
    I would change the original answer to "Having two supervisors is a sign of a dysfunctional organization... – mhoran_psprep Jul 13 '12 at 23:26
0

This is a difficult situation and why having a single line of report makes sense.

Sit down with both of them and explain that you cannot do your job properly with conflicting requirements. Give them concrete examples of when this has been a problem and explain how frustrating it is for you because you want to do your best but cannot because of the situation.

Suggest to them that they institute a police of written requirements and that a change management process be put in place requiring sign-off from both of them before requirements are changed.

-2

When you're a software developer, the work you do is defined by a (series of) ticket. You receive a ticket which defines a task which you must complete. The ticket is the Bible when it comes to what you need to deliver. If the ticket does not say you need validation, then you don't need validation (except to the degree where you are protecting from malformed input, nulls, SQL Injection and so on, to the degree to which such things make sense). If it comes up in code review that you needed additional validation, have the reviewer edit the ticket and tell you to add validation in the ticket. Then if you add the validation and the other reviewer asks why, then you point to the ticket and say "it says in there to do validation; if you don't like it, take it up with the person who wrote that, not me, I do what the ticket says".

The one important part about this is to never edit your own tickets. If you edit the ticket, it looks like you're just adding stuff because you want to, without understanding a larger context. Always have someone else (ideally someone higher than you on the food chain, and optimally the original author of the ticket where possible) edit the ticket.

  • This kind of "passing the buck via tickets" might just about fly for a junior developer, once you get above that you'll rapidly discover you can't just sit there and say "because someone else told me to". – Philip Kendall Oct 15 '18 at 22:00

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