Be Opinionated

Software grows, adding new features and paradigms along the way. If you're not careful, it becomes less opinionated about how or what is done. One small feature to support dynamic configuration begets a system of loading various file types and executing arbitrary code. Where there could have been one clear way to support this feature, there are now several confusing ones. Instead of having fewer opinions for more use cases, software should be more opinionated to focus on its core use cases.

Opinions imply constraints on our projects. They limit what we can do with the tools we are given. However, they also reduce the work we need to do, letting the tooling pick up the slack. Strong opinions allow software to be more focused and built more quickly. Accounting for fewer things also allows programs to be simpler. In turn, opinionated tools allow us to develop more focused, smaller, more opinionated applications. Rather than extending to every use case, it's important to maintain the core focus of your project; it's important to be opinionated.