How to convince your boss and your fellow devs that you are right (and they are wrong)

Ben White Unsplash

As a developer, I’ve picked up some non-negotiable habits and good practices over the years. But sometimes, I’ve had to work with people who were not on the same wavelength as I was. Most of the time it’s the management.

You can’t convince anyone of anything. You can only give them the right information, so that they convince themselves.

Eben Pegan

The main reason is usually that we are looking differently at problems and their solutions. We know from experience that cutting corners will get back to us in the form of technical debt or just plain frustration.

I’m writing this post to show you how you can change you manager’s opinion — or even that of your peer.

Communicating the right way

Your message might be very important, but if you fail to deliver it, then it’s your fault. Here is one way to deliver your message effectively:

“To communicate effectively, we must reach people through their Tendency, not our own”

Gretchen Rubin

As you know, people are not the same. Someone may be easy to reason with, and someone else may be stubborn. According to Gretchen Rubin, we can categorize people into four main Tendencies.

Gretchen wrote a book called The Four Tendencies. She noticed this division among people, and how we can use them and take advantage of them in our lives. Those Tendencies are UpholderObligerQuestioner, and Rebel.

Here is a quick joke that helps describe them:

How do you get an Upholder to change a lightbulb?
Answer: He already changed it.

How do you get a Questioner to change a lightbulb?
Answer: Why do we need that lightbulb anyway?

How do you get an Obliger to change a lightbulb?
Answer: Ask him to change it.

How do you get a Rebel to change a lightbulb?
Answer: Do it yourself.

A case study

Let’s assume that you have a product owner (PO) on a new project. The PO is only focusing on the things that you deliver. They don’t want you to spend time on anything else, like writing tests.

Here are four different ways to convince your PO that writing tests is important. But don’t forget that this is just an example — you should be able to use these frameworks in any context.

Here we go.

1. PO as a Questioner

Ryan Gosling I Want To Ask You Some Questions GIF – Find & Share on GIPHY

Discover & share this Ryan Gosling GIF with everyone you know. GIPHY is how you search, share, discover, and create GIFs.

According to Gretchen,

Questioners love research, finding efficiencies and eliminating irrational process. They reject lazy explanations like this:

’This is the way we have always done it.’

Because Questioners have great faith in their own analysis and judgement, they can become convinced of the rightness of their views and refuse to be persuaded otherwise.

When dealing with a Questioner, bring reasoning to the table. Have a valid point supported by evidence.

Here’s an example conversation with a PO named Alex:

Me: Hi Alex, can we talk about best practices for a moment?

Alex: Sure, what’s on your mind?
 
Me: I think that we are pushing too hard on delivering the features and not thinking about our technical debt. We don’t have much time for testing.

Alex: Well, I’m not convinced that spending lots of time on testing will help us to deliver better and faster. We are fixing bugs as they come along and it seems to work. 
 
Me: I took a look at how much time we spend by fixing bugs, and the number grows over time. I have worked on lots of similar projects. It’s faster to ignore testing, in the beginning, but you will get to a point where it’s no longer efficient. I think that we are now at that point. 
 
Alex: Hmm but I don’t want to hire another person to do the testing, we don’t have a budget for it.

Me: I have a solution: let’s add testing to the scope of each ticket. It will make developers happy, and you will be able to compare velocity. If you would like to know more, I have some examples of books and articles about the importance of tests.
 
Alex: Ok, remind me of that at our next sprint planning, and I will make sure that everyone is on the same page.

Me: Thanks.

2. PO as an Upholder

via GIPHY

Upholders can make great colleagues. They are self-starters, and they are very interested in performance. But Upholders sometimes get impatient when others struggle to meet expectations.

I don’t think that you would have to convince an Upholder about the importance of writing tests. They would react like this:

Me: Hi Alex, I think that we are at the point where we need to spend more time on writing tests. Our technical debt is growing.
 
Alex: I’m ok with that. Feel free to write more tests and do some refactoring. But please make sure that we still deliver features that we promised.

3. PO as an Obliger

via GIPHY

Obligers respond to the expectations that work situations almost inevitably supply — with deadlines, evaluations and deliverables.

So to convince them, we can use another motivator that they follow.

Me: Hi Alex, I think that we are at the point where we need to spend more time on writing tests. Our technical debt is growing.

Alex: We have a deadline to deal with — is it going to affect it?
 
Me: We might be delayed in the next sprint. But by writing more tests, we will be able to cut the development time. So, we should be faster in next stage and meet the following deadline with ease. Writing tests is also a best practice of development. I can show you a bunch of studies that support it if you are interested.

4. PO as a Rebel

via GIPHY

I feel a little Machiavellian about this one. Here is an example from the book:

A rebel child might respond better if you ask: ‘Do you feel like playing the piano now?’ While an Upholder child would be happy to be reminded, ‘Time to practice the piano.’

So if I wanted to convince a Rebel product owner about tests, I’m not sure what I would do. I would probably spend time on tests and refactoring code without asking.

Gretchen does note that “They put a high value on freedom, choice, identity and self-expression.” So, by reacting on my own and taking care of things, I’d fit in that specification. I’d be the rebel!

In the end, you need to know who your audience is. You should find out what the priorities of your project are. Then make your argument more compelling by mentioning these priorities.

Why you fail your interview even as a great developer

Photo by Branko Stancevic on Unsplash

Photo by Branko Stancevic on Unsplash

I was listening to my friend recently complaining about the lack of good developers. His company is constantly looking for new people, and they are struggling to find them.

They have lots of candidates that look good on paper, but in reality, they fail the interview. They go through the technical part of interview well. But when they start talking to them, they find out that potential candidates struggle to communicate. They can’t describe/translate technical issue into everyday language. They seem to be arrogant even though they might not be. They don’t listen.

Job Interview is a stressful process. You have to prove that your worth to others which is for most of the people going out of their comfort zone. You have to talk about yourself,
about your past and sometimes your future. Here are few tips how to improve your chances to get hired.

“You can make more friends in two months by becoming interested in other people than you can in two years by trying to get other people interested in you.” — Dale Carnegie

Be friendly

My approach to this is to talk to an interviewer as they are my new colleague. I don’t know them yet, but I’m trying to be friendly and honest and found out about them what they do how and why. Talk to them. I know it’s hard to talk to strangers about yourself but if you want to have a good job you have to get better at talking to people.

Listen

I know that you want to go through the interview as fast as possible, but you need to listen what the other side is saying and what they are asking. It helps in 2 ways. You find out more about the job and the company, and you will get topics that you can ask about. i.e.

Interviewer
“We have a friendly environment here. We play table football and have a beer fridge always full. One day a week you can work or anything that you want…”
Me
“That sounds good. So I can do anything not related to a job or is it something to work on the product?”
Interviewer
“It’s something to work on the product, but you can do anything. Come up with a new idea, try new technology…”

You see where I’m going with this. Based on the question about the “free coding” Friday you find out more about the company. You might find out that the “free coding” day is to solve technical debts instead of doing something for fun. It would suggest that this company has some issues with planning.
Or it might lead the other way where the company is giving you more time to improve your skills.

“When dealing with people, remember you are not dealing with creatures of logic, but creatures of emotion.” — Dale Carnegie

Use your empathy

What do you do when you have to talk to a manager about a technical issue, who doesn’t have a technical background? How do you talk a customer to find out why they can’t reset the password? If these are situations that you are trying to avoid then don’t. These are precisely those things that will give you more experience and teach you to be more empathic.

Then when they ask you, at the interview to describe some technical problem in a non-technical way, you know what to do.
But how you ask?
I’m sure that you have been there before. You are in the middle of something, and your mum is calling, “Hey Petr I can’t search for anything on the internet or my password is not working …”. My first thought is omg not again. But I take a deep breath and then trying to imagine what is she doing. Ask her to describe what is she doing “exactly”. And then go from there. I’m trying not to use any technical terms. So keep that in mind for some people even word “browser” is a technical term.

You can try the following exercise:

Try to explain to 6 years old what is an email.

Think about it …

I bet that keywords like servers and domains will pop up in your mind. Stop right there. Six year old doesn’t need to know what is DNS or a server, or that there is something call POP3 or IMAP.
Simplify everything that you can.

Me
“Email is a message that you send to someone via the internet.”
6yr old
“Like when I use WhatsApp?”
Me
“Yes, pretty much you just use a different app.”
Those 6year olds these days.

The same thing applies to customers. They don’t know things that you consider an essential knowledge. So be empathic with your customers and managers.
It will help you to get a job that you want. And if you are not looking right now, it will reduce your anxiety every-time you have to talk to non-technical people about an issue.

Bonus

Six ways to make people like you

from How to win friends and influence people by Dale Carnegie

  • Become genuinely interested in other people.
  • Smile.
  • Remember that person’s name is to that person the sweetest and most important sound in any language.
  • Be a good listener. Encourage others to talk about themselves.
  • Talk in terms of the other person’s interests.
  • Make the other person feel important — and do it sincerely.

This Post was originaly posted by Me on https://medium.com/@petr_24280/why-you-fail-your-interview-even-as-a-great-developer-a2bce88a2fcMedium