Throughout a software development project, it is the Lead’s job to map the path to success. This includes planning the long-term trajectory, breaking down the short-term milestones, and being a repository for knowledge for the domain. If done well, this allows developers to crush through work, knowing where it fits in with the larger picture. To do this well, the Lead needs to do the work to educate the developers of the domain. The only problem is that at the end of the day, this can place an immense cognitive load on the Lead. Though this is expected, over the long term, this cognitive load can lead to diminished capacity and burnout.
While it’s certainly not the developer’s job to remove the cognitive load from the Lead, it is greatly appreciated when the developer helps lighten it. What can you do to take the cognitive load off of your tech lead? Here are a few tips that I find helpful.
Do your due diligence.
Do the pre-work to understand what you have to do. Take the time to read the story. Understand what the goal is and where it fits into the larger software solution. When you come prepared, you show that you took the time to make it easier for me to bridge the gap. Doing your due diligence also preempts many of the issues that come later, such as the suggested libraries to use or the expected name and structure of an endpoint.
This does not mean the due diligence will resolve all of your questions, but it forestalls the anticipated ones. This leads to my next point.
Batch questions to optimize time together. Write down the questions you have, whether that’s in the story or in your notebook. Organize them by relevance and try to prioritize questions that answer or eliminate others. Having them written down provides a checklist to rip through when you have time with your lead and likely eliminates the time-consuming back-and-forth common with “quick questions.”
Additionally, it can be useful to break the questions into categories such as domain knowledge, technical decisions, and taste/preference. These categories help contextualize where confusion or lack of clarity exists. It’s crucial to understand domain issues, as they may have long-reaching implications if misunderstood. Technical work can often be resolved through pattern matching with existing solutions throughout the code base or examining if it’s a new pattern. Lastly, taste or preference questions provide the opportunity to discuss why, or just as likely rant about how it’s the only correct way… These categories also have different importance, so flexibility about when and how much depth to dive into can expedite the process.
Come with suggestions, not just questions.
Though questions are important and lead to better understanding, often developers have a sense of how they want to approach a problem. When you come with questions, bring proposals to the table. These proposals provide something for your Lead to react to. If the Lead had other ideas, proposals provide a jumping-off point for the pros and cons of each approach. In turn, this will likely lead to a better overall solution in the end. If the Lead does not have ideas, you may have lightened the load by offering up a ready-to-use solution. Now the Lead can take time to explore this solution with you rather than having to be prescriptive.
Communicate blockers early.
Blockers can be hard to deal with. They often arise from outside constraints, leading to contention about when and where to resolve them. Generally, blockers are identified early by the Lead, but things slip by. Mistakes are made. If, while doing the due diligence, you think you have a blocker, make a note of it. Raise it early in your conversation and take the time to clarify why. This will allow your Lead to understand the context, clarify the impact, and update the story if it is, indeed, a blocker.
Lighten the cognitive load for your lead.
The Project Lead is in charge of carrying and organizing the cognitive load of a project, but, as a developer, you can help. Taking the time to understand, organize questions, and come prepared with ideas that show you understand the problem and mean to streamline the Lead’s engagement with the problem at hand. Additionally, this shows your capacity for working through hard problems and your potential for future leadership. I hope these tips give you a good basis to build your skills and alleviate some of the cognitive load from your Lead.