1
0
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:
Melinda Fekete 2025-01-21 09:33:26 +01:00 committed by GitHub
parent 874aeacca1
commit f268e1fba7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 20 deletions

View File

@ -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.
![Feature lifecycle](/img/feature-lifecycle.png)
### 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**.
![Feature lifecycle](/img/add-parent-flag.png)
![Feature parent flag](/img/add-parent-flag.png)
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.

View File

@ -212,19 +212,19 @@ Paying down technical debtin its simplest form, removing old flagsrequires
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