An opinion about having opinions
TL;DR — Having opinionated peers in a software development organization is a great asset. But it’s also important to exercise opinions responsibly. This blog summarizes some ideas on how to be responsible while being opinionated.
If you are a software engineer, you must have come across people who are considered strongly opinionated. Based on my experience working at Helpshift, I think it’s an important value to have among employees in a tech organization. It can be a constructive, productive force if exercised correctly. People with this trait are often sought after in our industry.
I can summarize being opinionated and how to exercise it as follows.
Being opinionated means having strong preferences
When you are opinionated, you have a specific, strong stance on a subject matter. These preferences/stances are usually based on experience and knowledge. Something that has worked for you in past, or something you have read and strongly agree with.
Being opinionated allows to make quick decisions
Being opinionated can help you move fast in the direction of your preference. The exact direction, right or wrong, good or bad, matters less as nobody has perfect foresight. You can always reconsider your past decision later and change your direction. This can be a great asset to any team or an organization to move fast towards a certain goal.
Try avoiding biases when forming your opinions
It’s important to form your own personal opinions, avoiding the biases of other people. It’s hard to be completely self-initiated, but doing so even a little will lend a certain amount of authenticity in your opinions.
This is mostly achieved through personal experience, rather than just reading. Authenticity of your opinions will lend you more credibility and your peers will respect your ideas, finding them more reliable.
In the light of new information, you might also require to retrospect a strongly held opinion from scratch. This can be hard as it requires avoiding previously acquired biases. But don’t shy away from this effort. Overall, it will make you a better engineer.
Be responsible while being opinionated
A bit of responsibility is attached to being opinionated. You should be ready to debate for your ideas when faced with opposition. This debate will allow your team to pick the best available solution.
To debate effectively, your opinion must be rooted in some clear, concrete rationale. It cannot be shallow. This slightly extends over the previous idea. When your opinions are self acquired, they usually have strong reasoning. Responsible opinions are best served well articulated.
Be civil while being opinionated
You should be civil when presenting or debating your ideas. There is a thin line between being opinionated and forcing your opinion on others. Be mindful that you are not rude in such a situation.
Be ready to concede and change your opinions
Experience can make you rigid in your opinion. But, it should not make you impervious to new ideas and changing your existing opinions.
You should be ready to concede your opinion when a better idea is presented for a given problem. Accepting and assimilating ideas different from your own, results in genesis of better solutions.
Conceding your opinion doesn’t usually mean that your idea itself was wrong. But for a given software problem, there can be multiple solutions and choosing one can be a matter of making the right trade-off at the right time.
Respect time, while being opinionated
Be mindful of the time you can afford to assert your opinions. You should not end up wasting your time and more importantly your fellow peers’ time while asserting opinions. Yielding your stance to other peoples’ opinion can be a surprisingly good way to make progress.
When in doubt, trust your leader
This is a slight extension of the previous idea. In the face of disagreement, deferring to your leader’s judgement helps to conclude faster, rather than staying in limbo with indecision.
It is much faster to start working on a proof of concept based on the decision taken by your leader. If the decided solution doesn’t work out in this initial iterations, you can revisit it with your leader and re-assert your idea. Many a times, however, you will realize that your leader’s decision was the right one. Take advantage of their experience.
Software development is hard. Requirements keep changing over time. Having opinionated people in the team can help organizations move fast and make good decisions along the way. Exercised in right spirit, being opinionated benefits both the individual and the organization.
That’s all folks. Any feedback is welcome.