# US 8,418,147 B1 · Methods and systems for reporting on build runs in software development

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

- Number: US 8,418,147 B1
- Document ID: US8418147B1
- Status: Granted
- Kind: B1
- Application number: 12/463,299
- Filed: 2009-05-08
- Granted: 2013-04-09
- Earliest claimed: 2009-05-08
- Assignees: Versionone, Inc.
- Applicants: Jerry Odenwelder; Robert Holler; Ian Culling; Rajiv Delwadia; Pavel Mamut; Mark Crowe; Donald Hanson; Patrick Boudreaux; Dan Gilkerson; Eric Farr
- Inventors: Jerry Odenwelder; Robert Holler; Ian Culling; Rajiv Delwadia; Pavel Mamut; Mark Crowe; Donald Hanson; Patrick Boudreaux; Dan Gilkerson; Eric Farr
- Web page: https://patentgrep.com/patent/US8418147B1

## CPC

- G06F 8/70: Software maintenance or management
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06Q 10/101: Collaborative creation, e.g. joint development of products or services
- G06Q 10/103: {Workflow collaboration or project management}
- 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

A computer-implemented method of developing software includes receiving successive code changes for a software product. Input is received specifying that one or more code changes involve a work item associated with development of the software product. A plurality of build runs of the software product is generated. Respective build runs of the plurality correspond to one or more of the successive code changes. Data is stored associating the work item with one or more build runs that each correspond to at least one of the one or more code changes specified as involving the work item. A user input selecting the work item is received; in response, respective identifiers of at least one build run of the one or more build runs associated with the work item are displayed.

## Claims

### Claim 1

A computer-implemented method of developing software, the method comprising:
receiving successive code changes for a software product;
receiving input specifying that one or more code changes involve a work item associated with development of the software product, wherein a work item specifies a feature to be added to the software product or a defect to be removed from the software product;
generating a plurality of build runs of the software product, respective build runs corresponding to one or more of the successive code changes;
storing data associating the work item with one or more build runs that each correspond to at least one of the one or more code changes specified as involving the work item;
receiving a user input selecting the work item; and
in response to the user input, displaying respective identifiers of at least one build run of the one or more build runs associated with the work item, including presenting an identifier of a build run for which work on the item has begun.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
displaying a plurality of work items associated with development of the software product;
wherein the user input selects the work item from the plurality of displayed work items.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, including:
displaying an identifier of a last affected build run for the work item.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising:
receiving a user input to change the last affected build run for the work item;
in response to the user input to change the last affected build run for the work item, updating the last affected build run for the work item; and
displaying an identifier of the updated last affected build run for the work item.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting respective identifiers of one or more build runs for which work on the work item occurred.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting an identifier of a build run for which work on the work item was completed.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting an identifier of a build run for which work on the work item was verified.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting identifiers of every build run incorporating code changes involving the work item.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein:
the work item is a defect; and
displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting an identifier of a last build run affected by the defect; and
presenting respective identifiers of every build run incorporating code changes involving the defect.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein:
the work item is a defect; and
displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting an identifier of a build run in which the defect was found.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, wherein the work item is a defect, the method further comprising:
receiving a user input specifying a build run in which the defect was found;
storing data associating the build run in which the defect was found with the defect; and
displaying an identifier of the build run in which the defect was found.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, wherein:
the work item is a feature or defect having an associated task or test; and
displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting respective identifiers of one or more build runs incorporating code changes involving the associated task or test.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1, wherein:
the work item is a feature group comprising an associated feature; and
displaying respective identifiers of the at least one build run of the one or more build runs associated with the work item comprises:
presenting respective identifiers of one or more build runs having code changes involving the associated feature.

### Claim 14 (depends on 1)

The computer-implemented method of claim 1, wherein the respective build runs corresponding to one or more of the successive code changes have respective identifiers comprising distinct numbers.

### Claim 15 (depends on 1)

The computer-implemented method of claim 1, wherein the respective build runs corresponding to one or more of the successive code changes have respective identifiers comprising dates.

### Claim 16

A computer-implemented method of developing software, the method comprising:
receiving successive code changes for a software product;
receiving input specifying that respective code changes involve one or more work items associated with development of the software product;
generating a plurality of build runs of the software product, respective build runs corresponding to one or more of the successive code changes;
storing data associating respective build runs with one or more respective work items involved in the one or more successive code changes corresponding to the respective build runs;
receiving user input specifying a range of build runs; and
in response to the user input, displaying at least one work item involved in code changes corresponding to the specified range of build runs, wherein displaying the at least one work item involved in code changes corresponding to the specified one or more build runs includes presenting one or more of the following:
defects introduced during the range of build runs;
defects fixed during the range of build runs; and
features completed during the range of build runs.

### Claim 17 (depends on 16)

The method of claim 16, wherein the user input includes first and last build runs specifying the range of build runs.

### Claim 18 (depends on 16)

The method of claim 16, the method further comprising:
in response to the user input specifying the range of build runs, providing a change set associated with a respective build run of the specified one or more build runs.

### Claim 19 (depends on 16)

The method of claim 16, wherein displaying the at least one work item involved in code changes corresponding to the specified range of build runs comprises:
presenting a defect introduced during the range of build runs specified by the user input.

### Claim 20 (depends on 16)

The method of claim 16, wherein displaying the at least one work item involved in code changes corresponding to the specified range of build runs comprises:
presenting a defect fixed during the range of build runs specified by the user input.

### Claim 21 (depends on 16)

The method of claim 16, wherein displaying the at least one work item involved in code changes corresponding to the specified range of build runs comprises:
presenting a feature completed during the range of build runs specified by the user input.

### Claim 22

A system for developing software, the system comprising:
memory;
a display;
one or more processors; and
one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs including instructions for:
receiving successive code changes for a software product;
receiving input specifying that one or more code changes involve a work item associated with development of the software product, wherein work items specify a feature to be added to the software product or a defect to be removed from the software product;
generating a plurality of build runs of the software product, respective build runs corresponding to one or more of the successive code changes;
storing data associating the work item with one or more build runs that each correspond to at least one of the one or more code changes specified as involving the work item;
receiving a user input selecting the work item; and
displaying, in response to the user input, respective identifiers of at least one build run of the one or more build runs associated with the work item, including presenting an identifier of a build run for which work on the item has begun.

### Claim 23

A system for developing software, the system comprising:
memory;
a display;
one or more processors; and
one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs including instructions for:
receiving successive code changes for a software product;
receiving input specifying that respective code changes involve one or more work items associated with development of the software product;
generating a plurality of build runs of the software product, respective build runs corresponding to one or more of the successive code changes;
storing data associating respective build runs with one or more respective work items involved in the one or more successive code changes corresponding to the respective build runs;
receiving user input specifying a range of build runs; and
displaying, in response to the user input, at least one work item involved in code changes corresponding to the specified range of build runs, wherein displaying the at least one work item involved in code changes corresponding to the specified one or more build runs includes presenting one or more of the following:
defects introduced during the range of build runs;
defects fixed during the range of build runs; and
features completed during the range of build runs.

### Claim 24

A non-transitory computer readable storage medium storing one or more programs configured to be executed by a computer system to perform software development, the one or more programs comprising instructions for:
receiving successive code changes for a software product;
receiving input specifying that one or more code changes involve a work item associated with development of the software product, wherein a work item specifies a feature to be added to the software product or a defect to be removed from the software product;
generating a plurality of build runs of the software product, respective build runs corresponding to one or more of the successive code changes;
storing data associating the work item with one or more build runs that each correspond to at least one of the one or more code changes specified as involving the work item;
receiving a user input selecting the work item; and
displaying, in response to the user input, respective identifiers of at least one build run of the one or more build runs associated with the work item, including presenting an identifier of a build run for which work on the item has begun.

### Claim 25

A non-transitory computer readable storage medium storing one or more programs configured to be executed by a computer system to perform software development, the one or more programs comprising instructions for:
receiving successive code changes for a software product;
receiving input specifying that respective code changes involve one or more work items associated with development of the software product;
generating a plurality of build runs of the software product, respective build runs corresponding to one or more of the successive code changes;
storing data associating respective build runs with one or more respective work items involved in the one or more successive code changes corresponding to the respective build runs;
receiving user input specifying a range of build runs; and
displaying, in response to the user input, at least one work item involved in code changes corresponding to the specified range of build runs, wherein displaying the at least one work item involved in code changes corresponding to the specified one or more build runs includes presenting one or more of the following:
defects introduced during the range of build runs;
defects fixed during the range of build runs; and
features completed during the range of build runs.
