Software development “best practices” generally fall into two categories: universal truths that apply to all projects, and conditional best practices that only make sense in certain contexts.
Projects often run into trouble when they apply best practices at the wrong time.
Take, for example, a well-factored React Native app using Redux for state management. This setup works perfectly when you have a large team of engineers, as it helps them collaborate without stepping on each other’s toes—after all, that’s why Facebook created it.
But if your team only has two developers, you’re adding unnecessary complexity with little payoff.
The same goes for DevOps. It’s a best practice to use a load balancer in front of multiple web servers to ensure high uptime. But if your site only gets 100 visitors a day, this setup is overkill and just inflates your costs.
When considering how to apply best practices, always evaluate whether they make sense for where your business is today.