So I wanted to do a soft skills post for this week, and I've been debating about a variety of topics, and the one that came to mind is something I've been fighting with a lot lately.

Part of my job is helping development shops to grow, and provide that outside perspective, and provide a roadmap to help them grow. One thing I've been hearing a lot about lately are statements like the following:

  • "This is how things have to be."
  • "It's the way we've always done it."
  • "We know its bad but we can't change it because of ______."
  • "I know that's how it should be, but let's be honest it doesn't work in the real world."

Maybe its just my personality, but when I hear statements like these all I can think is "Challenge Accepted!"

Challenge Accepted

For those not getting the reference, in the show "How I Met Your Mother", Barney Stinson whenever someone tells him something can't be done, would yell "Challenge Accepted" and hijinks would ensue.

As funny as that is, there is a certain amount of truth to that. Many of the people we as developers look up to...Satya Nadella, Bill Gates, Steve Jobs, etc are people who never accepted "This is how it is" and instead challenged the status quo to make things better. They saw a problem and started moving towards fixing it. History books aren't filled with people who accepted things the way they are.

But all that sounds great, but what about when the rubber meets the road, if your a developer who sees a situation that you want to change, how do you fix it. That's where I wanted to focus today's discussion, and hopefully give you some actionable items to move on.

So the types of change you could be doing, could be any of the following:

  • Embracing a new technology
  • Embracing a methodology like devops or agile
  • Changing process like CI / CD
  • Embracing Cloud

So now how do we do we accomplish this, here are the tips I would say to keep in mind:

  • Ask Questions: People don't do things for no reason, no matter how much we think to the contrary. There are reasons behind why people do the things they do. Start by asking questions and taking notes. Find out why the decisions were made, what are the driving forces, and who were the key decision makers. This is all necessary intel to drive the rest of the conversation.
  • Get your facts straight: Research the change you want to make. Say its Automated Deployments. You want to research what the benefits would be of embracing this? what are the drawbacks? What steps would need to be taken to do this? Make sure you know this topics backwards and forwards. Some of the crucial points here are to make sure you know the drawbacks, because there are drawbacks to everything and you need to be honest about them to maintain credibility.
  • Know Your Business Decision Makers (BDM): It's important to get to know who the people are who are holding the keys, and most importantly find out what matters to them. What are they measured on? What keeps them up at night? What goals are they chasing?
  • Tailor your presentation: Using the facts, questions, and knowledge of your BDM, you should tailor your presentation to focus on the concerns of the organizations, the benefits and drawbacks of change, and how this relates to your audience. Once you are armed with that you can have an honest conversation and discuss change.

A few final tips, there are a few things you need to make sure you don't do so that you aren't your own worst enemy:

  • Don't Guess: Make sure you've done your homework. But in the event you get asked a question you don't know the answer to, DON'T GUESS! Take the opportunity to get a follow-up meeting and say "That's a great question, let me get back to you after I research that." This adds to your credibility, and make sure you do answer back. This will help you to show you take their concerns seriously.
  • Don't get personal: Don't take things too personally, the easiest way to loose credibility is to get angry. It makes you look unprofessional.
  • Be respectful of time: If you're meeting is an hour, don't go over and don't go too far under. People are making time and the most important way to show them you respect them is to respect time.
  • Don't Interrupt: Let everyone speak and never blow off concerns or comments, see them as an opportunity for further discussion.
  • Avoid Generalizations: Don't make statements you can't quantify. My favorites are "Improve Efficiency" or "Save Money", if you say that you better have numbers to back it up.

Now you can follow these tips and still hit walls, but don't give up. But if you follow these you will be in a much better position to have your ideas heard.