# US 2016/0253255 A1 · Predictive approach to environment provisioning

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2016/0253255 A1
- Document ID: US20160253255A1
- Status: Published application
- Kind: A1
- Application number: 15/153,775
- Filed: 2016-05-13
- Published: 2016-09-01
- Earliest claimed: 2014-10-27
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Jason A. Collier; David L. Leigh; Yi-Hsiu Wei; Scott A. Will
- Web page: https://patentgrep.com/patent/US20160253255A1

## CPC

- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 8/10: Requirements analysis; Specification techniques
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/3696: {Methods or tools to render software testable}
- G06Q 10/063114: {Status monitoring or status determination for a person or group}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Embodiments of the present invention provide methods, systems, and computer program products for building an environment. Embodiments of the present invention can be used to allocate resources and build an environment such that the environment is built when a user is prepared to test one or more portions of code in the environment. Embodiments of the present invention can be used to reduce the “lag time” developers experience between waiting for the code to be built and for resources to be provisioned, and can also provide a less costly alternative to maintaining and operating dedicated environments.

## Claims

### Claim 1

A computer-implemented method for building a test environment, the method comprising:
identifying resources with which to build a test environment for a coding task involving one or more portions of code for a software program based, at least in part on one or more areas of the software program associated with the one or more portions of code, wherein the test environment to be built includes accommodations for testing one or more portions of code; and
predicting a time at which to start building the test environment such that the test environment is built and made available to a user by the time the user is prepared to test the one or more portions of code in the test environment.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining whether an existing test environment will be available for testing the one or more portions of code when the user is prepared to test the one or more portions of code.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining whether resources will be available for building the test environment at the predicted time at which to start building the test environment, such that the test environment is built and made available to the user by the time the user is prepared to test the one or more portions of code in the test environment; and
responsive to determining resources will not be available for building the test environment, at the predicted time at which to start building the test environment, such that the test environment is built and made available to the user by the time the user is prepared to test the one or more portions of code in the test environment, alerting the user.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein identifying resources with which to build a test environment for a coding task comprises:
accessing a task repository containing task information associated with the coding task; and
determining a user has begun work on the coding task, wherein the task information comprises:
a title of the coding task, a brief description of the coding task, information that describes one or more areas of the software program affected by the coding task, an estimated time to complete the coding task, and a status indicating a progress state of the coding task.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4 further comprising:
accessing a pool of resources;
identifying resources associated with terms found in the task information; and
identifying resources that have historically been used to build test environments for similar coding tasks.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein predicting a time at which to start building the test environment such that the test environment is built and made available to a user by the time a user is prepared to test the one or more portions of code in the test environment comprises:
calculating a time at which to start building the test environment based, at least in part, on an identified length of time to perform any necessary builds of code, an identified length of time to complete the coding task, an identified start time at which the user began work on the coding task, and an identified length of time needed to build the environment, wherein the identified length of time needed to build the test environment comprises a total length of time needed to allocate the identified resources from a resource pool and configure those resources into a test environment for the coding task.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein calculating a time at which to start building the test environment comprises:
calculating a tentative start time at which to start building the test environment by adding values for the identified length of time to perform any necessary builds of code and the identified length of time to complete the coding task to the identified start time at which the user began work on the coding task, and subtracting the identified length of time needed to build the test environment.

### Claim 8

A computer program product for building a test environment, the computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:
program instructions to identify resources with which to build a test environment for a coding task involving one or more portions of code for a software program based, at least in part on one or more areas of the software program associated with the one or more portions of code, wherein the test environment to be built includes accommodations for testing one or more portions of code; and
program instructions to predict a time at which to start building the test environment such that the test environment is built and made available to a user by the time the user is prepared to test the one or more portions of code in the test environment.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to determine whether an existing test environment will be available for testing the one or more portions of code when the user is prepared to test the one or more portions of code.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to determine whether resources will be available for building the test environment at the predicted time at which to start building the test environment, such that the test environment is built and made available to the user by the time the user is prepared to test the one or more portions of code in the test environment; and
program instructions to, responsive to determining resources will not be available for building the test environment, at the predicted time at which to start building the test environment, such that the test environment is built and made available to the user by the time the user is prepared to test the one or more portions of code in the test environment, alert the user.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein the program instructions to identify resources with which to build a test environment for a coding task comprise:
program instructions to access a task repository containing task information associated with the coding task; and
program instructions to determine a user has begun work on the coding task, wherein the task information comprises:
a title of the coding task, a brief description of the coding task, information that describes one or more areas of the software program affected by the coding task, an estimated time to complete the coding task, and a status indicating a progress state of the coding task.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to access a pool of resources;
program instructions to identify resources associated with terms found in the task information; and
program instructions to identify resources that have historically been used to build test environments for similar coding tasks.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein the program instructions to predict a time at which to start building the test environment such that the test environment is built and made available to a user by the time a user is prepared to test the one or more portions of code in the test environment comprise:
program instructions to calculate a time at which to start building the test environment based, at least in part, on an identified length of time to perform any necessary builds of code, an identified length of time to complete the coding task, an identified start time at which the user began work on the coding task, and an identified length of time needed to build the environment, wherein the identified length of time needed to build the test environment comprises a total length of time needed to allocate the identified resources from a resource pool and configure those resources into a test environment for the coding task.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the program instructions to calculate a time at which to start building the test environment comprise:
program instructions to calculate a tentative start time at which to start building the test environment by adding values for the identified length of time to perform any necessary builds of code and the identified length of time to complete the coding task to the identified start time at which the user began work on the coding task, and subtracting the identified length of time needed to build the test environment.

### Claim 15

A computer system for building a test environment, the computer system comprising:
one or more computer processors;
one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:
program instructions to identify resources with which to build a test environment for a coding task involving one or more portions of code for a software program based, at least in part on one or more areas of the software program associated with the one or more portions of code, wherein the test environment to be built includes accommodations for testing one or more portions of code; and
program instructions to predict a time at which to start building the test environment such that the test environment is built and made available to a user by the time the user is prepared to test the one or more portions of code in the test environment.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to determine whether an existing test environment will be available for testing the one or more portions of code when the user is prepared to test the one or more portions of code.

### Claim 17 (depends on 15)

The computer system of claim 15, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to determine whether resources will be available for building the test environment at the predicted time at which to start building the test environment, such that the test environment is built and made available to the user by the time the user is prepared to test the one or more portions of code in the test environment; and
program instructions to, responsive to determining resources will not be available for building the test environment, at the predicted time at which to start building the test environment, such that the test environment is built and made available to the user by the time the user is prepared to test the one or more portions of code in the test environment, alert the user.

### Claim 18 (depends on 15)

The computer system of claim 15, wherein the program instructions to identify resources with which to build a test environment for a coding task comprise:
program instructions to access a task repository containing task information associated with the coding task; and
program instructions to determine a user has begun work on the coding task, wherein the task information comprises:
a title of the coding task, a brief description of the coding task, information that describes one or more areas of the software program affected by the coding task, an estimated time to complete the coding task, and a status indicating a progress state of the coding task.

### Claim 19 (depends on 18)

The computer system of claim 18, wherein the program instructions stored on the one or more computer readable storage media further comprise:
program instructions to access a pool of resources;
program instructions to identify resources associated with terms found in the task information; and
program instructions to identify resources that have historically been used to build test environments for similar coding tasks.

### Claim 20 (depends on 15)

The computer system of claim 15, wherein the program instructions to predict a time at which to start building the test environment such that the test environment is built and made available to a user by the time a user is prepared to test the one or more portions of code in the test environment comprise:
program instructions to calculate a time at which to start building the test environment based, at least in part, on an identified length of time to perform any necessary builds of code, an identified length of time to complete the coding task, an identified start time at which the user began work on the coding task, and an identified length of time needed to build the environment, wherein the identified length of time needed to build the test environment comprises a total length of time needed to allocate the identified resources from a resource pool and configure those resources into a test environment for the coding task.
