Understanding Tradeoffs

Learning to articulate tradeoffs is an important transition in a junior engineer’s career. Nothing good in life comes free, software is no different. Building knowledge in an industry overwhelmed with information seems like an herculean task. How does one go about understanding the tradeoffs? Or even figuring out what the tradeoffs are?

Do you remember when you first started writing software? The onset of topics to learn is paralyzing. What language should I learn? How do I best manage my time? Should we be doing scrum? No matter the subject, trying to understand the tradeoffs can help.

Beware of Parroting

Only a Sith deals in absolutes.

Obi-Wan

One way that understanding tradeoffs can help is using them to detect biases or fallacies. It’s easy to gloss over verifying sources, I catch myself doing it from time to time. The internet is full of opinions. You can achieve confirmation bias with minimal effort. Reading online means you need to learn to separate the wheat from the chaff.

When I find myself nodding along with an article I try to ask “what is the flip side?”. People will entice you with all-in-one solutions. Got infrastructure woes? Use Kubernetes. Statements that are simple in nature lack depth and nuance. Try understanding what tradeoffs are being made.

Parroting what you read online will not help you come across as knowledgeable. This will do the opposite and undermine your efforts. You won’t get buy-in from co-workers or business. Take the time to invest in understanding, don’t buy into hype-driven development.

Beware taking opinions at face value

Yup, including this one.

Pit Experience Against Experience

Have you watched the video of Derren Brown playing 9 chess players at once? The trick revealed at the end is beautiful. Derren doesn’t play 9 games, he plays people against each other. He does this by remembering moves and replaying them against the other person while only playing 1 real game of chess:

1 v 5
2 v 6
3 v 7
4 v 8
9 v Derren

Like Derren, you should pit tradeoffs against each other. Again, a key part is not becoming too attached to them. They are not your identity, you are an idea conduit. They flow through you from one location to another and you observe the outcomes.

This is a key step in understanding the fundamental tradeoffs. Experts will have spent years testing and validating their ideas. Leverage that experience. Experts should be able to explain tradeoffs to their arguments as well as counterarguments.