Saturday, 27 April 2019

Good Help Is Hard To Find - Tips When Hiring Senior Developers

This is the fourth in a series of articles which will summarise my last half decade of hiring/outsourcing/offshoring experience as Head of Technology at the Cogworks.

Introduction

Hiring Senior developers gives you the confidence that things will get done, problems will get solved, and delivery will happen. They're an asset. But seniors can also come with some baggage...

Why Should You Hire Senior Developers?

Senior developers are great for velocity. They know their craft, they are fast, and they can guide junior / mid-wieght developers in projects. They can be the gold standard for processes and best practices in your company.

Can You Teach An Old Dog New Tricks?

Seniors have been doing their craft for years. Like everyone, they have good and bad habits. Expect that some people will have some sub-optimal habits which may be dated or even hacky. They might have done something for years without knowing that it was bad.

Old habits die hard, so you need to be explicit and persistent if you want them to change. Give them an assignment to research modern best practices to present to the team. Get them to own it!

Coding Standards

Seniors come from different environments, and that's great! A  new senior might start doing things that are contrary to your current guidelines/standards, because they think it's better, or they're used to doing things differently. That can be fine, but sometimes can cause confusion to other devs.

Gently remind them of the current coding guidelines and practices in the team. Be explicit that it is expected of the seniors to know these practices and set the example for other staff. If they really want  to change something, then get them to consult the team, and present their proposed changes. 

Opinions

Seniors have opinions, and that's what you want! However just because they are considered a senior does not mean that they will always have good ideas. Or your team might not be ready or capable such for big changes. Be aware that changes to process may have a good result, or negatively impact your  team / organisation for years. I've seen this happen! 

If your new senior wants to change some processes then get them to present the problem and their solution to the team. Get some consensus and get feedback. This is a great exercise as it gets your team's collaborative juices flowing.

If your team is very small or with little knowledge of proposition you can still take an empirical approach. Try it, inspect the outcome, adapt.

Over Confidence

There are some seniors who forget that the other developers in their team are not necessarily able to learn or perform as fast as them. Many concepts and architectural patterns are hard to learn, let alone implement with any degree of confidence.

Remind your new senior that they need to put themselves in the shoes of the juniors and mid-weight devs in your organisation. Can the juniors learn/do it? If not, then have the new senior outline a plan on how to teach them. This is a great exercise as it helps the new senior to better understand the team capabilities.

Progress Can Be A Battle

A senior might prefer the status quo. I have met a few senior developers in the past who pushed back on any change. They were happy with sub-optimal practices as long as those practices/processes were familiar. Changes in process were treated as battles. 

It's OK to be risk averse. Limiting risk comes with experience. However you also need to continue to evolve. There is a balance every developer and organisation needs to find. Remind your team that without learning we become redundant, without innovation companies fail, and the longer we stand still the faster other people and companies surpass us. Change is inevitable, and we should leverage it to our advantage.

Tips When Hiring a Senior Developer

1. Be explicit about your expectations
2. Be explicit about adhering to the current coding guidelines / practices.
3. Ask them to help implement best practices
4. Take their input about how things can change/improve, and definitely get them to present to the team
5. Be explicit that you expect them to be the gold standard for the more junior developers 
6. Get them to teach concepts to your less experienced developers


Final Thoughts

Hiring a senior has many benefits. They're fast, knowledgeable, and can mentor others.  Leverage their experience and knowledge to help boost your other devs.

They might also come with some baggage, so be pragmatic. Be aware that they might have some coding practices which will need to change. Be explicit with your expectations. Remember, experience does not equate to perfection. No one is perfect. We all have bad habits.



Posts In This Series

  1. Interview Tips for Technical Leaders
  2. Tips To Ensure Quality Delivery When Outsourcing
  3. Tips When Taking On An Intern
  4. Tips When Hiring Senior Developers
  5. Tips When Hiring Junior Developers
  6. Tips When Offshoring Development Teams
  7. Tips When Hiring Project Managers (coming soon)
  8. Tips When Hiring Remote Developers (coming soon)
  9. Tips To Improve Developer Retention (coming soon)













No comments:

Post a Comment