The Untameable Mindset
4. Release or Disable Features Through Configuration

Avatar Edgar Ravenhorst

Written by: Edgar Ravenhorst, 24 mei 2024

Use feature toggles and configurations to release or disable features quickly. This approach allows for flexible adjustments without extensive code changes, enabling controlled rollouts and quick responses to feedback.

Feature toggles and configurations provide a way to manage feature visibility and availability dynamically. This method allows the team to enable or disable features quickly based on user feedback, business needs, or technical considerations, all without the need for extensive code changes or redeployment.

Key Principles

Implement feature toggles to control the release of new features and manage their availability. Use configuration files to adjust settings and features dynamically. Ensure that toggles and configurations are part of the development process, allowing for controlled rollouts, A/B testing, and quick disablement of problematic features.

Benefits

Using feature toggles and configurations provides flexibility and control over feature releases. It allows the team to respond swiftly to user feedback and business requirements. This approach reduces the risk of deploying new features and enables testing and experimentation without impacting the entire user base. Additionally, it minimizes downtime and enhances the ability to address critical issues promptly.

Implementation Strategies

Integrate feature toggles into the development workflow, allowing developers to enable or disable features as needed. Use configuration files to manage settings and feature states dynamically. Conduct regular reviews of active toggles and configurations to ensure they align with current project goals. Implement monitoring and logging to track feature performance and user feedback, enabling informed decisions about feature releases and adjustments.

Examples

A SaaS company uses feature toggles to release a new dashboard feature to a subset of users for beta testing. Based on the feedback, they make adjustments and gradually roll out the feature to all users. Another example is an e-commerce platform that uses configuration files to enable holiday-specific themes and promotions, allowing for quick updates without redeployment. If a critical issue arises, they can immediately disable the problematic feature, ensuring minimal disruption to users.

--

Read about other Aspects of the Untameable Mindset:

This page is part of a series on The Untameable Mindset. Explore the other aspects to learn more about the principles that guide our development practices and behaviors.

1: Unified Vision and Goals

Ensure everyone understands the project's vision and goals. This shared understanding guides decisions and actions across the team.

Learn more

2: Cross-Functional Collaboration

Foster collaboration among all roles by encouraging open communication and teamwork. This approach leverages diverse expertise and perspectives to solve problems and innovate effectively.

Learn more

3: MVP Driven: Start Small, Grow Big

Begin with a Minimum Viable Product (MVP) and scale up through iterative development. This approach allows for rapid deployment and user feedback while ensuring the product evolves robustly and sustainably.

Learn more

4: Release or Disable Features Through Configuration

Use feature toggles and configurations to release or disable features quickly. This approach allows for flexible adjustments without extensive code changes, enabling controlled rollouts and quick responses to feedback.

Learn more

5: Continuous Integration and Continuous Delivery (CI/CD)

Integrate and deliver code changes frequently with automated testing and deployment to ensure code quality and functionality. This approach promotes collaboration, reduces integration issues, and maintains a stable, deployable codebase.

Learn more

6: Pragmatic Testing of Code

Focus on tests that provide real value and insight. Identify critical paths and concentrate testing efforts on the most important areas to ensure high code quality and performance, avoiding over-testing.

Learn more

7: Automate Repetitive and Complex Tasks

Automate complex or repetitive tasks across the organization and for end-users to improve efficiency and free up time for more valuable work. This enhances productivity and ensures consistent execution.

Learn more

8: Prioritize Needs of the End-User and (Future) Developer

Prioritize both the end-user experience and future developer needs to ensure the product is user-friendly and maintainable. Involve users in design, maintain clear documentation, and follow best practices for code maintainability.

Learn more

9: Concise and Accessible Documentation

Maintain concise and accessible documentation to provide an overview of the software, its components, and critical business logic. This supports effective use and development without consuming excessive time.

Learn more

10: Continuous Feedback and Improvement

Foster a culture of continuous feedback and improvement. Regularly collect feedback from all stakeholders to refine processes and products, ensuring the development process is always evolving and adapting.

Learn more


Coffee time!

Interested in learning more about Untameable and how we work?Reach out and let's discover how to become Untameable together

Call us: +31 627 311 410

Email us: info@untameable.io

Follow us: LinkedIn