Trade-offs are one of the most important aspects a dev can understand.
There are technical, business, time, quality, etc trade-offs. Understanding how each trade-off interacts will increase the impact on the company. This requires looking past the directly assigned work and asking “What do we give up or gain by coding this in a certain way?”. Thinking in trade-offs means there’s an understanding of how individual work affects more than what’s in front of you.
Say someone from the product asks for a feature. While building the feature you realize one specific part will be difficult to implement and maintain. There’s a trade-off. Let’s look at the options:
- Implement the feature. Potentially delay the project while also making the code more complex.
- Ask the product if the complex part can be left out for the initial launch. Include it in a follow-up release.
This allows product owners to make decisions in real time while also meeting goals.
Just as we rely on mechanics to fix cars the business relies on developers to help them understand trade-offs they otherwise wouldn’t have known.