Comment by bob1029

1 year ago

> Can we ship right now? Feature flags are the best way I’ve seen to do this, but staging environments also work, and so on.

Feature flags are a super weapon if you are trying to keep the path to production clear, especially if you have a diverse deployment or customer base. They don't have to be a constant binary value either. I've set up "flags" that were SQL queries which produced the actual boolean fact based upon customer-specific data and requirements.

These things do tend to accumulate, but cleaning them up is easy as long as you have a way to report on the current configuration across all deployments. If two or more instances have different settings but their users seem happy with this arrangement, then you go the other way and promote the flag into some kind of official configuration abstraction.

Customer and environment specific branches quickly become a death spiral if you are trying to grow a B2B/SaaS product. I'd much rather fight a spreadsheet of flags & config than rebase branches and resolve conflicts that have silently piled up for the last several months.

> as long as you have a way to report on the current configuration across all deployments

This seems to be the hard part. Some of our deployments are not generally accessible to us.