8

I am from a third world country that has a bad image in media nowadays.

I work in Belgium, in a good company, as a software engineer.

I am working on a very specific programming language that there is no one at the company knows how to program with it (of course, not for lacking skills but for lacking time to learn).

We use English to communicate in the company. We got a new colleague, fresh, coming from a math background and doing programming (well, I don't know if you believe me or not, but here it is normal to teach new people for like 6 months how to program).

This new guy started working with me on my tasks, which at the beginning was good because I started to have team feelings and started to care more about the code.

However, he is less than a junior, he is 6-months-old in the software domain, he knows nothing about data structures, algorithms, design patterns .... etc.

He is local, and he speaks the same language as my manager (who knows nothing about software development, but he is in charge because the former manager left and they are probably searching for a new one, the current manager comes from the marketing department).

The three of us meet mostly on Mondays to discuss the plan, and for some reasons, when we have conflict in opinions, the manager chooses the new guy's opinion.

I tried to show him the negative sides of his decisions, but showing why the suggested approach will not scale. I calculated the complexity of the suggested approach and compared it to my approach and showed him formally (using math) that my approach is better.

However, it is always the case that my opinion is never taken into account. So I lost motivation, and I just stopped suggesting.

What makes it worse that they speak their language together over the coffee machine for example, which I don't understand and while that they speak about the project.

I must say that I am a very quiet person, and maybe I have a weak personality (I don't fight for my rights!)

Suggestions are appreciated.

  • 4
    this question is itself an answer to workplace.stackexchange.com/questions/11816/… – Kate Gregory Aug 6 '17 at 13:25
  • Try using different ways of making your point. Math will work on some people and completely alienate others. Metaphor, similar situations and examples might work better. Different strokes for different folks. Not a complete answer but if you get a feel for what makes them tick you may bond a little more easily in these discussions. – LoztInSpace Aug 6 '17 at 13:34
  • "here it is normal to teach new people for like 6 months how to program" No, not really. It's normal for new people to be less productive and to take time to get used to working with production software sure, but that doesn't seem to be what you're describing. With what you've written down here I can't tell if you're simply incredibly jealous of having to share your manager's attention or if there is a legitimate issue between you and your manager. – Lilienthal Aug 11 '17 at 10:09
  • And there could be dozens of reasons for it. Maybe your new colleague is much better at explaining things non-technically. Maybe you're wasting effort on things that aren't required and your boss loves the Good Enough approach the new guy is taking. We don't know and unless you specify what you actually want to achieve we can't really provide you with answers here. – Lilienthal Aug 11 '17 at 10:09
  • Showing me that an approach has lower computational complexity would not necessarily convince me that it is better. For example, the constant factor may be so high that the other approach is faster for all problem sizes I care about. Or the other approach may be faster on 99.9999% of inputs. Or it may be good enough for all the problems I need to solve, and simpler to implement. – Patricia Shanahan Jan 4 '18 at 0:28
21

You don't need to handle the new graduate. You don't even need to handle your manager. You do need to handle yourself. So, ask yourself, seriously, what is going wrong here?. You think the "wrong" choices are being made. The manager is choosing what the new team member wants instead of what you want, and you think this is because of trust. This has been going on for a while: have there been any consequences? You're worried things won't scale, things will be slow when the system is larger - has that happened?

Your manager is telling you more than just "who is trusted on this team". Your manager is telling you what the priorities are on this team. I have met many people who advocate doing things a particular way because of performance, scaling, flexibility, and other future goodness. Often, this way will take longer or otherwise be more expensive, and as a manager, I have to weigh that against the chances of needing that benefit in some future that may never come. It doesn't matter how brilliantly you proved that your way will be better when we have a million users if I don't care about the performance then, because when we have the revenue from a million users we can rewrite it, what matters is getting the first thousand users and to do that we have to ship it.

If things go wrong, and you're sure that it's because it wasn't done your way, you can totally tell your manager that you predicted this. But if nothing is going wrong, how about relaxing and letting your manager manage the project. You provide information: "doing it this way will give better performance" and your team-mate provides other information: "doing it this other way will ship a week earlier" and your manager chooses "ship a week earlier". OK, done. This isn't about sharing a language or being friends over coffee, it's about listening to business needs and ensuring your technical strengths serve those needs. Now, if you feel your manager is totally wrong on business needs, and that you know better, then looking for a different manager (inside this company or out of it) or working very hard so that you get promoted to being the one who makes those decisions are both good plans. But see how that has nothing to do with the new team member?

  • 1
    It can be too that the manager is not competent enogh to understand things like scaling when he really will be concerned about. But yes, he's the one making the decisions, whatever they're right or wrong. – Walfrat Aug 7 '17 at 7:24
  • I think this is the right answer, it advocates being able to take a step back and look at the situation objectively instead of obsessing and demoralizing yourself over small things such as coffee breaks. If more people could separate objectivity from subjectivity then I believe there would be less of this type of problem around the world. – Joe S Aug 7 '17 at 11:23
  • 2
    I might add, work with your colleague to come up with a solution before talking to the manager. You need to convince him your solution is best (which may involve training if he is as new as you indicate)since the manager is not technical. If you two are in agreement, the manager will be much happier. – HLGEM Aug 10 '17 at 18:59
  • If things go wrong, and you're sure that it's because it wasn't done your way, you can totally tell your manager that you predicted this. - this seems like a bad idea. Saying "I told you so" is unlikely to improve the relationship / trust between yourself and your manager. – Justin Aug 11 '17 at 13:19
  • I would never word it that way, @Justin. But "oh dear, this is what I was worried about. Because X has happened, we can't Y, as we could have if we had A and B as I suggested. I wanted to prevent this." It has to be said. You can't pretend it has just struck out of the blue and shocked you all. – Kate Gregory Aug 11 '17 at 13:38
16

Look for another job. Simple. Yes, not nice, but there is little you will be able to change in your situation.

  • 5
    ...and don't feel bad about leaving the new one with a thing that might be too much for him, or something like that. You're not responsible for the companies success, you've the right to quit anytime, and if this causes problems for your department it's up to the manager to solve it. If the manager just then realizes that the new guy is not good enough, well, bad luck. – deviantfan Aug 5 '17 at 8:10
  • The question might as well be "How do I change my boss and coworker?" which makes this answer even more obvious. – Peter - Unban Robert Harvey Aug 6 '17 at 19:52
0

Did you consider that the new guy is plainly right? Not in the sense that some abstract value of performance is optimal, but in the sense that within performance, implementation time, real run time behavior, testability, impact on caches/locality of write accesses, multi-process locks etc. his solution may be better (i.e. still ok for the given problem sizes)?

I mean if it does not hold up in production, your methods will still be implemented; I have heard people issuing similar statements like yours, and sometimes the one complaining that the best solution was not chosen actually factored less inputs and criteria into his decision.

  • This could be taken into account if it were for only one decision. However, the op seems to mention that this consistently happens every time a conflict arises. It would be excessively surprising that the new guy is ALWAYS plainly right over the guy with more experience. – everyone Aug 8 '17 at 8:52
  • It could be taken into account in the person asking misses subtle hints in the language of the manager about priorities or if the new person is very good. – Sascha Aug 8 '17 at 9:05
  • It still does seem like a rather far-fetched answer, I'd say it is very unlikely .Anyways, it doesn't solve the problem : he is the more experienced employee and his opinion isn't taken into account. – everyone Aug 8 '17 at 9:37
  • It does not have to be. In my life i several times had the case that when I started learning a new programming language it took me less than 4 weeks to get better the person introduced to me as the senior expert on something. – Sascha Aug 8 '17 at 9:52

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