Flow breaks work types into four metrics:
- New work tracks new code that doesn't replace other code.
- Legacy refactor tracks code older than 30 days that gets updates or edits.
- Help others tracks when a developer modifies someone else’s code newer than 30 days.
- Rework tracks code that’s rewritten or deleted by the original author within 30 days of being written.
In this article
New work
New work measures how much novel code is written over time.
The ideal target for New work depends on what phase a product and business are in. For example, it’s normal for a growing company to aim for more than 50% of their work to be New work, which is indicative of forward progress.
The leader in New work is also often the leader in Rework.
Legacy refactor
Legacy refactor is the process of paying down on technical debt, where code older than 30 days is rewritten.
As codebases age, some percentage of developer attention is required to maintain the code and keep things current. The challenge is that team leads need to properly balance this kind of work with creating new features: it’s bad to have high technical debt, but it’s even worse to have a stagnant product.
Traditionally, Legacy refactor is difficult to see. New feature development often implies re-working old code, so these activities are not as clear cut as they might seem in Scrum meetings.
This balancing act is not something that should be done in the dark, particularly when it’s vital to the success of the whole company.
Objectively tracking the percentage of time engineers spend on new features vs. application maintenance helps maintain a proper balance of forward progress with long-term codebase stability.
Experienced developers tend to have the highest Legacy refactor.
Help others
Help others describes how much an engineer has replaced another engineer's code that’s less than 30 days old.
Experienced developers tend to have the highest Help others, since they're most likely to spend more time mentoring and working with other members of the team.
Rework
Rework is the percentage of code that's rewritten or deleted by the original author within 30 days of being written.
Large deviations from your Rework baseline are early indicators that something may be affecting the health of your development lifecycle.
Note: Rework is the inverse of Efficiency.