26.04.2015 Views

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Customers.<br />

Each consumer has different needs in terms of build quality and frequency. In general,<br />

build consumers can be divided into two groups; those who need predictable, scheduled<br />

builds and those who need rapid, event-driven builds. Scheduled builds are most<br />

commonly daily builds but can occur more or less frequently. Event-driven builds are<br />

usually initiated by a check-in and are designed to give the development team rapid<br />

feedback. If your development team has problems <strong>with</strong> breaking builds, consider using a<br />

gated check-in model, where check-ins are tested before they are allowed into the source<br />

tree and are rejected if the tests fail.<br />

Review Solution Scenarios<br />

Choose solution scenarios based on how closely their purpose and build consumers match<br />

your team’s situation. When in doubt, use the simplest build scenario possible, such as a<br />

scheduled build, and add more complex scenarios only if necessary.<br />

Build Scenarios<br />

The following are the most common <strong>Team</strong> Build scenarios:<br />

• <strong>Team</strong> <strong>with</strong> single daily builds. Most teams rely on a scheduled build in order to<br />

provide consistent binaries to their test team and other users.<br />

• <strong>Team</strong> <strong>with</strong> daily builds and continuous integration builds. Some teams choose to<br />

use continuous integration builds in order to provide rapid feedback to their<br />

developers upon every check-in. Although a pure continuous integration build works<br />

well for small teams, larger teams are likely to overload their build server due to highfrequency<br />

check-ins and longer build times. When this happens, a rolling build can be<br />

used to build less frequently <strong>with</strong>out giving up too much time between check-in and<br />

build feedback.<br />

• <strong>Team</strong> <strong>with</strong> multiple build labs, each performing daily build and continuous<br />

integration builds. Very large teams are likely to require more complex solutions to<br />

improve build quality and timeliness. You can use gated check-ins to reduce build<br />

breaks by rejecting bad check-ins before they make it into source control. <strong>Team</strong>s that<br />

branch can use multiple build servers, one per branch, to keep the builds focused on<br />

each branch’s purpose. For example, integration branches create integration builds,<br />

while development branches create development builds.<br />

Scheduled Builds<br />

A scheduled build is a time-based build based on a fixed time frequency. The purpose of<br />

a scheduled build is to produce consistently reliable builds that can be used to gain<br />

feedback on the quality of the build. Scheduled builds are usually daily builds, but they<br />

could occur more or less frequently depending upon your needs.<br />

The consumers of a scheduled build are most often:<br />

• Test team.<br />

• Internal build adopters.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!