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, Portuguese, German
Country:Sierra Leone
Published (Last):11.10.2015
ePub File Size:21.80 MB
PDF File Size:18.11 MB
Distribution:Free* [*Registration needed]
Uploaded by: ALYSA

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.

This is because, as mentioned above, not only Windows management, but also Internet Information Services IIS and Active Directory must be managed in such a critical application. You will need a specialist in TFS to manage the setup and configuration.

A major consideration is whether TFS installed on your local network or TFS installed on a remote server will be faster. Obviously, this depends on the company that you get this service from, but in general these companies can set up more powerful infrastructure, with better performance, than you can set up in-house. Unless you have serious problems with your internet connection, remote TFS can work much faster than on your local network.

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.

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:. 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. Office integration: Eclipse support: Custom check-in policies: 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: Work items in TFS enable work tracking in electronic form. The tracking process you choose will vary, depending on the type of work item. Standard work items will generally suit your needs, but sometimes your processes will need extra things.

In this case, work items can be customized. In the tests, I customized work items that were in standard process templates. Process template customization: Process templates are defined during team project creation. After the process template is defined, it is then used for that project. There are two default templates for the processes: If sufficient rights are provided, you can modify these templates or define new ones.

Some TFS test accounts did not have sufficient rights for this test, some did. Microsoft Test Manager: Microsoft Test Manager is a new program to handle test procedures in Visual Studio With this program, depending on your TFS project, you can create, run and view tests as you develop.

I checked to see whether this could be run successfully under hosted TFS. Web interface: TFS has a greatly enhanced web interface. As you can see, transferring files with 13 MB total size took an average of 1 minute In the above screenshot, a custom field named Test Field marked in red has been added to a standard work item type Task. In this test, I tried to check whether tests could be run successfully or not.

The following screenshot shows this:. The number of users and the additional specifications for these users are the main differences. The next company to give a positive response to my request to run tests was Team Dev Central in Canada.

Below you can find details of my tests on Team Dev Central. As you can see, transferring files with 13 MB total size takes an average of 1 min The picture above shows the creation of a new work item in Eclipse. As can be seen in the picture, every user account in the domain to which TFS belongs is listed in the Assigned To menu, including the Administrator account, and two accounts created for me T A and T B.

If this is done without mapping the check-ins in Visual Studio, you are warned about it. You can let this happen if you want, by specifying a reason. The process has been carried out successfully in the above screenshot. In the screenshot above, the field marked in red — Test Field — was added to a standard task-type work item.

In the above screenshot, Customer ID, which is a custom field, can be seen attached to a bug-type work item.

Team Foundation Server

Team Dev Central issued the server with sufficient permissions for our testing purposes, so the customized process template could be installed. The template for Microsoft Visual Studio Scrum 1. The following screenshot shows the Microsoft Test Manager interface displaying a bug report.

Team Dev Central have four different packages: Starter, Bronze, Silver, and Gold. Many details vary with the packages: The results and review of this company, which also offers hosted Exchange alongside a hosted TFS service, can be found below. If there is a check-in without comment, Visual Studio warns you about it. If preferred, you can override this warning by specifying a reason. In the above screenshot, Customer No. SaaS Made Easy also have four different packages.

The fees for the shared packages and the dedicated servers vary, usually depending on the number of users. SaaS Made Easy have no setup fee. The build server setup fee is unspecified.

Net was the last firm that responded positively to my request to run tests. As you can see, transferring files with a total of size of 13 MB takes an average of 1 min NET account.

Visual Studio warns you about the lack of written comments on check in. You can override this rule, if desired, by specifying a reason. In the screenshot above, we see the added field, named Double Value.

As can be seen, the field has been made mandatory. Unlike the other companies, DiscountASP. NET have developed a control panel, which I also tested. Customers can perform various operations with this panel, such as opening an account, finding out various details about the account, and cancelling it. At the moment, DiscountASP. NET has a single package. The package has no support for SharePoint.

TFS hosting is a very new service area both for vendors and customers. The purpose of this investigation was to answer these questions as much as possible, to test some of these companies, and provide more detail for everyone.

As I said at the beginning, I determined the rubrics for particular tests, and the methods for testing, by considering my own experiences, and consulting with some of my friends. I hope this review helps anyone with a curiosity about hosted TFS. Lastly, I want to thank Tom Russell, who helped me to translate this article from Turkish.

Find out more and a free trial. Find out more. Fortnightly newsletters help sharpen your skills and keep you ahead, with articles, ebooks and opinion to keep you informed. Bahadir Arslan has been working as software developer for more than a decade. He has been working with Microsoft technologies, especially.

He founded MaxiASP. Com link: Net link: Net 2. View all articles by Bahadir Arslan. It can be Windows 7 or vista too. The OS still has to be licensed separately though. But nobody prefers to install non-server OS i think. Even so, we have to update and correct some sentences of licensing parts.

Thank you for you feedback, i hope you liked the rest of article. SaaS made easy Thank you for your comment. I think it is typo. We will correct as soon as possible. A very comparison. So before there was Agile, there was agility, and before there was Scrum, there were teams living and breathing scrumish essence.

It is good to remember this. In a period of about four years, this team, using specific agility-demanding-and- exploiting techniques, coalesced almost like magic and went on — in a sequence of increasingly impressive product releases — to reduce its previously victorious competition to a memory and to set business, technical, and process standards that defi ne key aspects of the programming and general software development environment in which we live and create today.

It is natural and fitting, therefore, that such winning practices eventually become a type of orthodoxy, that their characteristics become normative, and that technology evolve to embody tools supporting these best practices. That such technology can be found in Visual Studio is doubly fitting and personally satisfying , given its heritage. That Visual Studio should proffer such technology also provides a certain nice self-referential quality and a pleasing reminder of the larger fractal reality in which software development always takes place.

The present volume promises to elucidate for the reader the ways and means of conducting the prevailing best practices using the prevailing technology. It is time, and past time, for such a book describing such a reality. Its publication marks a particular moment in the evolution of things: The current moment is one wherein a technology is synergistically both created by and creates a technique. So it shall likely be; as it is ever so.

Thirty-five years ago, there was essentially nothing to program except a few ungainly huge and hugely limited machines. And twenty years ago, there was no way to program all the things there were with any sort of predictable result. Today, I think it can be safely stated, if you carefully follow the advice in this book, and if you connect with the rational energy or the results- oriented spirit of the technical culture that gave rise to — and lies behind — Agile, Scrum, and TFS, you will be able to deliver software of a desired degree of stability at a desired time and at the anticipated expense.

But please notice that, historically speaking, it is only just now that we can reliably develop software. That we can now do so will have profound impact on our world. We can expect even greater technical change than heretofore, and soon — and ever sooner still as time progresses.

While our burgeoning technical culture is more a nascence than a Renaissance, there is no reason to expect that it will be of any less import. There is every reason to expect that it will be global, deeply unifying, and promotional of the freedom of information and people. Since software is basically the codification and distribution of intelligence, and we can now do more and more of it, faster and better, what happens next? Now that we can generate software at will, and, using practices like Scrum and technology like TFS, we can deliver it more or less as desired.

What, then, shall we do with this brand-new, unlimited, and unimaginably great power? What civilization shall we build? What intelligence shall we distribute? These are the questions to ask an Agile team — and to ask only an Agile team — because only such a team can reasonably even consider the questions. When they gather up, when they Scrum, when they charge downfield together toward a goal in a mutually supportive way, a goal they will therefore surely reach, just what goal is worth hitting?

What world do they choose to build? What is your vision? Master the lessons in and around this book, and then answer that question in what you create. Shipping great software is difficult. Is it rewarding? Is it profitable?

Does it mix art and engineering? Is it easy? Yet some companies and organizations do ship great software. They deliver products that their customers love.

They do it on time and on budget. They deliver solutions and services that are highly valued in the marketplace.

So how do they do it? The answer is deceptively simple: They rely on a combination of technology, talent, and process. Each of these three elements is necessary, but each by itself is insufficient to deliver a great product.

Category Matches

If you have all three, then you have the necessary raw ingredients to succeed. This book focuses on one element of shipping great software: It offers a road map for how to use Scrum to organize teams and activities. By focusing on just this one ingredient in successful software, this book provides the details you need. The book even includes templates to help you get started.

Even with all this help, you will still face difficult questions for which there is no standard answers. This book is a collaborative effort of three authors with three distinct perspectives. Each of us has years of experience with Scrum and project management. It is our hope that our experience in software project management can accelerate you on your path to shipping great software with Scrum and TFS.

Chapters 1 through 4 are enough to get you started. Each of those topics fi lls entire books on its own. This book is specifically written to help you use a great tool, TFS, to implement a great process, Scrum. Everyone on a Scrum team is responsible for shipping the product, so everyone needs to understand the process and tools.

This is one of the unique characteristics of Scrum: The whole team — not just the project leads — is responsible for shipping. Because everyone needs to know the process and tools, this book can be helpful for everyone on the team. Finally, project sponsors will fi nd this book helpful. You may be the business executive who funded a project, the manager who hired a consulting fi rm to build a product, or a venture capitalist who funded a company.

If your team is using Scrum, you should be grounded in its principles. It describes three common methodologies — Scrum, MSF, and Waterfall — and compares their essential attributes. We look at how each of these methodologies organizes teams, what its process looks like, and how it tracks progress and milestones. It introduces the roles and responsibilities of an effective team. It describes the interactions among team members on a typical project. This chapter also discusses ways to scale a team to handle larger or more complex efforts.

This chapter also reviews the typical organization of MSF and Waterfall projects. It does this for two reasons. Second, by comparing the three team organizations, you can gain insight into how similar functions are accomplished using different methods. Recognizing this disparity, we put the Scrum team in the context of the broader IT community. We briefly discuss how traditional IT roles, such as database administrator and architect, are handled in Scrum.

Many developers and managers are familiar with the source control, or automated build capabilities, of TFS. However, the Scrum template builds on the tracking and reporting features in TFS. Scrum artifacts, including the product backlog, tasks, test cases, and bugs, are all stored in TFS. Rather than just describing how and where these are stored, this chapter puts them in the context of a Scrum project.

The goal of this chapter is to give you a good grounding in what you should track and how to do it with the Scrum template.

You might also like: NEW SCIENTIST EBOOK

It begins with step -by-step instructions for downloading and installing the Scrum 1. It then goes through all the high-level steps of a Scrum project. By the time you finish this chapter, you will know how to use TFS to enter and track Scrum artifacts. It describes each Scrum artifact in terms of its intent and data fields. The chapter also provides examples of how to fill them out and what value they deliver to the Scrum process. This chapter describes areas, tasks, releases, sprints, impediments, bugs, and test cases.

It also describes the two primary ways to work with these items in TFS: TFS enables you to create sophisticated reports in Excel, and this chapter describes how in detail. Managed by the product owner, the product backlog represents the single stream of input to the team. This chapter reviews the built-in reports you can use to assess your test plan readiness. After discussing test plans and test cases, this chapter covers how bugs are stored and tracked in TFS.

Like PBIs, bugs represent work that must be estimated, scheduled, and completed. They can be linked to tasks and other elements. This chapter describes the steps involved. In Chapters 5 and 6, you learned how to enter PBIs.

In this chapter, you work with PBIs as part of a release. This chapter offers practical advice on what makes a good user story and how to test it. It presents success patterns and failure patterns. You will learn how PBIs relate to tasks in the context of a project and how to efficiently use Excel to monitor progress.

By the end of this chapter, you will know how to defi ne the Scrum artifacts for a release. A sprint is a fi xed time period during which a team builds a set of product features. This chapter describes how to create and track sprint progress in TFS. Scrum measures sprint and release progress by tracking PBIs. The rate at which PBIs are implemented is the velocity.

A common way to track PBIs and the associated velocity is by using a burndown chart. You can change the team, change the duration of a sprint, and change the pace of development. In a very real sense, this makes a team agile. Ideally, changes that you introduce between iterations will improve the quality or velocity of subsequent iterations. The primary difference between a sprint and a spike is that sprints produce customer-valued features, while spikes answer technical or design questions that must be answered in order to move the project forward.

This chapter describes how to use spikes within a release. Should you run them earlier or later? Should you run them in parallel with sprints or as mini-sprints?

To help get you started with the various meetings and ceremonies that occur in Scrum, this appendix includes some templates. It offers a template for the daily Scrum, the end- of-sprint retrospective, the sprint planning meeting, and the product demo. We, the authors of this book, have used the templates included in this appendix in the field. Using these templates is an effective way to ensure consistency and quality across projects.

They tend to be quite readable and offer complementary and differing viewpoints on the topic. Having an open mind will help you transition from the old way of running software projects to Scrum. There are many versions of Visual Studio Fortunately, they all ship with access to Team Foundation Server. With only one exception, all versions of Visual Studio will work for the features described in this book. Microsoft Test Manager, which is briefly described in Chapter 7, ships only with the Ultimate and Test Professional editions.

You need a copy of Office. We recommend Office , but Office will suffice. The installation is surprisingly easy if you have the underlying platform properly configured. You can install TFS directly on hardware, or you can install it in a virtual machine. As you might imagine, Hyper-V works very well for this purpose. As an alternative to installing TFS on local hardware, you can use a hosting provider.

If you sign up with a reliable provider, the experience is flawless. The company provides excellent service for TFS hosting — at a reasonable price. As mentioned earlier, in addition to needing some software, you need an open mind. Transitioning from one way of doing things to another can be difficult.

But Scrum does codify techniques so they can be repeated and improved over time. So keep an open mind and watch for big opportunities. Boxes with a warning icon like this one hold important, not-to - be forgotten information that is directly relevant to the surrounding text. The pencil icon indicates notes, tips, hints, tricks, and asides to the current discussion.

However, no one is perfect, and mistakes do occur. If you fi nd an error in one of our books, we would be very grateful for your feedback. By sending in errata you may save another reader hours of frustration and at the same time you will be helping us provide even higher quality information.

To fi nd the errata page for this book, go to www. Then, on the book details page, click the Book Errata link. The forums are a Web -based system for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users. The forums offer a subscription feature to e-mail you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

At http: To join the forums, just follow these steps: Go to http: You will receive an e-mail with information describing how to verify your account and complete the joining process. Read the terms of use and click Agree. Complete the required information to join as well as any optional information you wish to provide and click Submit. You can read messages in the forums without joining P2P, but in order to post your own messages, you must join.

Once you join, you can post new messages and respond to messages other users post. You can read messages at any time on the Web. If you would like to have new messages from a particular forum e-mailed to you, click the Subscribe to this Forum icon by the forum name in the forum listing. For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works as well as many common questions specific to P2P and Wrox books.

Scrum, MSF, and Waterfall. This chapter covers the high-level process of shipping software. The fundamental concept is to put customer value at the center of everything you do. Before you can ship great software, you need to build it. Before you can build it, you need to envision how it might work and look.

Before you can envision it, you need to know why and how someone would use it. So, shipping great software really begins with vision and insight into how something works, how it can be improved, and why people care. This section discusses the following requirements for shipping software: The vision should be a meaningful description of the product goals and an inspiring outcome.

The vision should describe the needs and benefits in terms that the user cares about. It should describe the problem being solved and the opportunity in solving it. The vision should pique the interest of customers, sponsors, and the project team. The product vision should be relatively short; a few paragraphs generally suffice. It should include a description of the problem and opportunity as well as the solution and the benefit. Everyone on the project team will read it.

They will talk to their colleagues, friends, and families about it. It should be clear yet comprehensive enough to resonate with these audiences.

The product vision is typically accompanied by a defi nition of scope. The scope clearly sets the path for the vision, from problem to solution. It should include high-level features, time lines, and constraints. You can defi ne the scope of a prototype, a beta, and the fi rst few releases. Earlier milestones should have greater granularity; later milestones can be more vague. The scope should clearly defi ne what is being proposed and what is not being proposed.

This document is the first opportunity to define a series of releases. Thinking and communicating in terms of successive releases is critical with Scrum. You can define the rough features that will be in each release, so everyone learns to expect incremental progress as the team iterates toward the solution.

For example, say you enjoy fantasy football, a game in which you create virtual football teams that compete based on the statistics of the individual players.

In a moment of inspiration, you decide to fi x the problem by building a search engine for this purpose. You could create the following vision for this product: Create a search engine for fantasy sports enthusiasts. Therefore, you might rewrite the vision as follows: Many websites are available for fantasy football leagues. They have great features but lack powerful search capabilities. We will create a fantasy football search engine so that fans have access to more data and can create the best teams.

This is better, as it constrains the problem to what you initially had in mind — fantasy football. It also adds a purpose: Now you need to scope the problem. You want to solve the problem for fantasy football, but you also realize that the solution would work just as well with other sports.

So you can broaden the vision and then constrain it with the scope: Many websites are available for fantasy sports leagues. We will create a fantasy sports search engine so that fans have access to more data and can create the best teams. The immediate market for fantasy sports is 50 dedicated websites, reaching over 3 million users.

The indirect market, including news and sports sites, is approximately sites that reach over 20 million people. The first release will target American football and provide an interface for existing websites.

It will contain data for all NFL teams and will support parametric searches on player characteristics. Subsequent releases will add more sports leagues; will support features for managing teams, players, standings, and trading; and will have an interface for mobile apps.

After this, you can defi ne a business case, technical solution concept, and critical assumptions. They commonly have sections for vision, requirements, solution, assumptions, limitations, and risks. This is true of engineering in general and software engineering in particular. Product management has a broad c It involves translating the needs and desires of the user or market into instructions for engineering.

We use the term instructions very loosely here, as it may take the form of requirements, storyboards, user stories, mockups, visual comps, or other design artifacts. And say that the working environment allows the team to flourish. In this case, the success of the product depends on product management.

The product owner, who fills the product management role in Scrum, is embedded in the Scrum team and is counted on to know the user intimately. Essentially, the product owner must have insight into how the user will value the product. It prescribes planning and design up front, and it involves more planning and design as you iteratively build the solution. Several factors drive the need for insight in the product owner role in Scrum: Decisions are made faster than in traditional software creation, but if the product owner lacks sufficient insight into the problem, he or she will make wrong decisions or lack confidence to make any decisions at all.

They come in and out of scope based on product owner decisions, which directly impact the value of the product. Good insight is necessary to sift out valuable data from extraneous data. Resources Building a software product is a very resource-intensive activity.

It requires people from many different disciplines working together toward a common goal. These people include visual designers, domain experts, software developers, and product managers. Depending on the domain, building software may also require business analysts, security experts, information architects, and marketing specialists. When you wrote your first computer program, it was pretty easy: You were the designer, developer, tester, and possibly customer.

You need to clearly understand what the customer wants before you can start building. You need to know how much the customer is willing to spend before you begin to download technology or hire the team for the job. This enables you to adjust your plans along the way, based on the realities you encounter with technology, the team, and customers. Time and Money You need many resources to build and ship a great software product. At the highest level, you need time and money.

To be sure, these are not interchangeable, no matter how much you have of either. A perfect product released at the wrong time is generally not very useful. On the other hand, the right product at the right time is very valuable: It was a good product with perfect timing. It was the early s, and Microsoft was developing Windows 95 as the next operating system for personal computing, gaming, and business productivity.

But a confluence of events occurred during its development cycle that made Microsoft rethink its plan. The Mosaic browser was written and distributed as Netscape Navigator; Senator Al Gore sponsored legislation to increase investments in the publicly funded Internet; and consumer websites such as site, site, and Yahoo! Microsoft faced a dilemma: Should it delay Windows 95 until it could include a web browser, or should it ship Windows 95 without one and continue to develop an integrated browser in parallel?

Microsoft chose the latter route and released Window 95 without a browser but in time to catch the Internet wave. While Windows 95 was far from perfect, its timing was ideal. Two obvious resources you need for software development are people and equipment. You may need user interface specialists, database specialists, security experts, and performance-tuning engineers. The bulk of the technical work will likely be done by generalists: If your project needs a high percentage of specialists rather than generalists, you might want to increase your time and cost estimates.

Finding and replacing specialists can be a more time - consuming and costly activity than swapping generalists. You can convert money into people by hiring a team. Some team members will be employees — people you want to retain for the duration of the project and beyond. Others will be contractors — people with specialized skills that you need during certain phases of the project.

You can download it, lease it, or rent it for remote access. This is true for both hardware and software. You can allocate technology to problems as they arise and then shift resources such as money as circumstances change.

For instance, you may need significant hardware capacity during a performance-testing phase of a project. Planning Planning is an essential ingredient in shipping great software. Planning takes a great deal of time before a project begins and even more time once a project is under way. Depending on which methodology you use, the specific planning activities will vary dramatically. For instance, planning a project using a traditional software development methodology involves allocating time for requirements defi nition, design, development, testing, user acceptance, release management, and support.

Software development occurs solely during the development phase. Figure shows a high-level view of Waterfall and Scrum planning. Waterfall and Scrum planning. The Waterfall method of project management is the method most commonly used to run software projects.

When using the Waterfall method, you schedule tasks sequentially, completing one phase of activity before beginning the next. One place where Scrum is different from traditional software project management methodologies such as the Waterfall method is with respect to predictability.

Waterfall assumes that you can predict how long tasks will take. You allocate people and time to tasks and then schedule them accordingly. Scrum assumes the opposite. If you cannot predict how long a single task will take, how can you predict how long a whole series of tasks will take? Rather than predict the product schedule, you predict smaller units of work that can be completed within a sprint. At the end of each sprint, features are complete and can be included in a potentially shippable product.

This way, you predict features by time rather than predicting time by features, which is essentially a time-box approach. A sprint is the smallest cycle time within Scrum. Chapter 9 focuses on running sprints. Sprints can be as long as a month or two and as short as a day or two. The ScrumMaster decides the duration before the sprint begins. Each sprint starts with a sprint planning meeting, during which the team looks at the product backlog and decides which features to build during the sprint.

The team members use their experience in the previous sprint s to predict how much they can accomplish in the next sprint.

This is significantly different from the Waterfall method, which involves predicting the release and features up front and allocating time and people to the tasks. Note that each task is scheduled with a known duration. If a task completes early or late, this will impact all other tasks in the release.

This works well if you have a high degree of confidence in your task estimates, but it falls apart quickly if the estimates are incorrect. Download from Wow! However, rather than plan tasks to manage dependencies, you plan tasks to manage feature delivery. The team focuses on building the product rather than keeping to the schedule.

The schedule in Scrum is simple: Waterfall method Gantt chart.

Professional Team Foundation Server 2013

Planning within a sprint focuses on the product rather than the schedule because the schedule is so simple. This report, and many others like it, is covered in Chapter 6.

A Scrum project artifact. Common examples of artifacts are task lists, schedules, and test cases. Figure shows a list that combines backlog items and tasks, to easily organize and use them together. Budget Planning It is extremely difficult to accurately forecast the cost of software development before you start. There are many unknowns in the factors that impact cost, such as requirements, technology choices, and team composition.

Or, while you may assume that technology used on a previous project is good for this one, you may get into unfamiliar territory when working on specific features for this new project. And, in the realm of people, you may not be able to assume that a specific person will be on the project team.

Rather, you tend to work with roles such as senior architect or database developer when estimating projects. The project management triangle in Figure 1- 4 depicts the three constraints that defi ne a project: This is the case in auto repair and home renovation, so why not with software? Because of these unknowns and the fi xed constraints in the triangle, you simply cannot offer a fi xed- cost commitment for a fi xed-feature product.

You therefore have two alternatives: Vary the cost or vary the features.

If you must deliver a fi xed budget, then the answer is simple: Vary the features. Scrum offers this alternative. The cost of a Scrum team can be fi xed. If you have two product owners, six team members, and one ScrumMaster, then you can add up their weekly wages to determine the weekly cost. If sprints are fi xed at four weeks, then you know that a sprint will cost four times the weekly cost of the team.

Now you can accurately predict the cost and duration of a sprint. However, customers rarely pay for sprints; they pay for products. This leaves the third element of the triangle: The project management triangle. The backlog items must be ranked into a list, based on the value they deliver to the customer. By looking at the prioritized backlog, you can identify the fi rst set of backlog items to implement.

You might even be able to identify the second or third set of related backlog items. In other words, by working with the backlog, you can make a reasonable estimate of how much you can get done within a fi xed time period. Your estimate is for a fi xed time period with a fi xed team, but the feature set that you deliver will vary.

The Scrum approach therefore meets the goals of budgetary control and also addresses the realities of software development with respect to unknowns. People Planning Scrum projects are inherently team-driven activities, with all members involved with all aspects of the project. The team composition is simple, with just 3 roles defi ned. Team size tends to be small — up to 10 people or so. Because there are so few roles and so few people, team members are highly interdependent.

The individuals on the team will succeed or fail together.

Professional Team Foundation Server 2012

Scrum requires a cohesive team, one that is assembled early in the project and remains consistent from sprint to sprint. Of course, people will come and go, as families, careers, and projects take us in unexpected directions, but team consistency is more important in a Scrum project than in other project management methodologies. In later chapters, we describe how sprint planning begins with a measure of velocity, the speed at which a team can implement items on the product backlog.

With each sprint, the team estimates the effort needed to complete a set of backlog items. The team commits to completing the items, and then it actually does the work.

The measure of velocity becomes more accurate as the team executes sprints. Changing the team between sprints negatively affects the predictability of the sprints. Without knowing how much work these new team members can do, the team will have a difficult time committing to backlog items. You should avoid this if at all possible.

Changing people will have a ripple effect not only within the team but also potentially within the customer base. For instance, if the product owner told some customers that they can see a feature at the end of a four-week sprint, and team changes within the sprint prevent that feature from being complete, the customer will be dissatisfied. The alternative — uncertainty — causes stress.

Therefore, you should plan to educate the team on Scrum prior to the project. There are many good books and resources on Scrum methodologies that you can use to help train the team on what to expect.

Appendix B provides suggestions on where to begin. Product Features Time and money — the latter being converted to people and equipment — are the limited resources for building a product. These resources have a direct relationship to the feature set that ultimately c Assuming that there is variability in terms of product features, your job is to optimize the use of time and resources to build a feature set that maximizes the value of the product.

In some business discussions, people are referred to as resources. This is offensive to some and misleading to others. Here, we refer to resources as just what it sounds like — sources of supply. A resource can be a supply of labor, money, or equipment. Resources can be exchanged, either directly for example, paying a wage changes money to labor or indirectly for example, paying a wage to build equipment changes money to labor to equipment. Quality is a feature you can control.

You can create a product with more quality or less, depending on how you allocate the resources of time and money. If you run out of time before completing adequate testing on a project, you may implicitly decide to cut quality.

The project team has complete control over how much quality to build into a product, as long as quality is considered a feature that requires resources to complete. Shipping is another feature that you control. You can build a product and not ship it.

If you have more time or money, you can build more features and quality into a product. Conversely, if you have less time or money, you can either cut features or reduce quality. The geometry of the project management triangle, with constant angles, dictates the fact that you cannot change just one side of the triangle without adjusting the others.

Features refer to attributes of the product — such as functions, style, security, or performance. Scope refers to the work or effort associated with a project. However, Scrum is designed to react to changes gracefully. With respect to scope, Scrum assumes that the feature set is not fully defined up front.

Rather, as the product emerges with successive sprints, features are added to and cut from scope. Scrum also assumes that building a product will take a variable amount of time and that you cannot predict the amount of time too early in the project. Once you have achieved a predictable burndown velocity, you can begin to predict scope completion dates. Scrum can work quite well on fixed-budget projects because it enables you to move features in and out of sprints and move sprints in and out of releases.

Burndown velocity refers to the rate at which you complete product features during each sprint.

This is covered in Chapters 8 and 9. Scrum came on the scene around and is rooted in Agile programming. Like Scrum, it is an iterative development method. By the time you fi nish this book, you will know more than enough to begin. This section presents a very brief summary of Scrum in order to help you compare it with the other software project management methodologies. The subsequent chapters cover specific techniques for using Visual Studio TFS to implement the concepts introduced here.

The Theory of Scrum: The Agile Manifesto The Agile Manifesto is a great starting point for understanding the principles on which Scrum is based. You can fi nd it online at http: Four high-level values frame the methodology: In addition, 12 principles guide Agile software development: Give them the environment and support they need and trust them to get the job done.

The sponsors, developers, and users should be able to maintain a constant pace indefi nitely. The following section describes the high-level process that Scrum follows, from planning through execution. The Practice of Scrum Scrum is an iterative software development process. In an iterative process, a product undergoes many releases, some major and some minor, with each release adding more value to the product. This type of process enables a team to deliver value to the customer early and to get feedback that can be quickly incorporated into future product development.

In the Scrum method, the product feature set is defi ned by user stories, which are brief narrative descriptions of how the product will be used, by whom, and why. As features are scheduled for development, user stories are decomposed and augmented with increasing levels of detail. The product release cycle in Scrum is divided into sprints. These are fixed durations, typically two to eight weeks, in which all development activities take place.

Each sprint produces a potentially shippable c After a number of sprints, typically 3 to 10, the product contains enough value to warrant deployment. Figure shows the release and sprint cycle. Sprint 1 Sprint 2 Sprint 3 Release 1. The Scrum release and sprint cycle. You can observe the high-level activity of a Scrum project by reviewing three characteristics: The following sections look at each of these characteristics in more detail.

Project Artifacts The product backlog is the list of all features waiting to be built. A team prioritizes the product backlog by business value and ranks it according to which features should be delivered to the customer. Scrum assumes that the list will grow and shrink throughout a release, as the team learns more about the features and the customer learns more about the product. Initially, there is just enough detail associated with each backlog item to begin the discussion between the product owner and the development team.

The primary communication mechanism between groups is face-to -face interaction rather than documentation. The product backlog is the sole input directing work streams of the Scrum team. At the beginning of each sprint, the team moves items from the product backlog to the sprint backlog to indicate the features that will be built in the current sprint.

At the end of each sprint, the team produces a potentially shippable product. Bugs that exist at the end of each sprint are added to the product backlog, so work can be scheduled to complete those items in future sprints. Chapter 6 covers using TFS to manage and track the product backlog. Roles Scrum has a very simple team structure that involves just three roles. These are the three roles: This person is the voice of the customer and is always available to meet directly with the development team to discuss and review features.

There must be at least one product owner on a project at all times. Team members are the architects, developers, and testers. There is no outside group performing these tasks. The ScrumMaster defi nes the sprint duration generally two to four weeks , runs the daily standup meeting, and helps to keep all team members working productively. Chapter 2 covers team organization in detail. Ceremonies At the beginning of each sprint, the team holds a sprint planning meeting to review the backlog and estimate how much it can accomplish.

The team identifies the items it will build in the sprint, and it commits to completing those items. Because each sprint has a fi xed set of resources, the number of features must vary refer to Figure 1- 4.

Each day of the sprint, the ScrumMaster leads the daily Scrum, or standup meeting. This is a short to 30 -minute meeting to ensure that everyone on the team is productive and to identify dependences that are impeding progress. Chapter 10 covers using TFS to conduct effective retrospective meetings.

Microsoft Solutions Framework MSF is a framework for building and shipping software in an iterative series of releases. Its goal is to help a team build and ship software for enterprise customers in a rapidly changing world while reducing risk at each stage.

It assumes that there will be changes in scope, technology, and people throughout the project. Iterative software development focuses on delivering small pieces of functionality frequently in order to solicit and react to feedback, thereby reducing risk. Rather than shipping one release over a two year project, MSF breaks a release into four smaller projects, each of which delivers a subset of the features. With this method, the end user can see the product in an earlier stage of development and provide feedback before additional features are built.

MSF contains five distinct milestones in each iteration, represented in the figure by black diamonds and labeled outside the c There are five corresponding project phases in each iteration. These are labeled on the inside of the circle. The project moves from one phase to the next as each milestone is achieved: Deployment complete 4. Release readiness approved Deploying Envisioning 1. Scope complete Developing 2. The MSF process model. Instead, it captures the high-level vision for the release and the specific scope that will be implemented.

It may have screen shots of competing systems or of prototypes. It may defi ne high-level use cases, business workflows, or personas to indicate how the system will be used and by whom.

Project plan approved — This milestone is reached at the end of the planning phase, after the functional spec is written and a concrete project plan is approved by the project sponsor. This is typically a relatively long phase. It involves prototypes and detailed design activities.

The more technical work that is completed in this phase, the more accurate project plans will be. Scope complete — This milestone is reached after the components are built and unit tested during the developing phase.

All major software development is complete at this point. Release readiness approved — This milestone occurs after the stabilizing phase, when the system is tested for end-to - end correctness and workflows.

This phase also typically includes stress and performance testing. In addition, production-readiness activities, such as run books for operations and configuration tools, are built.

Deployment complete — This milestone is reached after the deploying phase, when the software is deployed to the target operating environment.

MSF defi nes six roles, all of whom are peers on the project team. Each of these roles should be fi lled at the beginning of the project, although full-time involvement will vary during each cycle: The MSF team model. Their central job is to balance the project constraints of time and money against the feature set to deliver the product on time and on budget.

What makes this difficult is that the program manager does not control the resources or the feature set; the other roles control the resources and feature set. Effective communication and negotiation are hallmarks of this role. Product managers deeply understand customer needs and usage patterns. They instinctively know what is good, what is great, and what is awful. They contribute heavily early in the project, a bit less in the middle, and then significantly again toward the end.

This team works closely with all the other teams to build a top-quality product. It is organized along functional or technical lines so it can scale well.

It works closely with the development team to test the product throughout the developing and stabilizing phases. This often includes writing and testing the installation instructions to ensure smooth rollout. It also includes working with operations teams to ensure compliance with local procedures and policies in the target environment.

Release management contributes heavily near the end of a release, but earlier involvement greatly increases the likelihood of successful deployment. At the software level, it includes visual design, information architecture, feature usability and discoverability, and the overall look and feel of the system. In addition to software, the user experience team delivers documentation, help text, and training.

Making this function a peer with other team roles enables these critical functions to be planned for and budgeted throughout the project.

The Waterfall Method The Waterfall method is a proven technique for engineering and construction management. It breaks a project into a series of phases, each one conducted by a specialized team with specific outcomes and deliverables.

The term Waterfall refers to the visual structure of a Gantt chart, which is commonly used for planning. Figure , earlier in this chapter, depicts the waterfall shape of the Gantt chart.

The Waterfall method is very effective under certain circumstances, although it has had limited success in producing modern software. The Waterfall method favors stability over agility, planning over experimentation, and documentation over discussion. The following sections discuss these three concepts. Stability If system requirements are stable, you can predictably engineer a solution that meets those requirements. You will be told where the bridge should begin and end. With stable requirements and stable technology, an experienced engineering fi rm should be able to prepare a reliable estimate for completing the work.

If the requirements are more dynamic, then it becomes increasingly difficult to estimate the time and cost of the project, and the Waterfall method fails. In this case, an experienced engineering fi rm would propose a discovery phase, possibly for a fi xed price, but could not accurately plan the project further. This makes using the Waterfall method difficult because there are simply too many unknowns at the start of a project.

Customers may have difficulty articulating what they want, and engineers may not fully understand what they need to build.

If these people are speaking different languages, each will be misunderstood. Planning Each phase in the Waterfall method is predicated on successfully completing the prior phase. Each phase builds on the work and decisions made in the prior phase, and the team can adjust its plans accordingly. This implies that decisions made in early phases have an increasingly large impact in later phases.

That being the case, earlier phases focus on solidifying the requirements and design of the system, with little code or engineering work taking place until later. A central concept in this method is that problems uncovered earlier in the process are much easier to correct than those found later.

The same concept can also be applied in some software projects. If the requirements are very stable and clearly understood, then a lengthy design phase, including prototyping and feedback, followed by a shorter development phase, can deliver a product for a predictable cost.

Documentation Documentation is the primary communication vehicle between phases of the Waterfall method. Heavy reliance on documentation allows project phases to start, be staffed by experts, produce a result a document , and then wind down in a predictable manner. Finally, it provides a written record of progress so there is transparency into why, when, and by whom decisions are made.

Requirements gathered from stakeholders are cataloged and assembled into a document that becomes the defi nition of success. This primary document is called the requirements defi nition, business requirements document, or something similar.

The document essentially becomes the contract between the business users and the technical implementation team. If, when the system is deployed, it meets the requirements listed in this document, the system is deemed successful.

Therefore, both teams must fully understand this document. After the requirements defi nition is reviewed and approved by the business users, a more technical team translates it into a functional specification or spec. The functional spec describes what the system will do. It depicts screens, database tables, field-level validation, and workflow. It translates the business requirements into something that the team can build. The business user must also review and approve this document, since it precisely describes the system that will be built.

The functional spec also typically includes a traceability matrix that references the requirements document. This matrix ensures that the functional specification addresses all business requirements.

Following the functional spec is a detailed design document, the fi rst document that addresses the technology. Its purpose is to map the functional spec into a blueprint of a system. After system architects approve the detailed design, construction begins. First, it assumes that people will read the documents. This is rarely the case, as documents frequently exceed hundreds of pages. Second, it assumes that the reader can understand the documents.

This is also rarely the case. They generally approve a document based on their trust of the people writing it, but this allows errors and omission to easily slip past review. Finally, the more the team focuses on documentation, the less it focuses on the actual task at hand — building great software.

The intent is to help you understand the similarities and differences, so you can use your experience with Waterfall or MSF to gain insight into Scrum. How are the user needs and expectations captured?Scrum does not have an explicit QA role; instead, the product owner trusts that the team will deliver tested code and will then verify the product, using documented test cases.

Wrox authors, editors, other industry experts, and your fellow readers are present on these forums. In this scenario, each product owner would be responsible for a set of sprint backlog items. It starts as a simple sentence or two, often on a note card, and is used as a reminder that more detail is needed. Professional Team Foundation Server , written by an accomplished team of Microsoft insiders and Microsoft MVPs, provides the thorough, step-by-step instruction you need to use TFS efficiently?

THERESE from Palm Springs
I do love reading novels awkwardly. See my other articles. I take pleasure in board sports.