IP Library › Granted Patent US 12,360,761
Granted Patent B2
US 12,360,761 · App. 17/536,654 · Granted Jul 15, 2025

Machine learning-based prediction of completion time of software code changes

Inventors: Vineeth Sreedharan (Bangalore, IN); Kishore Gr (Mysore, IN); Tamilarasan Janakiraman (Tamilnadu, IN)
Assignee: Dell Products L.P.
G06F8/70G06F8/30G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,360,761
App. No.
17/536,654
Granted
Jul 15, 2025
Kind
B2
Abstract

Techniques are provided for machine learning-based prediction of completion time of software code changes. One method comprises obtaining events related to software code changes; applying the events to a machine learning model that predicts a completion time of the software code changes, wherein the machine learning model is trained using (i) events for historical software code changes and (ii) a completion time for each historical software code change; and performing a remedial action based on the predicted completion time. The remedial action may comprise generating a notification, and/or adjusting an allocation of resources assigned to a completion of the software code changes. The software code changes can be monitored and a new event related to the software code changes can be applied to the machine learning model to obtain an updated predicted completion time for the changes to the software code.

Claims (32)

1. A method, comprising:

in response to obtaining one or more designated events in a software development environment related to one or more changes to software code made in one or more branches of the software code in the software development environment, wherein the one or more designated events in the software development environment comprise one or more of a create branch event, a code change event, a commit change event, a pull request event, a reviewer comment event, a merge request event, a continuous integration/continuous deployment event and a code analysis tool event:

applying at least some of the one or more designated events to a machine learning prediction model that predicts a completion time of the one or more changes to the software code, wherein the machine learning prediction model is trained to predict the completion time using (i) one or more historical events for respective ones of a plurality of historical software code changes and (ii) a completion time label, used for a supervised learning of the machine learning prediction model, for each historical software code change, wherein the completion time label for each historical software code change indicates a completion time of the respective historical software code change, and wherein the completion time of a given historical software code change corresponds to a time when the given historical software code change, in the one or more branches of the software code in the software development environment, is merged with a main branch of the software code in the software development environment, wherein the one or more branches of the software code are distinct from the main branch of the software code; and

performing one or more automated actions based at least in part on the predicted completion time;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 , wherein the one or more designated events in the software development environment comprise events occurring between an opening of a request to review the one or more changes to the software code and a completion of the one or more changes to the software code.

3. The method of claim 1 , wherein the one or more designated events in the software development environment are obtained from a messaging layer of a sequential message queue.

4. The method of claim 1 , wherein the one or more automated actions comprise one or more of generating at least one notification responsive to the predicted completion time, and adjusting an allocation of resources assigned to the completion of at least one of the one or more changes to the software code.

5. The method of claim 1 , further comprising monitoring the one or more changes to the software code and applying a new event related to the one or more changes to the software code to the machine learning prediction model to obtain an updated predicted completion time for the one or more changes to the software code.

6. The method of claim 1 , further comprising obtaining a predicted completion time for each of a plurality of sets of changes to the software code within a project and aggregating the predicted completion time for each set of changes to obtain a predicted completion time for the project.

7. The method of claim 1 , wherein a project comprises a plurality of sets of changes to the software code and further comprising obtaining a predicted completion time for each set of changes within the project and identifying one or more sets of changes having a corresponding predicted completion time that occurs after a specified completion time for the project.

8. The method of claim 1 , further comprising preprocessing at least some data related to the at least some of the one or more designated events to satisfy one or more data processing criteria of the machine learning prediction model.

9. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to implement the following steps:

in response to obtaining one or more designated events in a software development environment related to one or more changes to software code made in one or more branches of the software code in the software development environment, wherein the one or more designated events in the software development environment comprise one or more of a create branch event, a code change event, a commit change event, a pull request event, a reviewer comment event, a merge request event, a continuous integration/continuous deployment event and a code analysis tool event:

applying at least some of the one or more designated events to a machine learning prediction model that predicts a completion time of the one or more changes to the software code, wherein the machine learning prediction model is trained using (i) one or more historical events for respective ones of a plurality of historical software code changes and (ii) a completion time label, used for a supervised learning of the machine learning prediction model, for each historical software code change, wherein the completion time label for each historical software code change indicates a completion time of the respective historical software code change, and wherein the completion time of a given historical software code change corresponds to a time when the given historical software code change, in the one or more branches of the software code in the software development environment, is merged with a main branch of the software code in the software development environment, wherein the one or more branches of the software code are distinct from the main branch of the software code; and

performing one or more automated actions based at least in part on the predicted completion time.

10. The apparatus of claim 9 , wherein the one or more designated events in the software development environment comprise events occurring between an opening of a request to review the one or more changes to the software code and a completion of the one or more changes to the software code.

11. The apparatus of claim 9 , wherein the one or more automated actions comprise one or more of generating at least one notification responsive to the predicted completion time, and adjusting an allocation of resources assigned to the completion of at least one of the one or more changes to the software code.

12. The apparatus of claim 9 , further comprising monitoring the one or more changes to the software code and applying a new event related to the one or more changes to the software code to the machine learning prediction model to obtain an updated predicted completion time for the one or more changes to the software code.

13. The apparatus of claim 9 , further comprising obtaining a predicted completion time for each of a plurality of sets of changes to the software code within a project and aggregating the predicted completion time for each set of changes to obtain a predicted completion time for the project.

14. The apparatus of claim 9 , wherein a project comprises a plurality of sets of changes to the software code and further comprising obtaining a predicted completion time for each set of changes within the project and identifying one or more sets of changes having a corresponding predicted completion time that occurs after a specified completion time for the project.

15. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following steps:

in response to obtaining one or more designated events in a software development environment related to one or more changes to software code made in one or more branches of the software code in the software development environment, wherein the one or more designated events in the software development environment comprise one or more CI/CD events of a create branch event, a code change event, a commit change event, a pull request event, a reviewer comment event, a merge request event, a continuous integration/continuous deployment event and a code analysis tool event:

applying at least some of the one or more designated events to a machine learning prediction model that predicts a completion time of the one or more changes to the software code, wherein the machine learning prediction model is trained using (i) one or more historical events for respective ones of a plurality of historical software code changes and (ii) a completion time label, used for a supervised learning of the machine learning prediction model, for each historical software code change, wherein the completion time label for each historical software code change indicates a completion time of the respective historical software code change, and wherein the completion time of a given historical software code change corresponds to a time when the given historical software code change, in the one or more branches of the software code in the software development environment, is merged with a main branch of the software code in the software development environment, wherein the one or more branches of the software code are distinct from the main branch of the software code; and

performing one or more automated actions based at least in part on the predicted completion time.

16. The non-transitory processor-readable storage medium of claim 15 , wherein the one or more automated actions comprise one or more of generating at least one notification responsive to the predicted completion time, and adjusting an allocation of resources assigned to the completion of at least one of the one or more changes to the software code.

17. The non-transitory processor-readable storage medium of claim 15 , further comprising monitoring the one or more changes to the software code and applying a new event related to the one or more changes to the software code to the machine learning prediction model to obtain an updated predicted completion time for the one or more changes to the software code.

18. The non-transitory processor-readable storage medium of claim 15 , further comprising obtaining a predicted completion time for each of a plurality of sets of changes to the software code within a project and aggregating the predicted completion time for each set of changes to obtain a predicted completion time for the project.

19. The non-transitory processor-readable storage medium of claim 15 , wherein a project comprises a plurality of sets of changes to the software code and further comprising obtaining a predicted completion time for each set of changes within the project and identifying one or more sets of changes having a corresponding predicted completion time that occurs after a specified completion time for the project.

20. The non-transitory processor-readable storage medium of claim 15 , wherein the one or more designated events in the software development environment are obtained from a messaging layer of a sequential message queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2021
From: SREEDHARAN, VINEETH; GR, KISHORE; JANAKIRAMAN, TAMILARASAN
To: DELL PRODUCTS L.P.
Reel/Frame 058228/0368 →
Continuity (1)
Related Publication 20230168883A1 · Jun 1, 2023
References Cited (12)
US 20070294684A1 · Kumashiro · 2007 [cited by examiner]
US 20090150878A1 · Pathak · 2009 [cited by examiner]
US 20170364824A1 · Boyer · 2017 [cited by examiner]
US 20200147791A1 · Safary · 2020 [cited by examiner]
US 20210055995A1 · Biernacki · 2021 [cited by examiner]
US 20210263728A1 · Farrier · 2021 [cited by examiner]
US 20220350588A1 · Liao · 2022 [cited by examiner]
Castrounis, Alex, “Software Development Time Estimation Issues and Alternative Approaches”, https://www.innoarchitech.com/blog/software-development-time-estimation-issues-and-alternative-approaches, downloaded on Nov. 1… [cited by applicant]
Shiklo, Boris, “Steps to Nail Software Development Time Estimation”, https://www.scnsoft.com/blog/software-development-time, dated Dec. 16, 2019, downloaded on Nov. 17, 2021. [cited by applicant]
“Time Estimation in Software Development”, https://medium.com/globalluxsoft/time-estimation-in-software-development-a4a495c8eb6c; Globalluxsoft, dated Jan. 31, 2018, downloaded on Nov. 17, 2021. [cited by applicant]
“How to Estimate Software Development Time?”, https://www.binaryfolks.com/blog/how-to-estimate-software-development-time; downloaded on Nov. 17, 2021. [cited by applicant]
Mills, Kelley, “How Do I Automate the Estimated Completion Date”, https://community.atlassian.com/t5/Jira-questions/How-Do-I-Automate-the-Estimated-Completion-Date/qaq-p/1686709,dated May 6, 2021, downloaded on Nov. 23,… [cited by applicant]