Do you have a domain expert on your team? Chances are, no matter the size of your developer pool, there’s someone or many people that have deep knowledge of a particular area of your database. Likely, they’ve been in the company for a while, or since inception, and have written most of that area themselves. They may have even rewritten it multiple times, and therefore have a line-by-line understanding. That’s not something easily taught or passed on. It comes from spending so much time in a specific area; every aspect of it may sit in their head.
Are you leveraging this vital source of expertise? More importantly, are you taking the time to bring others into an area where one person, or a small group of people, is highly specialized?
The Pros and Cons of Domain Experts
While job specialization is excellent, having certain team members over-specialized can drag the overall goal of a project and can be challenging to undo if management lets people segment and specialize too much.
For example, what if one team member understands the underlying code surrounding payments? If they go on vacation and something breaks, the whole company’s source of income is in jeopardy. At the end of the day, no team member should have unilateral control over an area of code. That said, especially if you are a start-up and have maintained your original development team, you likely have individuals with deep knowledge that needs to be shared and sent down the line to junior developers to strengthen the entire developer line-up.
The Telltale Signs of Reliance on a Domain Expert
Managers are perfectly positioned to recognize domain experts and ensure work on the code is equally distributed across devs and areas. As a manager, look out for:
- Devs that gravitate towards the same code area
- Devs that rewrite their code again and again
Developers who have deep knowledge of their preferred area often submit their Git commits frequently and in small batches of code. This will show as sustained and have an above-average impact. A manager will notice that very little feedback will be provided during the review process (as the code is already at a certain level of perfection). When this particular pattern is detected, it’s time to move the expert onto a different area and bring in a dev who may not be familiar.
You may be wondering why you’d move your best and brightest off of an area they’re so comfortable with. The answer is: in the short term, domain experts are highly productive. However, in the long term, even the experts get bored. Any level of perfection can be unsustainable, and a domain expert can stagnate if feeling unchallenged. Ultimately, their effectiveness will fade. Meanwhile, as the only person working in a specific area, your vulnerability of being unprepared if that team member suddenly is out of the equation rises.
How to Avoid Nurturing Domain Expert Reliance
If you’ve recognized that your dev team has domain experts that the company is leaning heavily on, there are things you can start doing today to help re-balance the scales. For example, begin by assigning the domain experts to other areas within the codebase and to move others into their area. Expect a bit of pushback at first. Some engineers prefer focusing on tasks they’re good at, as it’s less stress and less work if the tasks in question come as second nature. Don’t shy away from challenging your team. In the end, moving experts and non-experts into new areas strengthens the team and makes the underlying code more resilient.
Use your one-on-ones with domain experts to begin to shift them away from their areas of expertise. Encourage expertise sharing across your team, and specifically with these singular experts. Also, work to bring these experts into the process by asking if they see anyone on the team that would benefit from learning from them and studying their best practices. Find out what other areas interest them and move them to small assignments to refine the code in a brand new place. That way, you get their buy-in, have potential new candidates fill the void, and have invited them to take their best practices of code refinement to an entirely new area of the codebase.
By diversifying, you’ll minimize attrition and maximize effectiveness.
Do you need Jira and Git to talk to each other? Download our Git-Jira integration app and finally have a way to manage your Git right from Jira! Find this and many more great Git-Jira plugins (including Bitbucket, GitHub, Gitlab, and more) right on the Atlassian Marketplace.