What to do if my Rework is high?

Identify which team or repo

As a first step we should understand which team or repo is having high rework so that we can evaluate if that is expected or not given the business context and focus on them.

You can do this in the Cockpit, by switching to tabular view and sorting on rework column.

Drilldown further to identify user or PR

You can drill down and identify which users or PRs had the most rework by applying filters on the Coding screen.

Causes of high rework

  • Incomplete or Evolving Requirements: If requirements are not fully defined or evolve after coding has started, developers may need to revisit and modify code to accommodate new or refined expectations.

  • Poor Initial Design or Implementation: If the code is not well-designed or optimally implemented from the start, it may need to be refactored or rewritten shortly after being introduced.

  • Bug Fixes Post-Release: Bugs that are discovered after the code has been deployed often need to be fixed quickly, leading to rework within a short timeframe.

  • Technical Debt Payoff: If the initial implementation was rushed or done with known technical debt, there may be a need to revisit and clean up the code shortly after it was written.

Ways to address high rework

  • Improve Requirement Gathering and Stakeholder Alignment: Engage stakeholders early and frequently to ensure that all requirements are thoroughly understood and documented. Use user stories, acceptance criteria, and wireframes to clearly define expectations.

  • Invest in Design and Code Reviews: Allocate time for thorough design before implementation. Conduct design reviews with peers to identify potential issues early. Follow up with regular code reviews to ensure that the implementation aligns with the design and best practices.

  • Improve Release and Monitoring Processes: Implement a more rigorous testing and staging process before release to catch bugs earlier. Use continuous deployment practices with canary releases or blue-green deployments to minimize the impact of bugs.

  • Allocate Time for Refactoring and Debt Reduction: Regularly schedule time within sprints specifically for addressing technical debt. Encourage developers to refactor code as part of their daily work, rather than postponing it.

Last updated