IP Library › Granted Patent US 10,496,392
Granted Patent B2
US 10,496,392 · App. 15/742,677 · Granted Dec 3, 2019

Staged application rollout

Inventors: Haim Shuvali (Yehud, IL); Avi Kabizon (Yehud, IL); Amichai Nitsan (Yehud, IL)
Assignee: MICRO FOCUS LLC
G06F8/65G06F8/71G06F11/3438
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 10,496,392
App. No.
15/742,677
Filed
Jan 8, 2018
Granted
Dec 3, 2019
Kind
B2
Examiner
LUU, BINH K
Art Unit
2191
USPC
717/168
Abstract

Examples include a user segmentation system for staged application rollout. In an example, an application usage engine receives data for users including a number of screens used in an application version and a number of user actions used in the application version. A staged rollout engine determines, for each user, an early adopter probability based on the number of screens used in the application version and the number of user actions used in the application version, and in some examples a preconfigured factor or weighting. For a subsequent application version, staged rollout groupings are determined. Users are assigned to staged rollout groupings based on the early adopter probabilities.

Claims (40)

1. A system for staged application rollout of an application, comprising:

a processor; and

a non-transitory storage medium storing instructions executable on the processor to:

receive data for a first user from an application programming interface, the data including a number of screens used in a first application version of the application and a number of user actions used in the first application version;

determine, for the first user, a first early adopter probability based on the number of screens used in the first application version and the number of user actions used in the first application version;

determine, for the first application version, a plurality of staged rollout groups;

receive further data for the first user from the application programming interface, the further data including a number of screens used in a second application version of the application and a number of user actions used in the second application version;

determine, for the first user, a second early adopter probability based on the number of screens used in the second application version and the number of user actions used in the second application version;

aggregate the first early adopter probability and the second early adopter probability to compute an aggregate early adopter probability;

assign the first user to a first staged rollout group of the plurality of staged rollout groups based on the aggregate early adopter probability; and

control distribution of a new version of the application to devices of users in the plurality of staged rollout groups at respective different times, wherein the distribution includes a distribution of the new version of the application to a device of the first user in the first staged rollout group earlier than a distribution of the new version of the application to a device of a user in a second staged rollout group of the plurality of staged rollout groups.

2. The system of claim 1 , wherein the instructions are executable on the processor to assign a second user with an early adopter probability lower than the aggregate early adopter probability of the first user into the second staged rollout group.

3. The system of claim 2 , wherein the instructions are executable on the processor to release the new version of the application to the second staged rollout group based on a trigger that a release of the new version of the application to the first staged rollout group is successful.

4. The system of claim 1 , wherein the instructions are executable on the processor to receive event data comprising network error data and application crash data, wherein the determining of the first early adopter probability is further based on the event data.

5. The system of claim 1 , wherein the determining of the first early adopter probability is further based on a first weighting of the number of screens used in the first application version and a second weighting of the number of user actions used in the first application version.

6. The system of claim 5 , wherein the determining of the first early adopter probability is based on the first weighting multiplied by the number of screens used in the first application version, and the second weighting multiplied by the number of user actions used in the first application version.

7. The system of claim 1 , wherein the aggregating of the first early adopter probability and the second early adopter probability is part of averaging a plurality of early adopter probabilities for different versions of the application.

8. A method performed by a system comprising a hardware processor, comprising:

fetching event data and usage data for users, the usage data for a first user of the users comprising a first number of screens used by the first user and a first number of actions performed by the first user with a first version of an application, and a second number of screens used by the first user and a second number of actions performed by the first user with a second version of the application;

calculating a first early adopter probability for the first user based on the event data, the first number of screens, and the first number of actions;

calculating a second early adopter probability for the first user based on the event data, the second number of screens, and the second number of actions;

aggregating the first early adopter probability and the second early adopter probability to compute an aggregate early adopter probability;

determining a plurality of staged rollout groups for the application;

assigning the first user to a first staged rollout group of the plurality of staged rollout groups based on the aggregate early adopter probability; and

controlling distribution of a further version of the application to devices of users in the plurality of staged rollout groups at respective different times, wherein the distribution includes a distribution of the further version of the application to a device of the first user in the first staged rollout group earlier than a distribution of the further version of the application to a device of a user in a second staged rollout group of the plurality of staged rollout groups.

9. The method of claim 8 , wherein the event data comprises one or more of application crash data, user interface responsiveness data, and network data.

10. The method of claim 8 , wherein the aggregating comprises computing an average of the first early adopter probability and the second early adopter probability.

11. The method of claim 8 , further comprising assigning a second user to the second staged rollout group based on an early adopter probability computed for the second user that is less than the aggregate early adopter probability.

12. An article comprising at least one non-transitory machine-readable storage medium comprising instructions executable by a processing resource to:

fetch event data and usage data for users, wherein the usage data for a first user of the users comprises a first number of screens used by the first user with a first version of an application, a first number of actions performed by the first user with the first version of the application, a second number of screens used by the first user with a second version of the application, and a second number of actions performed by the first user with the second version of the application;

calculate a first early adopter probability for the first user based on the event data, the first number of screens, and the first number of actions;

calculate a second early adopter probability for the first user based on the event data, the second number of screens, and the second number of actions;

aggregate the first early adopter probability and the second early adopter probability to compute an aggregate early adopter probability;

determine a plurality of staged rollout groups for the application;

assign the first user to a first staged rollout group of the plurality of staged rollout groups based on the aggregate early adopter probability; and

control distribution of a further version of the application to devices of users in the plurality of staged rollout groups at respective different times, wherein the distribution includes a distribution of the further version of the application to a device of the first user in the first staged rollout group earlier than a distribution of the further version of the application to a device of a user in a second staged rollout group of the plurality of staged rollout groups.

13. The article of claim 12 , wherein the instructions are executable further to determine the plurality of staged rollout groups based on a user segmentation setting.

14. The article of claim 12 , wherein the event data comprises application crash data.

15. The article of claim 12 , wherein the event data comprises user interface responsiveness data.

16. The article of claim 12 , wherein the event data comprises network data.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2018
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 045153/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2018
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 045151/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2018
From: SHUVALI, HAIM; KABIZON, AVI; NITSAN, AMICHAI
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 044734/0553 →
Continuity (1)
Related Publication 20180203684A1 · Jul 19, 2018
Cited By (3)
US 12,254,020 US 12,386,801 US 12,399,706