Skip to main content

Feature Lifecycle

Understand the complete lifecycle of a feature from idea to sunset.

Stages​

1. Idea​

The feature starts as an idea or requirement.

  • Documentation: Document the idea and requirements
  • Planning: Plan the implementation approach
  • Feature Flag: Create a feature flag (disabled) for the feature

2. Development​

Build the feature behind a feature flag.

  • Code: Implement the feature
  • Testing: Test the feature thoroughly
  • Feature Flag: Keep the flag disabled during development

3. Beta​

Test the feature with a small group of users.

  • Enable Flag: Enable for beta users or internal team
  • Monitor: Watch metrics and gather feedback
  • Iterate: Make improvements based on feedback

4. Gradual Rollout​

Gradually roll out to more users.

  • Start Small: Begin with 1-5% of users
  • Increase Gradually: Increase to 10%, 25%, 50%, 100%
  • Monitor Closely: Watch metrics and error rates

5. General Availability (GA)​

Feature is available to all users.

  • Full Rollout: Enable for 100% of users
  • Monitor: Continue monitoring metrics
  • Documentation: Update user documentation

6. Maintenance​

Ongoing maintenance and improvements.

  • Monitor: Track usage and performance
  • Optimize: Make performance improvements
  • Update: Add new capabilities

7. Sunset​

Feature is deprecated and removed from your codebase.

  • Announcement: Announce deprecation to users
  • Migration: Help users migrate to replacement feature
  • Remove Code: Remove the feature code and feature flag checks from your codebase
  • Remove from Toggly: Once code is removed, archive or delete the flag in Toggly
Why Keep the Flag Until Code Removal?

Don't remove flags from Toggly immediately after deployment or when permanently enabling them. Keep the flags until you've removed the feature from your codebase. The feature flag checks in your code serve as markers that make it easy to find all parts of the feature when it's time to remove it. Use Stale Detection to identify flags that haven't been checked recently and may be ready for removal.

Best Practices​

  1. Always Use Feature Flags: Create flags for all new features
  2. Start Disabled: Always start with flags disabled
  3. Test Thoroughly: Test in development and staging
  4. Monitor Continuously: Watch metrics throughout the lifecycle
  5. Document Decisions: Record why decisions were made

Next Steps​