Feature flagging tools like Launch Darkly, PostHog, and Flagsmith offer valuable capabilities such as A/B testing and phased rollouts. However, there is a hidden cost. Often, I use flags to commit unfinished code without creating a separate branch, allowing for a single source of truth and promoting agile development. For instance, while implementing a Gift Card feature, I only had the customer side working and wanted to hold back on enabling the admin side. Instead of creating another toggle, I opted for a simple hard-coded variable. Despite the need for a deployment to enable the feature, I believe this approach reduces complexity and integrates more smoothly. Surprisingly, around 80% of my recent feature flags serve the purpose of hiding unfinished code, supporting the importance of frequent deployments.
https://bitbytebit.substack.com/p/when-deployments-are-easy-code-becomes