IP Library Granted Patent US 12681722
Granted Patent B2
US 12681722 · App. 18/627,765 · Granted Jul 14, 2026

Software development prioritization using trained model

Inventors: Laurent Boué (Petah Tikva, IL); Kiran Rama (Bangalore, IN); Ravi Prasad Kondapalli (Bangalore, IN); Sharath Kumar Rangappa (Bangalore, IN)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F8/77
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 12681722
App. No.
18/627,765
Granted
Jul 14, 2026
Kind
B2
Abstract

Systems, methods, devices, and computer readable storage media described herein provide techniques for prioritizing software development using a trained model. In an aspect, model features are determined based on analysis of user behavior with respect to a software application. A software development prioritization (SDP) system determines data associated with the model features and utilizes a generative artificial intelligence (AI) model to summarize the model features based on the determined data. The SDP system determines, based on the summaries, a similarity between software development items and the model features and prioritizes one of the software development items over another based on the determined similarities. In a further embodiment, the SDP system causes a software development task corresponding to the prioritized software development item to be performed before another software development task corresponding to a different software development item. In an aspect, model features are determined utilizing a trained machine learning model.

Claims (78)

1 . A software development prioritization system, comprising:

a processor circuit; and

a memory device that stores program code executable by the processor circuit to:

receive a set of model features from a machine learning (ML) model trained to predict user behavior with respect to a software application;

select a first model feature and a second model feature from the set of model features based on selection criteria, the first and second model features assigned respective feature importance scores indicating a level of influence the corresponding model feature has over predicted user behavior, the feature importance scores satisfying the selection criteria;

determine data associated with the first and second model features;

utilize a large language model (LLM) to generate, based on the determined data, a first feature summary for the first model feature and a second feature summary for the second model feature;

determine, based on the first and second feature summaries, a similarity between a first software development item and the first model feature, a second software development item and the first model feature, the first software development item and the second model feature, and the second software development item and the second model feature;

prioritize the first software development item based on the determined similarities; and

perform a software development task corresponding to the first software development item prior to a second software development task corresponding to the second software development item.

2 . The software development prioritization system of claim 1 , wherein the ML model is trained to predict user retention with respect to the software application.

3 . The software development prioritization system of claim 1 , wherein to determine the similarities, the program code is executable by the processor circuit to:

provide the first and second software development items and the first and second model features to an embedding model;

receive, from the embedding model, development item embeddings describing a context of the first and second software development items and feature embeddings describing a context of the first and second model features; and

determine similarities between the development item embeddings and the feature embeddings.

4 . The software development prioritization system of claim 1 , the program code is executable by the processor circuit to further:

generate an affinity matrix comprising a first grouping of data corresponding to the first software development item, a second grouping of data corresponding to the second software development item, a third grouping of data corresponding to the first model feature, and a fourth grouping of data corresponding to the second model feature, and

wherein values in the affinity matrix comprise a score representing a respective similarity of the determined similarities.

5 . The software development prioritization system of claim 4 , wherein to prioritize the first software development item, the program code is executable by the processor circuit to:

perform singular value decomposition on the affinity matrix to determine a first singular value and a second singular value, the first singular value having a corresponding first singular vector comprising a linear combination of importance of the first and second software development items to the first singular vector; and

prioritize the first software development item based on the first and second singular values.

6 . The software development prioritization system of claim 5 , wherein the second singular value has a corresponding second singular vector comprising a linear combination of importance of the first and second software development items to the second singular vector, and to prioritize the first software development item based on the first and second singular values, the program code is executable by the processor circuit to:

transform coefficients of the first and second singular vectors;

determine a prioritization score for the first software development item based on a first component of the first singular vector corresponding to the first software development item and a second component of the second singular vector corresponding to the first software development item, the first component comprising a coefficient of the first singular vector corresponding to the first software development item and the second component comprising a coefficient of the second singular vector corresponding to the first software development item; and

prioritize the first software development item based on the prioritization score.

7 . The software development prioritization system of claim 6 , wherein to transform the coefficients, the program code is executable by the processor circuit to:

apply an absolute value transformation to the coefficients; or

apply a squaring transformation to the coefficients.

8 . The software development prioritization system of claim 6 , wherein to transform the coefficients, the program code is executable by the processor circuit to:

apply a scale transformation to the coefficients based on a measure of importance the corresponding singular value has in varying the determined similarities.

9 . A method for software development prioritization comprising:

receiving a first model feature and a second model feature determined based on analysis of user behavior with respect to a software application;

determining data associated with the first and second model features;

utilizing a large language model (LLM) to generate, based on the determined data, a first feature summary for the first model feature and a second feature summary for the second model feature;

determining, based on the first and second feature summaries, a similarity between a first software development item and the first model feature, a second software development item and the first model feature, the first software development item and the second model feature, and the second software development item and the second model feature;

prioritizing the first software development item based on the determined similarities; and

performing a first software development task corresponding to the first software development item prior to a second software development task corresponding to the second software development item.

10 . The method of claim 9 , wherein said receiving the first and second model features further comprises:

receiving a set of model features from a machine learning (ML) model trained to predict user behavior; and

selecting the first and second model features from the set of model features based on selection criteria.

11 . The method of claim 10 , wherein:

each model feature of the set of model features is assigned a feature importance indicating a level of influence the model feature has over the predicted user behavior; and

a feature importance of the first model feature and a feature importance of the second model feature satisfy the selection criteria.

12 . The method of claim 9 , further comprising:

generating an affinity matrix comprising a first grouping of data corresponding to the first software development item, a second grouping of data corresponding to the second software development item, a third grouping of data corresponding to the first model feature, and a fourth grouping of data corresponding to the second model feature, and wherein values in the affinity matrix comprise a score representing a respective similarity of the determined similarities.

13 . The method of claim 12 , wherein said prioritizing the first software development item comprises:

performing singular value decomposition on the affinity matrix to determine a first singular value and a second singular value, the first singular value having a corresponding first singular vector comprising a linear combination of importance of the first and second software development items to the first singular vector; and

prioritizing the first software development item based on the first and second singular values.

14 . The method of claim 13 , wherein the second singular value has a corresponding second singular vector comprising a linear combination of importance of the first and second software development items to the second singular vector, and said prioritizing the first software development item based on the first and second singular values comprises:

transforming coefficients of the first and second singular vectors;

determining a prioritization score for the first software development item based on a first component of the first singular vector corresponding to the first software development item and a second component of the second singular vector corresponding to the first software development item, the first component comprising a coefficient of the first singular vector corresponding to the first software development item and the second component comprising a coefficient of the second singular vector corresponding to the first software development item; and

prioritizing the first software development item based on the prioritization score.

15 . The method of claim 14 , wherein said transforming the coefficients comprises:

applying an absolute value transformation to the coefficients;

applying a squaring transformation to the coefficients; or

applying a scale transformation to the coefficients based on a measure of importance the corresponding singular value has in varying the determined similarities.

16 . A computer readable storage medium encoded with program instructions structured to cause a processor to perform a method for prioritizing software development, the method comprising:

receiving a first model feature and a second model feature determined based on analysis of user behavior with respect to a software application;

determining data associated with the first and second model features;

utilizing a large language model (LLM) to generate, based on the determined data, a first feature summary for the first model feature and a second feature summary for the second model feature;

determining, based on the first and second feature summaries, a similarity between a first software development item and the first model feature, a second software development item and the first model feature, the first software development item and the second model feature, and the second software development item and the second model feature;

prioritizing the first software development item based on the determined similarities; and

performing a first software development task corresponding to the first software development item prior to a second software development task corresponding to the second software development item.

17 . The computer readable storage medium of claim 16 , wherein method further comprises:

generating an affinity matrix comprising a first grouping of data corresponding to the first software development item, a second grouping of data corresponding to the second software development item, a third grouping of data corresponding to the first model feature, and a fourth grouping of data corresponding to the second model feature, and wherein values in the affinity matrix comprise a score representing a respective similarity of the determined similarities;

performing singular value decomposition on the affinity matrix to determine a first singular value and a second singular value, the first singular value having a corresponding first singular vector comprising a linear combination of importance of the first and second software development items to the first singular vector; and

prioritizing the first software development item based on the first and second singular values.

18 . The computer readable storage medium of claim 17 , wherein the second singular value has a corresponding second singular vector comprising a linear combination of importance of the first and second software development items to the second singular vector, and said prioritizing the first software development item based on the first and second singular values comprises:

transforming coefficients of the first and second singular vectors;

determining a prioritization score for the first software development item based on a first component of the first singular vector corresponding to the first software development item and a second component of the second singular vector corresponding to the first software development item, the first component comprising a coefficient of the first singular vector corresponding to the first software development item and the second component comprising a coefficient of the second singular vector corresponding to the first software development item; and

prioritizing the first software development item based on the prioritization score.

19 . The computer readable storage medium of claim 18 , wherein said transforming the coefficients comprises:

applying an absolute value transformation to the coefficients;

applying a squaring transformation to the coefficients; or

applying a scale transformation to the coefficients based on a measure of importance the corresponding singular value has in varying the determined similarities.

20 . The method of claim 16 , wherein said receiving the first and second model features further comprises:

receiving a set of model features from a machine learning (ML) model trained to predict user behavior; and

selecting the first and second model features from the set of model features based on selection criteria.