Welcome!
Hi this is John with this week’s Developing Skills - Skills for Developers looking to develop their careers.
🙏 Thank you for being one of the 13,471 software developers who have subscribed, I’m honoured to have you as a reader. 🎉
If there is a topic you’d like to see covered, please let me know by replying to this email📧
Tip of The Week: Sometimes You Have To Give In To Get What You Want
“John, you’re a f**king idiot if you believe Steve. There’s no way Bob’s code is wrong he’s really experienced. Steve is just making excuses and pulling the wool over your eyes because you’re new” my new boss shouted at me down the phone as I updated him on the critical issue I’d been looking into as I headed home on Friday evening.
As requested, I’d called him to update him on the status. I told him I’d worked through the issue with Steve and found the root cause. It was a bug in the code Bob had merged to the core library ten days ago.
I wasn’t impressed by the tirade. There’s no excuse for that kind of language in the workplace and I certainly wasn’t expecting it from a C-level executive. I could have argued the point, but I was new, so maybe there was something I’d missed. I decided to let him “win” this argument - it seemed important to him. I agreed we’d look into it more on Monday morning.
He still wasn’t happy, it was supposed to be sorted today. I promised it would be the top priority for Monday morning. It had been quite a first week as the new manager for the team.
So why did I let him “win”? Because sometimes when dealing with other people you have to give a little to get a little. This approach is a key to successful negotiation and it’s key to successful working relationships - which often involve negotiation.
If you have a reputation for always insisting on getting your own way, it probably comes with a reputation for being difficult to work with.
That in turn, will make people automatically defensive when dealing with you, or they’ll try to avoid working with you, perhaps going so far as to subtlety or not so subtlety exit you from the organisation.
So rather than try to win every argument, take some time to consider which battles are worth fighting and which are not. Then give in on those that are not, you’ll lose the battle, but win some goodwill.
When Monday came my phone started buzzing at 07:30 as I travelled to work. My new boss was organising a crisis meeting to “fix” my mistake. The meeting would start at 08:00. Due to the trains I wouldn’t be in the office until 08:30. Again I could have objected, but I decided to let him have the win.
By the time I got to the office at 08:30 the crisis meeting was over and a fix was in place. Bob and Steve told me it had been a tense meeting, with my boss very upset until Bob pointed out that the bug report I’d sent him on Friday before calling my new boss was correct and he’d implemented and tested the fix.
My new boss never apologised, but I won some credibility on the technical front. I also learned from others that this was his default way of working. He was always right.
Whilst I believe in giving in when it doesn’t matter - as I had, I also believe in working with other people who will do the same, so I started looking for a new role that evening and left that organisation shortly afterwards.
Sometimes you have to give in to win, but overall life is too short to work with people like that.
Two Ways I Can Help You Level Up As A Software Engineer:
I write another newsletter, Coding Challenges that helps you become a better software engineer through coding challenges that build real applications.
I have some courses available:
Become a Better Software Developer by Building Your Own Redis Server (Python Edition) which guides you through solving the Redis Coding Challenge in Python.
Build Your Own Shell (Go Edition) which guides you through solving the Shell Coding Challenge in Go.
So true, John. I learned this early on when I was overly critical in code reviews. I realized letting up made me more influential and could help me get what I want when it actually mattered