Hivel
Hivel
Hivel
  • πŸ‘‹Welcome to Hivel
  • πŸš€Using Hivel
    • ⭐Cockpit Pro
      • ⬇️How to download reports
      • 🀝Meetings Breakdown
    • πŸƒβ€β™€οΈActivity
    • ⛑️Work Item Breakdown
    • βž•Hivel Quadrant
    • πŸ’°Investment
      • Issue Age
      • How to set up Products & Allocation tabs in the Investment Screen?
      • How to add Custom fields for Product and Allocation Label in Jira
    • πŸ’ŽPerformance Appraisal
    • 🎯Pull Request
      • Comments Categorization
      • Review Cycles
      • How to exclude outlier commits and PRs?
    • 🐞Quality (SonarQube)
    • ♨️Coding Hotspots
    • ⚽Goals
    • πŸ‘©β€πŸ«Process
    • πŸ–₯️Coding
      • Understanding Rework, New Work, and Maintenance
    • πŸ‘¨β€πŸŽ“Dev360
    • πŸ””Slack Alerts and Notifications
  • Copilot Adoption
  • πŸ“ŠMetrics & Definitions
    • πŸš…Speed
      • Deployment Frequency
      • Coding Time
      • Review Time
      • Merge Time
      • Cycle Time
      • Pickup time
    • πŸ’―Quality
      • Change Failure Rate
      • Maintenance
      • Rework
      • Mean Time to Restore (MTTR)
      • PRs merged without review
      • PR Reviewed
      • Flashy Reviews
      • PRs > 400 LoC
    • πŸ“ˆThroughput
      • New Work%
      • How are Active Days calculated
      • PRs Open, PRs Ready to Review or Merge
  • πŸ”—Integrations
    • List of all integrations
    • GitHub
      • How do I Signup using GitHub?
      • How to integrate additional Github accounts?
      • How to create Github fine-grained token for Hivel Integration?
      • How to reauthorize Github with a service account?
      • GitHub-Alternate SignUp Method Instructions
      • How to re-initiate GitHub integration with Hivel
    • Gitlab
      • Gitlab Server
      • Gitlab Cloud
      • How to ensure Gitlab token has access to required groups/repositories
    • BitBucket
      • BitBucket Integration
    • Jira
      • How to integrate Jira Cloud with Hivel
      • How to Re-authorize Jira in Hivel?
        • Page
      • How to Integrate Jira with OAuth 2.0
      • How to Re-authorize Jira with OAuth 2.0
      • How to integrate Jira Server with Hivel
    • Azure DevOps
    • Google Calendar
      • How to integrate Google Calendar in Hivel
    • Microsoft Outlook
    • Slack
    • SonarQube
    • Okta
    • Jenkins
    • Jenkins Freestyle Integration with Ansible and Hivel Webhook
  • On-Prem Setup
    • On-Prem Installation Guide
    • Jira On-Prem
    • Gitlab On-Prem
    • SonarQube On-Prem
    • Application Setup Guide: User Sign-up and Integration
    • Creating a Bitbucket App Password
    • On-Prem Outlook Integration
  • Github Copilot Integration
  • βš’οΈSetup
    • Sign Up
      • How to sign up to Hivel?
    • Users
      • How to invite more users to use Hivel?
      • How to add or update an user's email id?
      • How to merge users?
      • How to update the name of a user?
      • Can I see the data of a user or repo that I don’t have access to on my SCM tool?
      • How to archive users?
    • Teams
      • How to create teams?
      • How to delete a team?
      • How to modify a team?
      • How to create sub-teams?
    • Role-Based Access Control (RBAC)
    • βš™οΈConfigurations Explained
      • 🌴Branch Configurations
      • 🐞Hotfix Configurations
        • Track hotfixes via patch version pattern
      • Other Configurations
  • ⏭️Upcoming Features and Enhancements
  • Release Notes
    • Release Notes
      • Release Notes - October 2024
      • Release Notes - November 2024
      • Release Notes - December 2024
      • Release Notes - January 2025
      • Release Notes - February 2025
      • Release Notes - March 2025
      • Release Notes - April 2025
  • πŸ”API Documentation
    • 🏁Tracking Releases and Incidents with Hivel
    • Deployment API
    • Create Incident API
  • 🌟Insights and Best Practices
    • Developer's Guide to Hivel
    • πŸŽ–οΈBest Practices for Software Development Efficiency
    • 🧹Jira Best Practices
    • Tips and tricks to improve performance
      • How to improve Speed
        • What to do if my Cycle Time is high?
        • What to do if my Coding Time is high?
        • What to do if my Review Time is high?
        • What to do if my Merge Time is high?
      • How to improve Quality
        • What to do if my Rework is high?
        • What happens if there are too many Flashy Reviews and how to prevent them?
        • How to address and prevent unreviewed PRs
        • Strategies to Reduce Mean Time to Restore (MTTR)
        • Best Practices for Team Ownership in Code Review
        • How to identify root cases of high change failure rates?
        • Building a feedback loop for continuous code improvement
      • How to improve planning and throughput
        • Leveraging data for more effective sprint planning
        • What metrics can I use to prevent developer burnout?
      • How to track, manage, and reduce technical debt?
      • What are the impacts of context switching on developer productivity and how to reduce it?
      • How to build a data-driven culture of Engineering?
      • How to balance speed and quality?
  • FAQs
    • Why can't I remove a user from a team?
    • How to change a team owner?
    • How do we account for weekends in the metrics?
    • Are draft PRs considered for calculation of coding/cycle time?
    • Why do some metrics like PRs reviewed or merged have more than 100%?
    • How to mark leaves & absences?
    • Where can I see average PR sizes?
    • How do I link Pull Requests to Issues
    • Why is count of PRs reviewed or merged is different across screens?
    • Why is data of some members are not visible?
    • Why is there an abnormal spike in Cycle Time?
    • Why some of the repositories are not imported or synced?
    • How to get a report of monthwise developer activity metrics?
    • How can I see the progress against my goals?
    • How to see all the metrics by sprints or releases?
    • Why are commits done today are not reflecting immediately
    • Why Product and Allocation's previous data is not reflecting?
    • Why cannot I see cycle time against developers even though they have commits?
    • Why do some Jira issues show as spillover in Hivel even though they were completed in Jira?
    • Why is pickup time not included in cycle time?
    • How can I add a template in dashboards for my org to follow?
    • Can I get a detailed report of all the activity done by developer per day?
    • How do I exclude a PR from rework/maintenance/new work calculation?
    • Why don't I see delivery accuracy for Kanban boards?
    • Why do I see "NA" in the percentage change of a metric?
    • Why do I see "No existing user found" message while login
    • Why am I not able to select more than 6 months at a time?
    • Why does the filters change when I move to dashboards but in other screen it remains same?
    • How to validate the data on Hivel?
    • How to measure impact of Copilots using Hivel?
Powered by GitBook
On this page

Was this helpful?

  1. Using Hivel

Coding

PreviousProcessNextUnderstanding Rework, New Work, and Maintenance

Last updated 9 months ago

Was this helpful?

As we all may agree that engineering productivity cannot be measured by lines of code, it’s important to gain visibility into the percentage of code spent across various categories - New Work, Maintenance, and Rework.

Every line of code is classified into 3 categories, as explained below:

New Work

New Work is the amount of work newly created, or in other words launching new features. Every new line of code that’s written is called New Work and this measures the innovation percentage spent by the team.

How to use this data on a regular basis?

  • When the business is aiming to focus on innovation, watch out this space if the efforts are being put in the right direction

  • Do you have a complex legacy project and delivering new features is being delayed? This metric can show you to make your strategic move.

Rework

Rework as the name suggests is working on something, and then modifying or deleting it. But, there’s a catch. Anything we build ought to be modified/deleted, but doing so within 30 days of writing the code originally is what’s classified as rework.

Why 30 days? Most agile teams have a 2 - 3 week sprint cycle and a code rewritten within 30 days can cover all possible cases of rework listed here.

What are the causes for rework?

  • You write it first, and then polish it for performance or ease of maintenance

  • Fix features based on bugs reported in QA or Prod

  • Deliver the feature and then learn about changing scope or requirements

  • Or, something works on your local, but throws errors when integrated with systems

While a certain amount of rework is normal for any team, watching out for increased rework in a given time can help address issues earlier in the process.

Maintenance

Maintenance or refactoring or tech debt is required for any teams and is classified as code that’s modified/deleted which was originally written prior to 30 days.

While most teams take time to work on tech debt, it’s inevitable to modify some old code while building new features. It’s helpful to watch the repos/projects causing most maintenance, monitor ROI of such projects and take up corrective actions.

What are the causes for maintenance?

  • Complex architecture can make building new features harder without touching old code

  • Update applications to newer technologies or changing business requirements

  • Reduce code-bloat by removing unnecessary features/code that’s not in use anymore.


How to use this data on a regular basis?

The first step is to baseline the numbers for each team to see the percentage of new work, rework, maintenance and collaboration. And then, monitor for trends to see if the team’s work is reflecting your initiatives and goals.

What can be a few things to watch out for?

High maintenance could be a signal for tech debt. High rework can be a signal to demand better requirements.

For a more detailed explanation on how New Work, Rework, and Maintenance work, please refer to .

Refer to know how to exclude certain PRs and commits from the calculation.

πŸš€
πŸ–₯️
this article
here