First off, as a less experienced dev, it is your job to question all of us with more experience so I commend you on doing that!
I guess the only way I would have approached the situation a little differently would have been to ask more questions. If two more experienced engineers than yourself share the same opinion that is opposite of yours keep asking why so that you can hopefully better understand where they are coming from. I find it also helps to always remember that everyone wants the same thing, a well functioning code base. The vast majority of people out there aren't trying to write bad code or make bad decisions on purpose, they are doing the best they can with what they know.
Beyond that, there will be times when you will disagree with coworkers and you have to pick your battles in those cases. Usually when it comes to little things like code organization or implementation I let those go. If its something I think would potentially be problematic to the code base in the future I will argue for those. I have always been on teams where people are very receptive to collaboration so I have never had to go up against an "asshole" who won't budge just because. Most the time everyone hears everyone out and we pick a solution.
Notice I said "a solution". You may think you have the best solution but the team may decide to implement another one instead. If that is the case then go with the team and trust that they picked that other solution on its merits. There are a million ways to do things in our industry and hundreds of ways to do them "right" so you always have to be open to those other methods.
That got a little rambly but TL;DR only thing I would have done differently in your case is asked more questions and taken the conversation to in-person immediately after the disagreement started bc PRs are horrible for back and forths a lot of the time. Talking it out I find is better.
the funny thing is asking more questions also takes experience. Ive seen lots of junior devs who doesn't know what to ask, so I ask for them instead, even if I'm the one lecturing lol.
I'm glad I am not the only one to actually want feedback from developers with less experience. I actually tell them that if they see something that they think is wrong to speak up. I don't want them to be intimidated by the more experienced devs. I want then to find their voice and learn to express themselves. Also newer devs may have learned something new that I haven't and it's a chance for me to learn something too.
There's definitely a good likelihood that this whole situation is pretty irrational on the superior's behalf, but we can only go so far in our hopes that everyone sees things in a neutral and accurate way.
Asking questions both helps you gain perspective to make the argument you want to make, while also triggering that reciprocation part of the human brain which just wants to be heard before being disagreed with.
Asking questions and letting folks feel abundantly heard leads to better results regardless of who is being reasonable and not reasonable in the situation.
First off, as a less experienced dev, it is your job to question all of us with more experience so I commend you on doing that!
I guess the only way I would have approached the situation a little differently would have been to ask more questions. If two more experienced engineers than yourself share the same opinion that is opposite of yours keep asking why so that you can hopefully better understand where they are coming from. I find it also helps to always remember that everyone wants the same thing, a well functioning code base. The vast majority of people out there aren't trying to write bad code or make bad decisions on purpose, they are doing the best they can with what they know.
Beyond that, there will be times when you will disagree with coworkers and you have to pick your battles in those cases. Usually when it comes to little things like code organization or implementation I let those go. If its something I think would potentially be problematic to the code base in the future I will argue for those. I have always been on teams where people are very receptive to collaboration so I have never had to go up against an "asshole" who won't budge just because. Most the time everyone hears everyone out and we pick a solution.
Notice I said "a solution". You may think you have the best solution but the team may decide to implement another one instead. If that is the case then go with the team and trust that they picked that other solution on its merits. There are a million ways to do things in our industry and hundreds of ways to do them "right" so you always have to be open to those other methods.
That got a little rambly but TL;DR only thing I would have done differently in your case is asked more questions and taken the conversation to in-person immediately after the disagreement started bc PRs are horrible for back and forths a lot of the time. Talking it out I find is better.
Hope that helps! π€
the funny thing is asking more questions also takes experience. Ive seen lots of junior devs who doesn't know what to ask, so I ask for them instead, even if I'm the one lecturing lol.
I'm glad I am not the only one to actually want feedback from developers with less experience. I actually tell them that if they see something that they think is wrong to speak up. I don't want them to be intimidated by the more experienced devs. I want then to find their voice and learn to express themselves. Also newer devs may have learned something new that I haven't and it's a chance for me to learn something too.
+1 on asking questions.
There's definitely a good likelihood that this whole situation is pretty irrational on the superior's behalf, but we can only go so far in our hopes that everyone sees things in a neutral and accurate way.
Asking questions both helps you gain perspective to make the argument you want to make, while also triggering that reciprocation part of the human brain which just wants to be heard before being disagreed with.
Asking questions and letting folks feel abundantly heard leads to better results regardless of who is being reasonable and not reasonable in the situation.
Asking more often "Why" would have prevented this from happening, instead of going into a ping pong game of "No, you are wrong".