The colloquial “merge hell” experienced by developers attempting to merge long-lived feature branches into trunk is eliminated with feature flags. Features can now be developed directly in trunk and flagged to be disabled off so that they receive all updates to the code, but are not yet enabled before they’re ready to go. Gone are the days of developers rushing to be the first one done with their feature branch so they do not have to deal with the merge headaches.
Traditional software release practices require software and business teams to work lock-step with each other in order to align business and technical requirements before a release. The problem is, these teams are rarely working in perfect sync due to different priorities and timelines. Feature flags allow features to be deployed to production when the development team is ready, and revealed to customers when the business team is ready, removing the need for lock-step work and allowing each team to work at their own pace. This gets developers back to doing what they do best - creating the next big feature!
Feature flags provide a safe method for shifting a level of testing to production, from infrastructure testing to user acceptance testing (UAT). Even the best pre-production test environment cannot perfectly mirror the dynamics of production, and pushing code straight to production in a safe, partitioned way that does not impact the rest of users allows QA teams to get a realistic view of how a feature will perform in production without worrying about creating every possible scenario in a pre-production test environment.
Feature flags increase developer productivity by allowing in-progress features to be checked into the master code branch. They determine when code is turned on in production. This means features are decoupled from each other within a release, so they can be rolled out or rolled back independently. Developers are no longer tied up while the businesses determine feature launch timing, and this ensures that no one feature will hold up a release.
Quality assurance team(s) without access to the flag override view are typically stuck chasing each feature developer and waiting for them to modify code anytime QA needs to compare new and old functionality. This feedback loop could take hours if the developer is busy or days if the developer is on vacation, not to mention put a damper on developer productivity. With CloudBees Feature Management, QA can shorten the feedback cycle by having complete freedom to toggle flags in their environment with the click of a button. There is no need to rope in developers to modify code, rebuild, and deploy just to update a flag.