I came across this term while listening to a fine interview with Chad Pythel, CEO of Thoughtbot. The company is truly amazing for the level of work they do, the blog, podcasts and open source projects. You can find more nuggets of wisdom and insights into how this company works by reading Thoughtbot’s Playbook.
Enough about them, let’s get into the idea itself. We can clearly split it in two parts:
We deeply understand the technology we’re using. Not only the cool stuff, but also the downsides and limitations. It’s a strong opinion because we can stand by it.
We’re open to change. However because we have a strong, grounded opinion, there must be a systematic way of assessing new technology. It’s not about the freshness, but the new characteristics and capabilities it enables.
By contrast, this is what you’ll expect from different approaches:
|Strong opinions||Weak opinions|
|Tightly held||uses technology to it's full potential,
but won't change it when time comes
|arbitrary choice of technology,</br> think it's right so won't accept changes|
|Loosely held||uses technology to it's full potential,
open to change when needed
|follows every hacker news bandwagon|
You can be, and probably are, in a different quadrant in regard to each layer of your technology stack and organizational aspect of your company. Examples:
- Postgres database for the right project. strong / loose
- Postgres database for the non-relational or ephemeral parts of the project. strong / tight
- By the book Scrum that’s slowing you down, but hey it’s Scrum! weak / tight
In short, you must master your tools in order to have strong opinions about it. But you must stay humble and open to change, as environment changes might make your beloved technology the square peg in a round hole. And as time passes, a new technology will inevitably outperform your home boy.