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
  • Here are some scenarios to help you understand the differences between Rework, New Work, and Maintenance (for the examples we will consider "T" as today):
  • Scenario 1: 2 lines of code were removed and replaced by 5 lines
  • Scenario 2: 3 lines are added in before 1 line (the original 1 line is moved to last)
  • Scenario 3:
  • Scenario 4: A whitespace was added to one line, and the code was indented on another line
  • Scenario 5: I made some changes in .settings file, will those also be tracked in calculation?
  • Scenario 6: 1 word from 1 line was deleted
  • Scenario 7: 1 word from 1 line was deleted and replaced with another 1 word
  • Scenario 8: 2 words from 1 line were deleted and replaced by 1 word
  • Scenario 9: 3 words were added towards the end of 1 existing line of code

Was this helpful?

  1. Using Hivel
  2. Coding

Understanding Rework, New Work, and Maintenance

Key Scenarios Explained

First let us understand what does each of the metric mean:

Maintenance:

Maintenance is the lines of code modified that were written before the last 30 days. This is also synonymous with Refactor or Tech Debt.

Maintenance Percentage =
(lines of code modified that were written prior to 30 days) / (total lines of code
added or modified)
  • It is 30 days by default but is configurable in the settings page.

Rework:

Rework refers to the changes made to code that was initially written within the last 30 days. It provides insights into the stability and quality of recent code changes. This can usually happen due to developer fixing QA bugs or responding to PR review feedback.

Rework Percentage =
(lines of code modified that were written in the last 30 days) / (total lines of 
code added or modified)

sdfdsf

New Work:

It shows the total lines of code added or modified.

New Work Percentage =
(lines of code that were written in the specified duration) / (total lines of code 
added or modified)

Here are some scenarios to help you understand the differences between Rework, New Work, and Maintenance (for the examples we will consider "T" as today):

Scenario 1: 2 lines of code were removed and replaced by 5 lines

Before: T

let a = 10;
let b = a * 2;

After: T + 10

let a = 10;
let b = 0;
if (a > 0) 
    b = a * 2;
else 
    b = 1;

Rework : 2, since the lines were deleted/modified within 10 days

New Work : 5, since in total 5 lines were added to the code

Maintenance : 0

Scenario 2: 3 lines are added in before 1 line (the original 1 line is moved to last)

Before: T

let total = 100;

After: T + 60

let discount = 10;
let tax = 5;
let subtotal = 90;
let total = 100;

Rework : 0, since there are no modifications in the existing lines of code

Maintenance : 0, since there are no modifications in the existing lines of code

New Work : 3, these are fresh lines of code and no changes were made to the existing lines, it will only be considered in New Work and not Rework or Maintenance.

Scenario 3:

Case 1: Five lines of code were written 5 months ago and were modified today.

Case 2: Additional changes will be made to the same lines 10 days from now.

  • For the first case, since the original code was written 5 months ago, it will be considered as Maintenance.

  • For the second case, since it is an updated version of the code and changes were done >10 days ago, it will be considered as Rework.

Scenario 4: A whitespace was added to one line, and the code was indented on another line

Before: T

if(a > b){
    return a;
}

After: T + 80

if (a > b) {  // Added a whitespace between 'if' and the parenthesis
        return a;   // Indented this line by an extra tab
}

Rework : 0, whitespaces and indentations do not get considered as change

Maintenance : 0, whitespaces and indentations do not get considered as change

New Work : 0, since there were no additions to the lines

Scenario 5: I made some changes in .settings file, will those also be tracked in calculation?

  • For our processing and calculations, we automatically exclude files and directories that start or end with the following: .settings, dist, tmp, out-tsc, node_modules, bower_components, .idea, typings, .vscode, vendor/, coverage.

  • Additionally, if any files contain the following in their paths, they are also excluded: src, assets, images.

  • All of these options can be adjusted on the settings page, where you can also specify additional files to be excluded.

Scenario 6: 1 word from 1 line was deleted

Before: T

let greeting = "Hello, World!";

After: T + 20

let greeting = "Hello!";

Rework : 1, since modification was made to code within 20 days

New Work : 1, since any change other than a complete line deletion is considered an edit

Maintenance : 0

Scenario 7: 1 word from 1 line was deleted and replaced with another 1 word

Before: T

let greeting = "Hello, World!";

After: T + 60

let greeting = "Hello, Everyone!";

Rework : 0, since no modifications were made within Rework period

Maintenance : 1, since modifications were made to code post the Rework period of 30 days

New Work : 1, since each character replaced or added in any line of code is considered as New Work

Scenario 8: 2 words from 1 line were deleted and replaced by 1 word

Before: T

let status = "Task is pending";

After: T + 5

let status = "Pending";

Rework : 1

  • since modifications were made to the code within the Rework period of 30 days

  • the LoC changed is 1 since we only consider the lines of code where changes were made, not the number of characters

New Work : 1, since something was added to the line of code

Maintenance : 0

Scenario 9: 3 words were added towards the end of 1 existing line of code

Before: T

let message = "Hello";

After: T + 90

let message = "Hello, how are you";

Maintenance : 1

  • since modifications were made to the code post the Rework period

  • even though the code was added at the end, it is still part of a line of code and therefore will be considered as a change.

New Work : 1, since something was added to the line of code

Rework : 0

PreviousCodingNextDev360

Last updated 8 months ago

Was this helpful?

For more information or assistance, please contact our support team at .

🚀
🖥️
support@hivel.ai