Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save EliFuzz/9297cfc1bdcd0bfe0770fe573b432d13 to your computer and use it in GitHub Desktop.
Save EliFuzz/9297cfc1bdcd0bfe0770fe573b432d13 to your computer and use it in GitHub Desktop.
Pros & Cons: Feature toggle deployment
Pros Cons
Faster feedback loop: can release new features faster and more frequently to production without waiting for long development cycles or approval processes. You can also get immediate feedback from real users in real environments instead of relying on simulated tests or staged environments Increased complexity and technical debt: Feature toggles introduce conditional logic, branching, and configuration that can make the code harder to read, test, and maintain. Moreover, feature toggles can accumulate over time and create a tangled mess of code that is difficult to refactor or remove. This can lead to performance issues, bugs, and security risks
Reduced risk: can minimize the impact of deploying new features on your system and users by limiting their exposure and scope. You can also easily revert or disable problematic features without having to redeploy your code or roll back your database Reduced code quality and reliability: Feature toggles can create hidden dependencies, conflicts, and edge cases that are not detected by automated tests or code reviews. Furthermore, feature toggles can introduce inconsistencies and discrepancies between different environments, such as development, testing, staging, and production. This can result in unexpected behaviors, failures, and outages
Increased flexibility: can experiment with different variations of your features and compare their results without having to create multiple branches or versions of your code. You can also adapt your features to different user segments or contexts without having to create multiple configurations or deployments of your system Increased operational overhead and risk: Feature toggles require careful management, monitoring, and documentation to ensure that they are used correctly and consistently. Moreover, feature toggles can create operational challenges and hazards when they are turned on or off, such as data migration, rollback, or rollback failure. These scenarios can cause downtime, data loss, or corruption
Improved quality: can improve the quality of your features by testing them in production with real data and traffic instead of synthetic data and traffic. You can also detect and fix bugs faster by isolating them from other parts of your system Decreased user satisfaction and trust: Feature toggles can create a fragmented and inconsistent user experience that can confuse, frustrate, or alienate users. Moreover, feature toggles can create a perception of low quality, instability, or insecurity in the software that can damage the reputation and credibility of the software provider
Enhanced collaboration:can collaborate better with other stakeholders such as product managers, designers, marketers, testers, etc., by giving them more control and visibility over the features they are working on. You can also align your features with business goals and customer needs by using data-driven decision making
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment