Leveraging Feature Flags and Experiments for Our Development and Deployment Strategy

Nazan Ozcelik Sahan
Scout24 Engineering
4 min readJun 5, 2024

Feature flags and experiments have emerged as indispensable tools for modern software development, enabling teams to release new features, efficiently integrate and deploy code in trunk-based development, test hypotheses, and gather valuable user feedback with confidence and precision.

At Scout24, we’re all about pushing the boundaries of innovation while ensuring a seamless user experience. To thrive in this environment, at Scout24 we iterate on our products and services, testing innovative ideas and features to meet evolving user needs. Two powerful tools that enable this iterative approach are feature flags and experiments. Let’s explore how these techniques are driving innovation in Scout24.

Embracing Feature Flags for Flexibility and Control

Feature flags, also known as feature toggles, are a development technique that allows developers to turn features on or off at runtime or compile time.

In our development workflow, feature flags are the bread and butter of our release strategy. We use them to control the rollout of new features, enabling us to deploy them with confidence and flexibility. Whether it is a major product enhancement or a minor tweak, feature flags allow us to release changes gradually, monitor their performance in real-time, and react instantly if any issues arise. We can target specific user segments and customize the user experience based on their preferences and behavior.

  • Mitigate Risk: Gradually rolling out features reduces the risk of bugs or performance issues affecting all users simultaneously.
  • Improve Flexibility: With feature flags, our team can easily enable or disable features without needing to redeploy code, providing greater flexibility in managing feature releases.
  • Optimize User Experience: Feature flags enable our team to collect user feedback on specific features as they are released, allowing us to make data-driven decisions to improve the user experience.
The `authenticateUser` function in Kotlin takes `username` and `password` as parameters to handle user authentication. It uses a FeatureFlagManager to check if the `”TN_234_OAUTH”` feature flag is enabled. If the flag is enabled, the function will execute OAuth authentication logic. If the flag is not enabled, it will use traditional username and password authentication. This setup allows dynamic switching between authentication methods based on the feature flag’s status.

Driving Innovation Through Experimentation

Experimentation is at the heart of everything we do. With an experimentation platform, we can test hypotheses, measure the impact of changes, and make data-driven decisions with ease. Whether it is conducting A/B tests to compare different variations of a feature or running multivariate tests to fine-tune our user interface, experimentation empowers us to iterate quickly and optimize our product continuously. And with monitoring tools, we can track the success of our experiments in real-time, ensuring that every decision is backed by actionable insights.

Validating Hypotheses: Experimentation enables our team to test hypotheses about user behavior, feature performance, and product enhancements, ensuring that decisions are grounded in data.

Optimizing Conversion Rates: Experimentation allows us to experiment with different variations of a feature or user interface to identify the most effective designs for driving conversions and engagement.

Personalizing User Experiences: Experimentation platforms enable us to deliver personalized experiences by tailoring content and features to specific user segments based on their preferences and behavior.

The LandingPage function in React determines the layout variant using ExperimentManager.getVariant(“TN_123_LAYOUT”). Based on the variant, it conditionally renders different layouts. If the variant is “variantA”, it displays a heading “Real Estate Landing Page,” an image, and a “Create” button. If the variant is not “variantA”, it shows an image, a heading “Explore the Real Estates,” and an “Edit” button. This setup allows A/B testing of different page layouts.

Best Practices for Success

To harness the full potential of feature flags and experiments, we follow these best practices:

  • Naming Convention: In our development process, we carefully label each of our feature flags or experiments with an ID and a descriptive name. This practice enables us to easily identify and manage them throughout their lifecycle. Once we have concluded our testing or experimentation phase, we promptly delete these flags or experiments. Additionally, to ensure our codebase remains tidy and organized, each developer creates a corresponding clean-up task immediately after creating a feature flag or experiment. This proactive approach helps maintain the cleanliness and efficiency of our development environment.
  • Development: We utilize feature flags and experiments in both our front-end and back-end environments. This allows us to select the most straightforward and crucial method for implementation.
  • Define Clear Objectives: Clearly define the goals and success metrics for each experiment or feature release to ensure alignment and focus.
  • Start Small, Iterate Often: Begin with small experiments and iterate based on feedback and data to minimize risk and maximize learning.
  • Monitor Performance: Continuously monitor the performance of features and experiments to identify opportunities for optimization and improvement.

Conclusion

At Scout24, feature flags and experiments have become integral parts of our development process, complemented by other appealing technology tools.

If you are interested in joining the leading real estate online platform in Germany and aspire to work within a team driven by data and evolving with cutting-edge technologies, please review our open job listings here and submit your resume. We are continuously seeking individuals who are inquisitive, passionate about technology, and committed to collaborative teamwork. Thanks for reading!

--

--