« On PHP’s Best Practices | Is isolated testing dead? » |
Hiring is perhaps the most challenging thing that any manager can ever do. Getting it right is half skill, half luck. Making a good decision on a candidate can be the difference between moving the project forward and setting it back.
So what happens when you’re hoping to hire mid-level or senior engineers, and you end up with a staff of juniors? This isn’t all that uncommon a problem; I’ve seen it at least a dozen times in my career. What do you do next?
There are three steps to success.
Mentorship is an art that has been lost over time. But with developers who are just getting started or who don’t have much experience, mentorship is crucial.
It’s important to note that mentorship is not about calling someone into your office and reading them the riot act over a mistake that they made. Far from it, true mentorship is about being a partner with the person. It means understanding them and their position, and then helping elevate them to a higher level, not through sheer force, but through climbing together.
There’s a good chance that on a reasonably sized team you won’t have time to mentor everyone. This is where careful selection of leads and middle managers is crucial. Selecting people capable of mentoring more junior developers and placing them in positions of authority is the key to success. You’ll know these people by the fact that they’re already mentoring others.
Nobody wants a project to falter or a feature design to fail. Unfortunately, to raise your engineers to a higher level, you have to let exactly that happen.
We learn from our mistakes. We remember them. We understand better when we have an example, and we usually are better at remembering the negative examples than the positive ones. Failure is a wonderful teaching tool.
It’s important to still keep your standards high and ensure that your customers are happy; after all, it’s easy to fail and have a huge impact on your customers and their success (just ask GitLab). But allowing your engineers to experiment and explore will help them to grow.
Make sure that when something goes wrong or fails that you hold a post-mortem, not just with the engineer in question, but with the entire team. The goal here is not to eviscerate, but to investigate. Let the whole team learn from the mistake.
As your developers mature and begin to take on more responsibility, it’s up to you to give it to them. Trusting your developers is a crucial part of growing them (and letting them make mistakes).
I have a saying that I love which is “if you don’t trust your employees, they shouldn’t work for you.” This is even more true with developers. You may not trust them completely, but you must offer them the trust they deserve, and help them grow into the best developer they can be.
All of these things are hard, but worth it. Acquiring new team members is extremely expensive; it’s much less expensive to train up the developers you already have to do the work you need.
Brandon Savage is the author of Mastering Object Oriented PHP and Practical Design Patterns in PHP
Posted on 4/11/2017 at 8:00 am
There are currently no comments.
« On PHP’s Best Practices | Is isolated testing dead? » |