Managing Mediocrity
Problem
Managing mediocrity is one of the biggest challenges a manager can face. Top performers are great to manage, but even managing low performance is fairly straightforward. Managing mediocrity is what I find to be the most difficult.
Actions taken
With top performers you need to continually challenge them, so your role is to identify inspiring things they can work on and then to help them further develop their skills. For a low performer, it's often a lack of skills so you need to train them up. Mediocrity can be caused by skills mismatch, but perhaps more frequently by poor job fit and/or demotivation from a variety of causes (often poor context awareness or dependency management). I try to put them on a path towards high performance with a frank and open assessment of what the issues are, coaching on some specific getting-things-done skills, and a "pace car". The pace car: You can personally demonstrate what good looks like and what good performance is, but this is really hard to scale quickly. How do you demonstrate focus and bringing tasks to full completion when you're in meetings all day? So hiring in a "pace-car" that can also demonstrate the right level of quality day-to-day will help your team see what you're looking for. Spotlight contributions in an impersonal way: focus on the deliverables (model performance and measurement, speed, code quality, error handling, documentation/planning/specifications, up/down-stream dependency management, whatever it is) and try to spread the love around, else risk resentment. Almost everyone should have real contributions, celebrate them without whitewashing issues. "The code here is clean, but you solved the wrong problem" or "This code is really messy, but the model performs well and you got it done in time for the demo, so great job and yes you now get a week to clean the code up and build tests" are both examples of the kind of give and take and detailed evaluation you're looking for. Also be open to moving people to new roles: for someone that's good on a deadline but makes a mess, a high-speed demo-building POC team could be a better fit. Tools for getting things done: Especially for more-junior and new folks, I teach three things so they can be successful and independent:
- Basic Gantt charts so they learn basic project management, scoping and task breakdowns and build a mindset of thinking ahead
- Cross-functional flowcharts (which are typical flowcharts but with people or departments separated into "swimlanes"), where we then count the number of handoffs (lane crossings) to understand process latency, partner (e.g. QA or arch review) dependencies, critical path
- IDEF0 diagrams, a systems engineering format for showing a system's subcomponents and how they map as inputs, outputs, resources and constraints. Can be especially helpful for complex data science systems composed of many interacting models
Together these help to ensure people have structured ways to think through their systems, understand how to organize their time, and how their work affects others.
I certainly don't require the completion of these artifacts for every project, but the education & mental framework is important.
Lessons learned
Often when I see people stuck in mediocrity it's because they are lacking productivity tools and/or mindset. Ensuring your team members are in the right role for them is really important, but so is teaching them the right work habits.
Be notified about next articles from Brad Pflum
Connect and Learn with the Best Eng Leaders
We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.