(this post was written with the intent to give it to my current, and future, direct reports in an attempt to establish part of our relationship)
Every time we need to solve a problem (or implement a feature) the process is the same
- First we think the approach we are going to follow. This is an abstract flow that we believe will solve the problem.
- Based on that we divide our approach to one or more components (modules / classes / functions, whatever suits the size of the problem) and assign a certain behavior to each one of them.
- Finally, we start implementing each component.
How do we know if something we implemented is correct?
By getting feedback. Based on it we make improvements and try again. This loop keeps us on track and allows us to deliver something valuable.
This is why we try to have frequent and short feedback loops. This way any corrections occur sooner than later and we don’t spend time and effort into something that might, potentially, thrown away.
Tech lead as a feedback loop
Looking back to the process of solving a problem we could say that two out of the three steps do have a feedback loop to helps us.
In the implementation step we can argue that the compiler / linter / etc gives us immediate feedback on what we wrote. We fix it and move forward.
For the behavior step we get the feedback through tests. Is the component’s behavior the expected one? How about the components API? Can we use it easily in our tests? Answering these question helps in having solid components.
But what about the approach step? This is where the tech lead comes in.
Right before writing any code, thus putting effort into something, prepare a simple list with the steps you are about to take and discuss them with your tech lead. If there is any feedback use it to improve your approach and have another meeting.
Is it time consuming?
No. In case the approach needs improvement after the implementation the time to fix it will be longer.
Do you feel bad on spending your TL’s time?
Don’t. It is, literally, their job to help you.