Build Job Prioritization via ML Classification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development systems do not optimize the software development life cycle and provide continuous delivery with high software quality, as they simply execute software build jobs as received without prioritization based on their attributes and historical learning.

Innovation Solution

A computer-implemented method using a machine learning algorithm to build a mathematical model that predicts the priority of build jobs based on classifications such as customer deliverables, production deployment, staging deployment, pull request builds, and development builds, and inserts these jobs into a queue according to their assigned priority, ensuring higher priority jobs are executed first.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If build jobs are executed in the order they are received without prioritization, then the system is simple and easy to operate, but the software development life cycle is not optimized and productivity is reduced

Engineering Contradiction:
Improvesoftware development life cycle efficiencyVSAvoidbuild system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by introducing priority parameters (P0, P1, P2, P3 levels) to build jobs based on their classification attributes. The mathematical model dynamically assigns these priority parameters to transform the build queue from a simple FIFO structure to a prioritized execution system, thereby optimizing the software development life cycle without requiring complex manual intervention

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The build system performs self-service through automated classification and prioritization. The mathematical model automatically analyzes build job attributes, classifies them into categories (customer deliverables, production deployment, staging deployment, pull request builds, development builds), and assigns execution priorities without human intervention, improving productivity while maintaining system simplicity

Inventive Principle:
Principle #25Self-service

2Reliability

If build jobs are prioritized using classifications and machine learning, then continuous delivery with high software quality is achieved, but the system complexity increases due to the mathematical model and machine learning algorithm

Engineering Contradiction:
Improvesoftware qualityVSAvoidprioritization system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-training the machine learning model with historical build data before actual prioritization begins. The model learns from past build patterns, success rates, and timing information in advance, enabling it to accurately predict and prioritize builds that will ensure high software quality without requiring complex real-time analysis during build execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The mathematical model serves as an intermediary between build job submissions and execution. It acts as a intelligent mediator that translates build attributes into prioritization decisions, bridging the gap between simple job submission and complex quality assurance requirements, thereby maintaining system usability while achieving high software quality

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If all build jobs are executed equally without prioritization, then the system is easy to manage, but loss of time occurs due to inefficient execution order

Engineering Contradiction:
Improvebuild execution timeVSAvoidbuild queue management ease
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The patent applies dynamics by implementing a dynamic prioritization system where build job priorities are not fixed but determined dynamically by the machine learning model based on current build attributes, historical patterns, and system state. This dynamic approach optimizes build execution time by automatically adjusting priorities without requiring manual queue management intervention

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20220308919A1Prioritizing software build jobs
Publication Date: 2022.09.29 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20220308919A1 patent drawing
  • US20220308919A1 patent drawing
  • US20220308919A1 patent drawing

AI summary

A computer-implemented method, system and computer program product for executing build jobs more efficiently. A mathematical model is built using a machine learning algorithm to predict the priority of a build job using training data containing classifications of build jobs. After receiving one or more build jobs to be executed, such build jobs are classified. A priority is then assigned to these build jobs using the mathematical model based on the classifications. For example, the priorities of the build jobs from highest to lowest may correspond to those build jobs with the following classifications in descending order: customer deliverables, product deployment, staging deployment, pull request builds and development builds. The build jobs are then inserted at particular positions in a queue based on their assigned priority in a manner that causes the higher priority build jobs to be executed by the build tool prior to the lower priority build jobs.