Professional Team Foundation Server [Ed Blankenship, Martin Woodward, Grant Holliday, Brian Keller] on *FREE* shipping on qualifying. No warranty may be created or extended by sales or pro- Starting with Team Foundation Server , this integration is optional and. Professional Scrum with Team Foundation Server Published by Wiley .. What's Important in Team Foundation Server” Download from Wow! eBook.

Professional Team Foundation Server 2010 Ebook

Language:English, Japanese, Arabic
Genre:Health & Fitness
Published (Last):13.01.2016
ePub File Size:22.58 MB
PDF File Size:10.39 MB
Distribution:Free* [*Registration needed]
Uploaded by: NORBERT

Server /dp//ref=sr_1_1?s=books&ie=UTF8&qid=&sr= Professional Team Foundation Server Print + eBook Bundle by Ed Blankenship, , available at Book Depository with free. Professional Team Foundation Server Now Available As with the ALM book there is a DRM Free eBook available at the Wrox site if you.

Well, this is a pretty thing. The tones struck familiarly on Mr. You are premature in your congratulations, Captain Levison. The jury, in giving their reason for recommending me to your lordship s mercy, have adopted the right view of the case VB Answers as it actually occurred.

I should like West Lynne to see that I don t despise Mr. No he could not see me I was right in the thicket. Isabel did not answer her heart was very full. Q: Can other users see or access your code? A: TFS has an advanced authorization system. With it, only those with the proper authorization can view your projects and items. Q: Is hosted TFS backed up?

A: Whether you can receive this service depends on the company, but all information on TFS is stored in SQL Server, and it is very easy to make SQL Server backups, so you should probably have no trouble in this regard. I hope this section can help you make the right decision, but my advice, in summary, is that hosted TFS is particularly appropriate for start-ups and small software firms, but for large-scale organizations, in-house TFS is much more sensible.

What tests did I perform? Unfortunately, the most difficult part of this procedure was deciding how to run the tests, because, currently, no one else has conducted any, and the range of tests that can be performed is limited. Speed testing comes to mind immediately, however, and TFS also contains some features that can be used to test TFS hosting. I tried to identify the appropriate tests with the help of the following headings: Speed test — Single file: testing TFS by installing one 10Mb file 10 times.

The Tf Command-Line Utility was used to test the console and the support the hosting companies provide for connecting to their TFS workspace accounts. More detail about using the Tf Command-Line Utility is available here.

Custom check-in policies: testing how custom check-in policies can be defined, and how they behave during the check-ins. Custom check-in policies are the extra rules you have to follow during check-in, via the Visual Studio or Eclipse IDE. You can configure and use the pre-defined TFS check-in policies or you can create your own new policies that suit your organization and process, To do the latter, custom check-in policies have to be installed on TFS server, but no sufficient permissions were given to test this.

Work item customization: testing TFS for work item customization. Several project management methodologies are commonly used in shipping software.

This chapter discusses three of them: It presents highlights of the three methodologies and compares their significant project attributes. Team organization in Scrum is quite different from team organization in traditional software development projects.

Rather than analysts, developers, testers, release engineers, and project managers, Scrum involves a core team of peers who are responsible for building, testing, and shipping a great product. The roles are clearly defi ned, but each person is responsible for a wide variety of tasks. This shift leads to a more collaborative, empowered team.

This chapter defi nes the project roles in Scrum, both in terms of their responsibilities on a project and in the context of traditional software project management strategies. Of course, many more people have a significant impact on a project. People outside a Scrum team are responsible for funding, acceptance, delivery, and support. This is one reason Scrum can be so effective: It limits the crossfi re that a larger constituency generates.

Figure depicts a typical Scrum team.

This example shows one product owner, one ScrumMaster, and six team members doing development and testing.

Scrum team organization. These are not easy tasks, but when treated as top -line job responsibilities, they are quite achievable. ScrumMasters can facilitate team productivity in a number of ways, as shown in Table Keeping it short keeps the team moving and prevents the team from wasting time.

Promote effective interteam communication The simple organization structure of a Scrum team keeps communication lines open. The ScrumMaster ensures that people are talking. Eliminate impediments to progress The ScrumMaster tracks and attacks any impediments. This includes simple tasks such as keeping the team caffeinated and working with good equipment, as well as complex coordination and reporting.

Before looking at techniques and attributes of productive teams, it helps to think about the negative. Unproductive software teams have a number of common attributes, as described in Table TABLE The ScrumMaster and the product owner empower the team to build the product. The Scrum team is empowered to make virtually all decisions about the product, which streamlines decision making. The daily Scrum enables a very rapid exchange of ideas, concerns, and dependencies.

Large teams that prohibit progress A Scrum team is small — typically fewer than 10 people. You can build more complex products by scaling with Scrums of Scrums, but the basic unit remains small and agile. The ScrumMaster can do this by using formal and informal techniques, but whatever techniques are involved, the ScrumMaster is responsible for creating a productive environment.

The following sections describe the activities of the ScrumMaster: The entire team attends this to 30 -minute daily meeting, which is typically held in the morning. The purpose of the daily Scrum is to discover issues that are blocking progress and to request assistance or adjustment to overcome these issues.

Easy solutions are resolved at this meeting, and more difficult topics are scheduled for later follow-up.

At the daily Scrum, a quick inexpensive snack helps the mood of the meeting. For topics that require follow-up, the ScrumMaster may or may not stay involved. For topics that the team can resolve — such as technical discussions, refactoring, common components, or performance — the ScrumMaster is not needed.

Team members can hold these discussions following the daily Scrum or schedule meetings for later in the day. The ScrumMaster sets the pace of the sprint during the daily Scrum. If necessary, the ScrumMaster should get commitments from people to ensure that everyone is focused on the most important backlog items. The point of the meeting is to remove roadblocks and impediments and to ensure that the team is working toward the common goal of the sprint.

It is a great opportunity to keep a sprint productive and collaborative. Demonstrating progress is an easy way to motivate people.

If someone just fi nished a backlog item that makes a good demo, have that person spend a few minutes showing it off during the daily Scrum. Involving Others The daily Scrum occasionally raises issues that people outside the team must help resolve. These issues might involve clarification of product features, the budget, or the deployment environment.

The research may take days, but the team productivity is not impacted. Often, this is done in a spike , a short sprint focused on a single issue. See Chapter 11 for information on running spikes. This division of labor keeps the team productive. Team members focus on building software, while the ScrumMaster tracks down the right people for a decision.

The ScrumMaster identifies and briefs the appropriate people on the issues and the decision that must be made. Then the ScrumMaster brings those people together with the team to reach or review the decision.

Fostering Effective Communication The ScrumMaster must ensure team productivity, and this requires effective communication. The ScrumMaster must keep a constant watch for communication enablers and inhibitors. Who are the connectors on the team, the individuals who work well with everyone and are quick to convey information or provide insight?

Are the technical leaders adequately coaching the junior team members? Is everyone contributing to his or her best ability? Is everyone actively participating at the daily Scrum? Is anyone spending days or weeks on a problem without communicating or demonstrating progress? The ScrumMaster must ensure that communication lines are open among team members and between product owners and the team.

Failure in this area may not be recoverable. Determining Team Size Large projects that have increased scope and complexity generally require larger teams. Larger teams involve more people, more diverse skills, and often more locations. Scrum projects tend to be smaller.

They tend to focus on product features and on shipping quality software. If Scrum is done right, it involves less process and more result.

The ScrumMaster is responsible for scaling a Scrum project, and he or she must do this carefully. The Product Owner The product owner is responsible for ensuring that product features meet customer expectations. The product owner can be a leader in the user community, someone from marketing, a business analyst within the IT arena, or any other individual who can effectively communicate business needs.

Having a deep understanding of the business is crucial to success. Strong verbal and written communication skills The product owner will spend time with users, business decision makers, clients, and the Scrum team.

The various constituents speak different languages, and the product owner must be able to communicate with them talk, present, write, e - mail, IM at all levels. Presence The product owner must be physically or virtually present on the team. He or she must be available to answer questions quickly and decisively. The product owner may not have all the answers but should be able to get them on short notice in order to prevent impediments.

Professional Team Foundation Server 2012

At a high level, the product owner has the vision for the product. He or she describes the end state for the system and how it will benefit the users. More tactically, the product owner has details about what specific features must do.

The product owner will not be the expert on all features, but when this person does not know something, he or she needs to be able to find answers from someone who does. A product owner is involved in three primary activities: Specifying and Prioritizing Features The product owner, or project sponsor, writes the product vision to describe the overall goals of the product.

The product vision should convey who uses the product, what benefits the users derive, and what competing options exist. In total, the product vision describes the context in which the product exists. The scope defi nes the level of effort, emphasis, and constraints that guide the early sprints and releases.

With the vision and scope in hand, the product owner creates the product backlog. The product backlog is the master list of all potential features for the product. The items in the product backlog, also known as product backlog items PBIs , must be specified with enough detail so that the team can understand and discuss them. It is common for PBIs to be expressed in user stories. PBIs can be very high level or can provide more detail. In either case, they should contain just enough information for everyone to understand the feature.

It starts as a simple sentence or two, often on a note card, and is used as a reminder that more detail is needed. It culminates in a rich understanding between the product owner and the team, with just enough documentation of what is needed and how it will be tested. Prior to the fi rst sprint of a release, the product owner populates and prioritizes the product backlog so the team can gain insight into the overall scope of the release.

Prioritizing the backlog is crucial because it enables the team to commit to the items of the sprint. The backlog priority indicates the order in which PBIs should be scheduled into a sprint.

The priority is a relative value, where lower numbers have great priority. For example, an item with a priority setting of 50 will be scheduled before an item with a priority of 1, Business value is a measure of importance for a feature.

A feature may be very important to the business, but it may not be needed or even feasible until a later sprint. The priority directs the order in which features will be built — not their intrinsic importance to the product.

Similarly, the backlog priority is also different from effort. Effort is a rough estimate of how difficult it is to build a feature. The team may not have enough information to make a good guess, but it can at least make a guess. We cover estimation in Chapters 3—6.

A sprint is a unit of work, typically lasting two to four weeks, that delivers a set of features in a potentially shippable product. The product owner delineates what features will be in each release and works with the team members to schedule those features into sprints. Chapters 8 and 9 describe this process in more detail. Whereas a sprint is a potentially shippable product, a release is a product actually ready to be shipped.

There are big differences between the two. Most products cannot ship until a set of related features are complete, hardened for production, reviewed for security, and packaged for deployment. The product owner defi nes the release by determining the set of features that he or she would like to ship as a unit.

The team then iteratively builds those features in sprints. At the sprint planning meeting, the team selects PBIs and commits to completing them within the sprint. One by one, the team removes items from the product backlog and places them on the sprint backlog.

Professional Team Foundation Server 2010 (E-Book, PDF)

The sprint backlog is an outcome of the sprint planning meeting. The sprint planning meeting is a group exercise, with the product owner, ScrumMaster, and team all participating. The product owner prioritizes the product backlog. The team commits to specific items it will complete within the sprint. The product owner starts thinking about testing while initially writing the user stories. First, the product owner defi nes a test plan, indicating the success criteria for each PBI.

Then the product owner defi nes test cases. There may be just a few test cases, or there may be dozens.

Team Foundation Server

The goal of the testing is to ensure that the product performs as expected. As described in Chapter 1, Scrum minimizes documentation. The product owner has huge incentive to be explicit and thorough in defi ning test cases because the team will build features that pass the tests.

The team will create many automated tests, and the product owner may create hundreds of manual tests. Chapter 7 covers quality assurance in detail. Scaling Product Owners A traditional software project may involve months writing specifications or specs before anyone begins to write any code.

With Scrum, you try to minimize specs in order to write code earlier. The high-level information that used to be in the spec is now headlined in the product backlog. The additional details that used to be in the spec are available on demand from the product owner. Therefore, the product owner can quickly become a bottleneck in a project.

If you need one additional product owner, you can simply add one to the Scrum team. You may need an extra product owner for just one or two sprints, or maybe for an entire release. Figure shows a Scrum team with two product owners. In this scenario, each product owner would be responsible for a set of sprint backlog items.

A Scrum team with two product owners. For a large project that requires more than two product owners, the team may want to add a hierarchy of product owners. For instance, if the project is to build a retail website, one product owner may be in charge of inventory, one may handle marketing, and one may be responsible for customer management. You may also have a product owner for performance.

In the case of multiple product owners, one of them should represent the others at the daily Scrum meeting. Figure shows a Scrum team with four product owners. In this case, each product owner would be responsible for a set of sprint backlog items, but only one would need to attend the daily Scrum. Issues raised during the daily Scrum would be resolved directly between the team members and the attending product owner. A Scrum team with four product owners.

Team Members As stated at the beginning of this chapter, Scrum teams have a simple organization. Each team is composed of a ScrumMaster, a product owner, and a number of team members. The team members typically have skills in software engineering, software architecture, business analysis, software testing, database tuning, IT operations, user experience, and user interface design.

The primary responsibility of the team members is to build the product. They determine the architecture, component design, and user experience. They work within boundaries of time and cost and are empowered to make trade- offs to build the best possible product within those limits.

Both development and testing occur within the team. Because there is no separate QA group, the team members are both empowered and responsible for their own testing. The team members participate in sprint planning activities. Since they are the ones building the product, one sprint at a time, the team members are the only ones who can truly commit to completing PBIs within the sprint. This is a radical departure from traditional software development, where managers commit to time schedules and allocate tasks to developers and testers.

A Scrum team typically contains a mix of senior, more- experienced members and junior members who are earlier in their careers.

In a more traditional management structure, senior members may be on an architecture board that defi nes the architecture, with product development team members following that architecture. In contrast, a Scrum team brings together different skill sets and levels. This list becomes the sprint backlog that the team commits to completing. From this point until the end of the sprint, the team is responsible for delivering the items on the spring backlog.

The team members must drive toward sprint completion as a group, and they will succeed or fail as a team.

If the team commits to completing 10 items but completes only 5, the failure to meet the commitment has cost the project something — in terms of time, money, or trust. All team members must actively engage in discussion. Their discussions, both across the desk and at the lunch table, will wander from technical details to user expectations.

Someone will be working on a user interface element, someone else on a business rule, and maybe a third person on a caching technique. Along the way, collaboration is natural. The alternative, which is to make progress in many disparate areas of the backlog, tends to be isolating and may lead to fragmented results.

Consider a team building a retail website. A fourth person working on performance optimizations may just have his or her head down in profi ling and monitoring tools.

Now imagine that the four team members are working on just the inventory system. One may focus on bulk updates, another on cross-sell catalog links, a third on image attributes in the catalog, and a fourth on query optimization in popular categories.

At the end of this sprint, the four team members will know a lot about tracking inventory. A top-performing technical team has the capability to build a great product.

A team lacking important skills can rarely build anything great. Therefore, the fi nal product is directly related to the technical wherewithal of the team. Team members have an opportunity to improve their skills with each sprint. Close collaboration encourages cross-learning, so the team should take every opportunity to foster this.

The following are some simple techniques: Earlier, this chapter discussed ways to scale the product owner role. Scaling an entire Scrum team requires a different approach: You need to defi ne multiple Scrum teams. Having multiple Scrum teams can greatly accelerate progress. If done right, you can scale from 8 to 80 team members and burn down the product backlog at a corresponding pace.

If done wrong, it will grind progress to halt. When defi ning multiple Scrum teams, the goal is to have teams that can work independently. At the same time, the teams must coordinate on technology and integrate as early as possible. If the teams do not coordinate on technology, the resulting product may have architectural differences that are difficult to resolve. The longer the teams go without integration, the greater the risk that integration will be difficult.

As discussed in the following sections, to ship a great product that is produced by multiple Scrum teams, you need to address the following topics: How should the team be split? Should it be split by feature, by cross- cutting concern, or by technology? The preference should be by feature, and then by cross- cutting concern, and then by technology. Table 2- 4 summarizes the decision process. Reduces dependencies on other teams. Architecture and technical design could bifurcate across features, increasing support costs.

In a retail website, one team may deliver the caching objects, and another might deliver the security infrastructure. Artifacts from these teams are delivered to other teams, not to the customer. Reduces cost and maximizes quality for complex technical capabilities. In a retail website, one team may focus on the web tier, another on the mid -tier, and a third on the database.

Maximizes skills of specialists. By cross- cutting concern second best choice By technology last choice Focuses on product features. Improves acceptance testing. Ensures architecture consistency across features. Improves unit testing because team members are experts in their technology focus.

Why Hosted TFS?

Each team may need to reinvent the wheel. This division is not customer driven. This organization maximizes inter-team dependencies. Nobody is responsible for feature delivery. Each team will produce solutions that maximize reliance on their technology, while nobody is paying attention to the complexity of technical cohesion of the product. The specialized Scrum teams will work largely independently of each other.

Coordination between them is important, but the daily work and communication will primarily be focused within the team.

The way you choose to specialize will impact the degree of coordination, as outlined in Table Consider the following: The Scrum of Scrums Meeting With multiple teams specialized to implement different aspects of the product, the teams must coordinate and integrate in order to produce a cohesive result. The Scrum of Scrum meeting is where this coordination takes place. Representatives from each Scrum team attend the Scrum of Scrum meeting.

Each team sends an emissary to the meeting. Each team can send more than one person, but one is usually sufficient. The representative could be the lead developer or architect, the product owner, or the ScrumMaster.

You should choose carefully because this person will spend significant time coordinating. The Scrum of Scrums is a meeting — not a team. It does not have a ScrumMaster, a product owner, or team members. It is longer than the minute daily Scrum, but not much longer. The purpose of the meeting is to identify and mange dependencies, coordinate work where necessary, and resolve impediments. Figure depicts a Scrum of Scrums meeting, with an individual from each Scrum team participating.

This example shows three team members attending the Scrum of Scrums, but the ScrumMaster or product owner could just as easily be the participants. A Scrum of Scrums meeting. This is an essential concept in Scrum: The product backlog is the single input queue to the team. This remains true when the product is being built by multiple Scrum teams and is even more important as the aggregate team grows.

It may grow large, but with each team owning certain PBIs, it is very manageable. Each team manages its own PBIs. If there are dozens of PBIs within each functional area of the product, in a product backlog that contains hundreds of items, using the Area Path field becomes the simplest and most consistent way to delineate work across teams.

The PBI fi elds are discussed in more detail Chapters 3 and 6. Sprint Synchronization Each Scrum team executes sprints independently. Each team has a sprint planning meeting at which it commits to PBIs. Each team also has tasks that implement the PBIs, test cases that verify their correctness, and bugs that need to be tracked and resolved. Each team also has a retrospective meetings to identify ways to improve productivity, quality, and velocity.

It is not necessary to synchronize sprints across teams all the time, but it is crucial to do it some of the time. One team may prefer two-week sprints, with a one-week integration sprint after each two-week sprint. Another team may prefer two-week sprints, with a two-week stabilization sprint after three successive two-week sprits. Sprints should be synchronized to facilitate this integration.

Every few months, there should be sync points at which each Scrum team is fi nished with its sprint and can integrate its work with the work of the other Scrum teams. Common Architecture As Table 2- 4 shows, one risk of having specialized Scrum teams that are organized by product feature is that each could develop its own technical architecture and solution to common problems. This risk can be addressed through organizational alignment and a common process.

Organizationally, in addition to defining Scrum teams by feature, you can also define core teams by component. For instance, you may have three features teams building a commercial website: You may add a fourth team to focus on cross-cutting concerns such as database tuning and caching. You may add a fifth team for user experience. This way, each feature team still estimates and commits to its PBIs, but each team also works with a common team for core technology infrastructure.

He or she creates PBIs for the core team, and then that team estimates, prioritizes, and commits to those items. Having core teams with a larger Scrum project is critical for ensuring architectural integrity of the product. So far this chapter has covered how to organize a Scrum team in isolation of other project management techniques and enterprise IT. Maybe you have been rewarded for using MSF in the past and now you are considering doing things differently. This section serves as a map from using MSF to using Scrum.

When transitioning to Scrum, lines of responsibility change. Your interaction with colleagues changes. Your title changes. The way you plan the project changes. The way you measure progress changes. Figure shows the six roles in a typical MSF team organization.

MSF team organization. However, unlike Scrum, with MSF the peers can be managers. Using a more traditional organizational structure, managers direct individuals to work on different parts of the system. The individuals interact closely with people on their team but not necessarily with people outside their team.

MSF has a natural ability to scale, leveraging organizational hierarchies for major responsibilities. It relies more on specifications than on face-to -face communication. Specs facilitate communication across time and distance. There are six roles in MSF: The following sections describe each of the roles and compare them to their counterparts in Scrum.

Individuals in each role draw from their experience and insights in the domain. They often come from the user community or have very deep roots there. The practices and tasks differ significantly between the MSF and Scrum roles, but the individuals fi lling these roles are generally the same. This person is responsible for marketing and product planning. One difference between the product manager role in MSF and the product owner role in Scrum is that the MSF product manager does not generally have much exposure to the development team.

Rather, this person provides input to the program manager, who writes specs for the developers. Scrum optimizes communication by facilitating face-to -face collaboration between product owners and team members.

It eliminates the need for an in-depth specification and the possible misinterpretations of such a spec. This is not to say that specs are bad. They are critical in certain situations. However, they do not need to be the primary communication vehicle between the product owner or manager and developers in creating a product.

Table compares the activities of an MSF product manager with those of a Scrum product owner. This person is the heartbeat of the team, whether with daily Scrums or with weekly meetings. The program manager maintains the high-level schedule for the overall release. The program manager role maps most closely to the ScrumMaster role in Scrum. In both MSF and Scrum, this role is responsible for communication outside the team. However, there are significant differences between the program manager role and the ScrumMaster role.

Because of the extreme collaboration and distributed responsibility in Scrum, there may even be more differences than commonalities between these roles. For instance, in MSF, the program manager owns the schedule, with input from the development team and product manager. In Scrum, the team is committed to the schedule, and the ScrumMaster just facilitates the process. As another example, in MSF, the program manager writes the functional spec, taking input from requirements and writing in terms that developers can follow.

In Scrum, the ScrumMaster does no such task because communication is direct — between the product owner and the team.

Another difference between the roles is their position within the team. In MSF, the program manager is responsible for negotiating differences among competing interests.

These often occur between product management and the development team and focus on features for example, functional, operational, quality and cost for example, time, people, money. In Scrum, the ScrumMaster does not have this position of power. He or she may facilitate the communication but does not have any overriding power to decide what goes into each sprint or release. Yes, using the daily Scrum. The program manager writes or manages the spec.

In Scrum, the product owner is responsible for writing user stories and communicating them to the team. The program manger is responsible for shipping the product on time. This occurs within the team, often between the product owner and team members. Maintaining the schedule Yes.

Yes, but in a limited capacity. There is no master work breakdown structure. Acting as solution architect Yes No. The solution architect is often a team member, with skills and interests divergent from those of the ScrumMaster. Risk management Yes No. The team handles this, although the ScrumMaster communicates issues with project sponsors. In practice, however, the messenger is held accountable for the message, so the ScrumMaster is more involved with risk management than are other team members.

Delivery No Yes. The responsibilities of the MSF development manger role are largely distributed among the team members in Scrum.

The technical work done by developers in MSF is similar to the technical work done by team members in Scrum. In both methodologies, developers are empowered and expected to build a product that meets customer expectations. They specify the product architecture and design, they estimate the time and cost required to complete each feature, and they prepare the product for deployment.

In MSF, a development team works from technical specs written by the program manager. In Scrum, the team members work from the product backlog and must closely communicate with the product owner. In MSF, the development manager may supervise or outsource development of a feature, but he or she is still responsible for delivering that feature to the team. In Scrum, there is no such delegation: Instead, team members build the product.

Outsourced feature teams are managed as self-contained Scrum teams, with integration happening in a Scrum of Scrums or through a designated integration team. Everyone has a boss. Developers work for managers, who work for directors, who work for vice presidents, and so on. But within the context of Scrum activities, no one person manages the work for the developers. Table compares the development manager role with the role of the Scrum team member.

The primary source of information is the functional spec written by the program manager. The primary sources of information are the PBIs written by the product owner and direct communication between the team members and the product owner during the daily Scrum.

Primary communication Works primarily with the program manager and testers. Works primarily with the product owner and other team members.

The same can be said about system testing within Scrum.It depicts screens, database tables, field-level validation, and workflow. Eclipse support: Outbound communication takes many forms — from holding demo days, when team members demonstrate progress with each sprint, to more formal prerelease notes to get the user community excited about the product.

If there are dozens of PBIs within each functional area of the product, in a product backlog that contains hundreds of items, using the Area Path field becomes the simplest and most consistent way to delineate work across teams. Time and Money You need many resources to build and ship a great software product. Works primarily with the product owner and other team members. At a high level, the product owner has the vision for the product. Professional Team Foundation Server Walks you through planning and installing a TFS deployment Features a comprehensive overview of version control Discusses migrating from legacy version control systems,including Visual SourceSafe Reviews how to automate and customize the build process Discusses project management and testing tools Reviews administering a TFS environment, including creating a backup plan, handling disaster recovery, and monitoring server health and performance Prepares you for taking the TFS Microsoft Certification Exam wrox.

PBIs can be very high level or can provide more detail.