It took me 3 business days + a weekend to find the courage to stand up to my boss after he requested changes on my pull request.
How? How does this happen? I am usually a very opinionated person who will definitely tell people how I feel about a situation - especially at work. Its my job to have an opinion.
One of my goals for the year is about building technical confidence. I’m reading one technical article a day in order to expand in depth and breadth of knowledge. I attended a front end conference to do just the same thing. I’m actively planning lunch and learns and discussions on how to bring what I’ve learned into our product. So why, WHY, was it so hard to tell a senior dev that I disagreed with his tactic.
To set the stage, in the past, this developer has never approved one of my PRs on first look. Even for suggestions, he very liberally uses the "request changes" feature of the Github pull request method. That’s fine. That’s not the issue. I love getting feedback. Most of the time I agree with him that it could be done better. 90% of the time we end up going with his suggestion.
This time around, I read an article about the very issue we were talking about. And while nothing is set in stone, I felt pretty confident that I had the right approach before I created my pull request. Not expecting any suggestions on this little number, I made the PR and happily went along with my day.
The email notification came in with a hefty subject of "{Senior Dev} requests changes on your pull request". Not surprised (remember, this happens every time), I go in and see his suggestion. I craft a thoughtful response that I think very nicely summarizes why I think my approach is better, submit, and then see another comment come in that is his exact words, but rephrased. He thought I didn’t understand his approach. I understood, I just didn’t agree. And this is where the waiting period began.
I knew he thought I was going to make the changes, I knew he was expecting it. I also know that he sometimes goes in after someone has done work and will refactor their changes. I had this paralyzing fear that if I didn’t make his changes, he’ll just go back to it in a month and make the changes he wanted in the first place.
I’m not saying that I am always right. I am NEVER saying that I always have the right approach, but in this situation I knew that I did not agree with his suggested changes. I am not going to make the changes. Making the changes feels like loosing.
It just feels like I always walk away from PRs with my tail between my legs despite having grown as a developer (this is my 3rd year as a dev, I am far from beginner). I should have an opinion. I am paid to have an opinion. But changing a power dynamic is hard. And telling someone with 6+ more years of experience than you that you think they are wrong is also hard. I know it was unprofessional to leave his comment and my PR sitting there for almost a week but I didn’t know how to start. Isn’t "request changes" just that? A request? Its not "mandate changes", its also not "we have held a fair trial and the ruling is that there must be changes".
When I review someone’s pull request, maybe because I am still partially unsure, or maybe just constantly conditioned to be unsure, but if in someone’s pull request something is a little off but not a necessary change and there aren’t any obvious errors, I use the "comment" and not the "request changes". I feel this opens people up for discussion on something you, yourself is not fully sure of. Why can’t we all start discussions about someones work instead of deciding they don’t know what they are doing?
My 2 cents ✌️