mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-10 01:16:39 +02:00
Update docs and screenshots for lifecycle (#9120)
Updates feature lifecycle docs with new names and an updated screenshot.
This commit is contained in:
parent
874aeacca1
commit
f268e1fba7
@ -87,40 +87,40 @@ With Admin access, you can configure these values. In the Admin UI, go to **Conf
|
||||
|
||||
:::
|
||||
|
||||
Based on usage metrics and interactions with Unleash, feature flags can go through five distinct lifecycle stages: initial, pre-live, live, completed, and archived. These stages mirror the typical software development process and allow you to identify bottlenecks at any stage of the lifecycle.
|
||||
Based on usage metrics and interactions with Unleash, feature flags can go through five distinct lifecycle stages: _Define_, _Develop_, _Production_, _Cleanup_, and _Archived_. These stages mirror the typical software development process and allow you to identify bottlenecks at any stage of the lifecycle.
|
||||
These insights can help you improve the efficiency of your software development process.
|
||||
|
||||

|
||||
|
||||
### Lifecycle stages
|
||||
|
||||
#### Initial
|
||||
#### Define
|
||||
|
||||
The feature flag is created, but Unleash hasn't detected any metrics in any environments. Once Unleash receives metrics from a [non-production environment](/reference/environments#environment-types), the flag moves to the [pre-live](#pre-live) stage.
|
||||
The feature flag is created, but Unleash hasn't detected any metrics in any environments. Once Unleash receives metrics from a [non-production environment](/reference/environments#environment-types), the flag moves to the [Develop](#develop) stage.
|
||||
|
||||
A feature stuck in an initial stage can indicate integration issues in pre-production setups.
|
||||
A feature stuck in a _Define_ stage can indicate integration issues in pre-production setups.
|
||||
|
||||
#### Pre-live
|
||||
#### Develop
|
||||
|
||||
The feature flag has received metrics in a non-production environment or a [production environment](/reference/environments#environment-types) that is disabled. Too much time in the pre-live stage can suggest challenges in achieving production readiness.
|
||||
The feature flag has received metrics in a non-production environment or a [production environment](/reference/environments#environment-types) that is disabled. Too much time in the _Develop_ stage can suggest challenges in achieving production readiness.
|
||||
|
||||
#### Live
|
||||
#### Production
|
||||
|
||||
The first users have been exposed to the feature in a [production environment](/reference/environments#environment-types). Once you have enough production usage data, you can mark the feature as completed. Marking the feature flag as complete does not affect any configuration; you decide whether to keep the feature, keep just one variant of it, or archive it entirely.
|
||||
|
||||
This stage serves as a reminder to start cleaning up the feature toggle and removing it from the code. A feature flag stuck in the live stage can indicate difficulties in data gathering or decision-making.
|
||||
This stage serves as a reminder to start cleaning up the feature toggle and removing it from the code. A feature flag stuck in the _Production_ stage can indicate difficulties in data gathering or decision-making.
|
||||
|
||||
#### Completed
|
||||
#### Cleanup
|
||||
|
||||
The feature has been completed but Unleash still receives usage metrics in [production](/reference/environments#environment-types). This is an indication that you should clean up the feature flag from your code before archiving it.
|
||||
If you've accidentally marked the feature as completed, you can revert it to the [live](#live) stage.
|
||||
If you've accidentally marked the feature as completed, you can revert it to the [Production](#production) stage.
|
||||
|
||||
Too much time in the completed stage can indicate delays in decommissioning the feature and cleaning up resources.
|
||||
|
||||
#### Archived
|
||||
|
||||
Unleash hasn't detected any production usage metrics for at least two days. It's likely that it is safe to archive this flag.
|
||||
If an archived feature is revived, it starts a new lifecycle with a new [initial](#initial) stage.
|
||||
If an archived feature is revived, it starts a new lifecycle with a new [Define](#define) stage.
|
||||
|
||||
## Feature flag dependencies
|
||||
|
||||
@ -142,7 +142,7 @@ A child feature flag is evaluated only when both the child and its parent featur
|
||||
|
||||
To add a dependency, you need the `update-feature-dependency` project permission. In the Admin UI, go to the feature flag you want to add a parent to and select **Add parent feature**.
|
||||
|
||||

|
||||

|
||||
|
||||
Archiving a child feature flag also removes its dependencies on parent feature flags. A parent feature cannot be archived if it has any child dependencies; in such cases, remove the dependencies, or archive both parent and child together.
|
||||
|
||||
|
@ -212,19 +212,19 @@ Paying down technical debt–in its simplest form, removing old flags–requires
|
||||
|
||||
All feature flags progress through a set of predefined lifecycle stages even if these stages are not explicitly defined in your feature flag system:
|
||||
|
||||
- Initial: The feature flag is defined, but no code implementation has begun.
|
||||
- Pre-Live: Some code is implemented, but the feature is not enabled for any users in production. Internal testing and validation are ongoing.
|
||||
- Live: The code is deployed to production and gradually rolled out to a controlled set of users for validation with real users.
|
||||
- Completed: A team has decided to keep or cancel the feature. The feature flag still exists, but it is now time to clean up the code protected by it to ensure no more technical debt is acquired.
|
||||
- Define: The feature flag is defined, but no code implementation has begun.
|
||||
- Develop: Some code is implemented, but the feature is not enabled for any users in production. Internal testing and validation are ongoing.
|
||||
- Production: The code is deployed to production and gradually rolled out to a controlled set of users for validation with real users.
|
||||
- Cleanup: A team has decided to keep or cancel the feature. The feature flag still exists, but it is now time to clean up the code protected by it to ensure no more technical debt is acquired.
|
||||
- Archived: The feature flag has reached its end-of-life and has been disabled. The code associated with the feature flag is cleaned up to avoid technical debt.
|
||||
|
||||
By monitoring feature progression through the lifecycle stages, organizations gain valuable insights from which they can benefit to improve their development process and pay down technical debt. Some key benefits of tracking feature flag lifecycle include:
|
||||
|
||||
- Identifying Bottlenecks: Teams can analyze the average time spent in each stage and pinpoint bottlenecks. Some examples include:
|
||||
1. Stuck in Initial: This may indicate issues like unclear requirements or integration difficulties in pre-production environments.
|
||||
2. Stuck in Pre-live: Suggest challenges in achieving production readiness, like incomplete testing or code bugs.
|
||||
3. Stuck in Live: This could imply difficulties gathering data or making decisions about the feature's future (e.g., lack of clear success metrics).
|
||||
4. Stuck in Completed: Signals delays in decommissioning the feature flag and cleaning up resources, potentially creating technical debt.
|
||||
1. Stuck in Define: This may indicate issues like unclear requirements or integration difficulties in pre-production environments.
|
||||
2. Stuck in Develop: Suggest challenges in achieving production readiness, like incomplete testing or code bugs.
|
||||
3. Stuck in Production: This could imply difficulties gathering data or making decisions about the feature's future (e.g., lack of clear success metrics).
|
||||
4. Stuck in Cleanup: Signals delays in decommissioning the feature flag and cleaning up resources, potentially creating technical debt.
|
||||
- Easily Remove Stale Feature Flags: Feature flags left active after their purpose is served tend to create technical debt. This code is unused, increasing the risk of accidental exposure in production and making the codebase more complex to maintain. By retiring flags promptly, developers understand which code sections can be safely cleaned up, reducing technical debt.
|
||||
- Data-Driven Insights: By collecting and aggregating metrics across features and teams over time, organizations gain valuable insights into team performance trends. Suddenly, it is easy to measure time-to-production or the number of times we need to disable a feature in production. Over time, this level of insights allows organizations to identify gradual changes in team efficiency or identify areas needing improvement that might otherwise go unnoticed.
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 88 KiB |
Loading…
Reference in New Issue
Block a user