When you talk to enough customers, you get a good feel for a trend. What you can't do is put hard numbers around it. One of the latest such trends is the movement towards continuous development and the need for feature flags to enable that.
We knew that feature flags enable developers to move fast while breaking nothing. But we also wanted to know:
■ What does "move fast" mean?
■ How often do developers release new versions and new features?
■ How prevalent are feature flags?
■ What are the main drivers to adopting feature flags?
■ What are the limitations and challenges?
■ What other solution fits into modern software development?
To find the answers, Rollout, with Atlassian, turned to Vanson Bourne to field a survey with 500 software development decision makers in North America, England, France and Germany.
The results surprised us. We knew there was a shift towards agile development and increased use of feature flags. We just didn't know how prevalent it was. In fact, the survey revealed that nearly all (95%) respondents' organizations have implemented, have begun implementing, or plan to implement feature flags in the future.
The benefits of implementing feature flags also became clear. Almost all (99%) of respondents experienced or expect to experience benefits from the implementation of feature flags, including reduced risk (46%), increased speed of development (46%) and increased speed of deployment (45%). In fact, 97% of respondents told us that it's important for their organization to implement new features quickly.
When it comes to the benefits, organizations that already implemented features flags find it less difficult to develop new features quickly:
■ Only 56% of those who implemented feature flags say its difficult (compared with 80% who haven't implemented feature flags yet).
■ On average, they tend to have built more applications (22) compared to 16 for those who started to implement feature flags, and 14 for those who plan to implement.
■ Another interesting statistic is the direct correlation between having feature flags implemented and the velocity of releasing new version updates.
However, 65% of respondents told us that implementing feature flags had difficulties. Challenges associated with using feature flags included increased complexity (47%), time consuming (41%) and managing large numbers of flags (33%).
88% said that they would at least consider moving to a 3rd party solution, with the reasons being:
■ The cost of in-house development is higher (37%)
■ The system needs to have more capabilities than previously planned (32%)
■ It is more complex than previously anticipated (29%)
We knew that feature flags were becoming a "must have" for modern software development organizations. When executed correctly, feature flags play an important role in helping software organizations move faster without introducing new risks. At the same time, feature flags could also introduce new challenges — manageability and scale. To mitigate these challenges, organizations should consider using third party solutions designed to help manage feature development and deployment.
Finally, treat feature flags as an integral part of the software release process, making sure they do not circumvent any of the organization's current software development and release processes or checks and balances.