38,99 €
Team Foundation Server is now for everyone! Team Foundation Server is an integral part of Microsoft's Application Lifecycle Management suite for managing and delivering software projects. The 2013 update has opened up TFS for everyone by expanding capabilities to support iOS, MacOS, Android, and Java development. Professional Team Foundation Server 2013 covers the latest updates for Agile Project Management, Test-Case Management, Release Management, and shows new users the TFS workflow for managing and delivering products. The authors leverage their positions as MVP Microsoft insiders to guide you step-by-step through all things TFS, as well as help prepare you for the Team Foundation Server Certification Exam. * Provides a broad overview of Team Foundation Server for developers, software project managers, testers, business analysts, and others wanting to learn how to use TFS * Gives TFS administrators the tools they need to efficiently monitor and manage the TFS environment * Covers core TFS functions including project management, work item tracking, version control, test case management, build automation, reporting * Explains extensibility options and how to write extensions for TFS * Helps certification candidates prepare for the Microsoft Team Foundation Server 2013 certification exam Professional Team Foundation Server 2013 is the ultimate guide to mastering this invaluable developer's tool.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 1251
Veröffentlichungsjahr: 2014
Cover
Part I: Getting Started
Chapter 1: Introducing Visual Studio Online and Team Foundation Server 2013
What is Team Foundation Server?
What is Visual Studio Online?
What's New in Team Foundation Server 2013?
Acquisition Options
Summary
Chapter 2: Planning a Deployment
Identifying and Addressing Software Engineering Pain
Adopting Team Foundation Server
Migration Strategies
Structuring Team Project Collections and Team Projects
Preparation for a Team Foundation Server Environment
Summary
Chapter 3: Installation and Configuration
What You'll Need
Installing Team Foundation Server
Installation Types
Configuring Team Foundation Server
Creating Your First Team Project
Configuring Friendly DNS Names
Summary
Chapter 4: Connecting to Team Foundation Server
Team Foundation Server Architecture
Addressing Team Foundation Server
Introducing Team Foundation Server Security and Roles
Team Explorer
Alternate Ways to Connect to Team Foundation Server
Summary
Part II: Version Control
Chapter 5: Overview of Version Control
What Is Version Control?
Centralized Versus Decentralized Version Control
Summary
Chapter 6: Using Centralized Team Foundation Version Control
Getting Started with Team Foundation Server Version Control
Learning What's New in Team Foundation Server 2013 Version Control
Team Foundation Server Version Control Concepts
Using Source Control Explorer
Keeping on Task with My Work
Managing Code Reviews
Team Foundation Server Version Control in Eclipse
Team Foundation Version Control Power Tools and Third-Party Utilities
Version Control Security and Permissions
Switching Version Control to Team Foundation Server
Summary
Chapter 7: Distributed Version Control with Git and Team Foundation Server
Distributed Version Control Concepts
Microsoft Visual Studio Integration
Using Git Command-Line Tools
Summary
Chapter 8: Version Control in Heterogeneous Teams
What Are Heterogeneous Teams?
Working Together Seamlessly
Xcode Development
Eclipse Development
Working with the Cross-Platform Command-Line Client
Summary
Chapter 9: Migration from Legacy Version Control Systems
Migration Versus Upgrade
Migrating History or Latest Version
Migrating from Visual SourceSafe
Team Foundation Server Integration Platform
Popular Third-Party Migration Tools
Summary
Chapter 10: Branching and Merging
Differences Between TFVC and Git When Branching and Merging
Branching Demystified
Common Branching Strategies
Implementing Branching Strategies in Centralized Version Control
Implementing Branching Strategies in Git
Summary
Chapter 11: Common Version Control Scenarios
Setting Up the Folder Structure for Your Branches
Third-Party Source Code and Dependencies
Internal Shared Libraries
Managing Artifacts Using Team Foundation Server
Summary
Part III: Project Management
Chapter 12: Introducing Work Item Tracking
Project Management Enhancements in Team Foundation Server 2013
Work Items
Process Templates
Managing Work Items
Project Server Integration
Summary
Chapter 13: Customizing Process Templates
Wrox.com Code Downloads for this Chapter
Anatomy of a Process Template
Using the Process Template Editor
Deploying Updates to Process Templates
Customizing Agile Tools
Common Work Item Type Customizations
Introducing Custom Work Item Controls
Summary
Chapter 14: Managing Teams and Agile Planning Tools
Defining a Team
Maintaining Product Backlogs
Planning Iterations
Tracking Work
Customization Options
Team Rooms
Stakeholder Feedback
Summary
Chapter 15: Reporting and SharePoint Dashboards
What's New in Team Foundation Server 2013?
Team Foundation Server Data Warehouse
SharePoint Integration
Creating Reports
Advanced Customization
Summary
Chapter 16: Project Server Integration
Overview
Initial Configuration
Summary
Part IV: Team Foundation Build
Chapter 17: Overview of Build Automation
What's New in Build Automation
Let's Build Something
What Is Build Automation?
Using Build Automation Servers
Adopting Build Automation
Summary
Chapter 18: Using Team Foundation Build
Introduction to Team Foundation Build
Team Foundation Build Architecture
Setting Up the Team Foundation Build Service
Working with Builds
Understanding the Build Process
Summary
Chapter 19: Customizing the Build Process
Wrox.com Code Downloads for This Chapter
Running Custom Build Scripts during Your Build
Customizing the Build Process to Stamp the Version Number into Your Assemblies
Available Custom Build Workflow Activities
Integrating Custom Activities into the Build Process Template
Summary
Chapter 20: Release Management
Getting Started with Release Management for Visual Studio 2013
Configuration
Release Templates and Components
Releasing Your Application
Summary
Part V: Administration
Chapter 21: Introduction to Team Foundation Server Administration
Administrative Roles
Logical Architecture
Built-In Administration Tools
Operational Intelligence Hub
Other Administration Tools
Summary
Chapter 22: Scalability and High Availability
An Evolving Architecture
Limiting Factors
Principles
Solutions
Summary
Chapter 23: Disaster Recovery
Business Continuity and Recovery Goals
Defining Responsibilities
Backing Up Team Foundation Server
Creating a Backup Plan
Summary
Chapter 24: Security and Privileges
Security When Using Visual Studio Online
Users
Groups
Permissions
Security Management
Tools
Summary
Chapter 25: Monitoring Server Health and Performance
System Health
SQL Server
Team Foundation Server
Tools
Summary
Chapter 26: Testing and Lab Management
What's New in Software Testing?
Software Testing
Testing Architecture
Microsoft Test Manager
Test Automation
Visual Studio Lab Management
Summary
Chapter 27: Upgrading Team Foundation Server
Overview
Upgrading Prerequisites
Using the Configuration Utility
Upgrading Legacy Team Projects
Summary
Chapter 28: Working with Geographically Distributed Teams
Identifying the Challenges
Solutions
Build Servers
Team Foundation Server Proxy
Mirroring with the Team Foundation Server Integration Tools
Working Offline
Other Considerations
Summary
Chapter 29: Extending Team Foundation Server
Wrox.com Code Downloads for This Chapter
Extensibility Points
.NET Client Object Model
SOAP Event Subscriptions
Server Object Model
Visual Studio Extensibility
Other Resources
Summary
Introduction
Whom This Book Is For
What This Book Covers
How This Book Is Structured
What You Need to Use This Book
Further Learning
Continuous Product Updates and Release Schedule
Conventions
Source Code
Errata
p2p.wrox.com
Title Page
Copyright
Dedication
About the Authors
About the Contributor
About the Technical Editor
Credits
Acknowledgments
End User License Agreement
xxxix
xl
xli
xlii
xliii
xliv
xlv
xlvi
xlvii
xlviii
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
Table of Contents
Figure 2.1
Figure 2.2
Figure 2.3
Figure 2.4
Figure 3.1
Figure 3.2
Figure 3.3
Figure 3.4
Figure 3.5
Figure 3.6
Figure 3.7
Figure 3.8
Figure 3.9
Figure 3.10
Figure 4.1
Figure 4.2
Figure 4.3
Figure 4.4
Figure 4.5
Figure 4.6
Figure 4.7
Figure 4.8
Figure 4.9
Figure 4.10
Figure 4.11
Figure 4.12
Figure 4.13
Figure 6.1
Figure 6.2
Figure 6.3
Figure 6.4
Figure 6.5
Figure 6.6
Figure 6.7
Figure 6.8
Figure 6.9
Figure 6.10
Figure 6.11
Figure 6.12
Figure 6.13
Figure 6.14
Figure 6.15
Figure 6.16
Figure 6.17
Figure 6.18
Figure 6.19
Figure 6.20
Figure 6.21
Figure 6.22
Figure 6.23
Figure 6.24
Figure 6.25
Figure 6.26
Figure 6.27
Figure 6.28
Figure 6.29
Figure 6.30
Figure 6.31
Figure 6.32
Figure 6.33
Figure 6.34
Figure 6.35
Figure 6.36
Figure 6.37
Figure 6.38
Figure 7.1
Figure 7.2
Figure 7.3
Figure 7.4
Figure 7.5
Figure 7.6
Figure 7.7
Figure 7.8
Figure 7.9
Figure 7.10
Figure 7.11
Figure 7.12
Figure 7.13
Figure 7.14
Figure 7.15
Figure 7.16
Figure 7.17
Figure 7.18
Figure 7.19
Figure 7.20
Figure 7.21
Figure 7.22
Figure 7.23
Figure 7.24
Figure 7.25
Figure 7.26
Figure 7.27
Figure 7.28
Figure 7.29
Figure 7.30
Figure 7.31
Figure 7.32
Figure 7.33
Figure 7.34
Figure 7.35
Figure 7.36
Figure 7.37
Figure 7.38
Figure 8.1
Figure 8.2
Figure 8.3
Figure 8.4
Figure 8.5
Figure 8.6
Figure 8.7
Figure 8.8
Figure 8.9
Figure 8.10
Figure 8.11
Figure 8.12
Figure 8.13
Figure 8.14
Figure 8.15
Figure 8.16
Figure 8.17
Figure 8.18
Figure 8.19
Figure 8.20
Figure 8.21
Figure 8.22
Figure 8.23
Figure 8.24
Figure 8.25
Figure 8.26
Figure 8.27
Figure 8.28
Figure 8.29
Figure 8.30
Figure 8.31
Figure 8.32
Figure 8.33
Figure 8.34
Figure 8.35
Figure 9.1
Figure 9.2
Figure 9.3
Figure 9.4
Figure 9.5
Figure 9.6
Figure 9.7
Figure 9.8
Figure 9.9
Figure 10.1
Figure 10.2
Figure 10.3
Figure 10.4
Figure 10.5
Figure 10.6
Figure 10.7
Figure 10.8
Figure 10.9
Figure 10.10
Figure 10.11
Figure 10.12
Figure 10.13
Figure 10.14
Figure 10.15
Figure 10.16
Figure 10.17
Figure 10.18
Figure 10.19
Figure 10.20
Figure 10.21
Figure 10.22
Figure 10.23
Figure 10.24
Figure 10.25
Figure 10.26
Figure 10.27
Figure 10.28
Figure 10.29
Figure 10.30
Figure 10.31
Figure 10.32
Figure 10.33
Figure 10.34
Figure 10.35
Figure 10.36
Figure 10.37
Figure 10.38
Figure 10.39
Figure 10.40
Figure 10.41
Figure 10.42
Figure 10.43
Figure 10.44
Figure 10.45
Figure 10.46
Figure 10.47
Figure 10.48
Figure 11.1
Figure 11.2
Figure 11.3
Figure 11.4
Figure 11.5
Figure 11.6
Figure 11.7
Figure 11.8
Figure 11.9
Figure 11.10
Figure 11.11
Figure 11.12
Figure 11.13
Figure 11.14
Figure 12.1
Figure 12.2
Figure 12.3
Figure 12.4
Figure 12.5
Figure 12.6
Figure 12.7
Figure 12.8
Figure 12.9
Figure 12.10
Figure 12.11
Figure 13.1
Figure 13.2
Figure 13.3
Figure 13.4
Figure 13.5
Figure 13.6
Figure 13.7
Figure 13.8
Figure 13.9
Figure 13.10
Figure 13.11
Figure 13.12
Figure 13.13
Figure 13.14
Figure 13.15
Figure 13.16
Figure 13.17
Figure 13.18
Figure 13.19
Figure 13.20
Figure 13.21
Figure 14.1
Figure 14.2
Figure 14.3
Figure 14.4
Figure 14.5
Figure 14.6
Figure 14.7
Figure 14.8
Figure 14.9
Figure 14.10
Figure 14.11
Figure 14.12
Figure 14.13
Figure 14.14
Figure 14.15
Figure 14.16
Figure 14.17
Figure 14.18
Figure 14.19
Figure 14.20
Figure 14.21
Figure 15.1
Figure 15.2
Figure 15.3
Figure 15.4
Figure 15.5
Figure 15.6
Figure 15.7
Figure 15.8
Figure 15.9
Figure 15.10
Figure 15.11
Figure 15.12
Figure 15.13
Figure 15.14
Figure 15.15
Figure 15.16
Figure 15.17
Figure 15.18
Figure 15.19
Figure 15.20
Figure 15.21
Figure 15.22
Figure 16.1
Figure 16.2
Figure 16.3
Figure 16.4
Figure 18.1
Figure 18.2
Figure 18.3
Figure 18.4
Figure 18.5
Figure 18.6
Figure 18.7
Figure 18.8
Figure 18.9
Figure 18.10
Figure 18.11
Figure 18.12
Figure 18.13
Figure 18.14
Figure 18.15
Figure 18.16
Figure 18.17
Figure 18.18
Figure 18.19
Figure 18.20
Figure 18.21
Figure 18.22
Figure 18.23
Figure 18.24
Figure 18.25
Figure 18.26
Figure 18.27
Figure 18.28
Figure 18.29
Figure 18.30
Figure 18.31
Figure 18.32
Figure 18.33
Figure 18.34
Figure 18.35
Figure 18.36
Figure 18.37
Figure 19.1
Figure 19.2
Figure 19.3
Figure 19.4
Figure 19.5
Figure 19.6
Figure 19.7
Figure 19.8
Figure 19.9
Figure 19.10
Figure 19.11
Figure 19.12
Figure 19.13
Figure 19.14
Figure 19.15
Figure 19.16
Figure 19.17
Figure 19.18
Figure 19.19
Figure 19.20
Figure 19.21
Figure 19.22
Figure 19.23
Figure 19.24
Figure 19.25
Figure 19.26
Figure 19.27
Figure 19.28
Figure 19.29
Figure 19.30
Figure 19.31
Figure 19.32
Figure 19.33
Figure 19.34
Figure 19.35
Figure 19.36
Figure 19.37
Figure 20.1
Figure 20.2
Figure 20.3
Figure 20.4
Figure 20.5
Figure 20.6
Figure 20.7
Figure 20.8
Figure 20.9
Figure 20.10
Figure 20.11
Figure 20.12
Figure 20.13
Figure 20.14
Figure 20.15
Figure 20.16
Figure 20.17
Figure 20.18
Figure 20.19
Figure 20.20
Figure 20.21
Figure 21.1
Figure 21.2
Figure 21.3
Figure 21.4
Figure 21.5
Figure 21.6
Figure 21.7
Figure 21.8
Figure 21.9
Figure 21.10
Figure 21.11
Figure 21.12
Figure 21.13
Figure 21.14
Figure 21.15
Figure 21.16
Figure 21.17
Figure 21.18
Figure 21.19
Figure 21.20
Figure 21.21
Figure 21.22
Figure 21.23
Figure 21.24
Figure 21.25
Figure 21.26
Figure 21.27
Figure 21.28
Figure 21.29
Figure 21.30
Figure 21.31
Figure 21.32
Figure 21.33
Figure 23.1
Figure 23.2
Figure 23.3
Figure 23.4
Figure 23.5
Figure 23.6
Figure 23.7
Figure 23.8
Figure 23.9
Figure 23.10
Figure 23.11
Figure 23.12
Figure 23.13
Figure 23.14
Figure 23.15
Figure 23.16
Figure 24.1
Figure 25.1
Figure 25.2
Figure 25.3
Figure 25.4
Figure 25.5
Figure 25.6
Figure 26.1
Figure 26.2
Figure 26.3
Figure 26.4
Figure 26.5
Figure 26.6
Figure 26.7
Figure 26.8
Figure 26.9
Figure 26.10
Figure 26.11
Figure 27.1
Figure 27.2
Figure 27.3
Figure 27.4
Figure 27.5
Figure 27.6
Figure 28.1
Figure 28.2
Figure 29.1
Figure 29.2
Figure 29.3
Table 2.1
Table 2.2
Table 2.3
Table 2.4
Table 2.5
Table 2.6
Table 2.7
Table 2.8
Table 2.9
Table 2.10
Table 2.11
Table 2.12
Table 3.1
Table 5.1
Table 5.3
Table 5.4
Table 6.1
Table 7.1
Table 7.2
Table 7.3
Table 12.1
Table 13.1
Table 13.2
Table 13.3
Table 13.4
Table 13.5
Table 13.6
Table 13.7
Table 13.8
Table 15.1
Table 15.2
Table 16.1
Table 19.1
Table 19.2
Table 19.3
Table 19.4
Table 19.5
Table 19.6
Table 19.7
Table 20.1
Table 20.2
Table 20.3
Table 20.4
Table 20.5
Table 21.1
Table 21.2
Table 21.3
Table 21.4
Table 21.5
Table 22.1
Table 22.2
Table 22.3
Table 22.4
Table 23.1
Table 24.1
Table 24.2
Table 24.3
Table 24.4
Table 24.5
Table 24.6
Table 24.7
Table 24.8
Table 24.9
Table 24.10
Table 24.11
Table 24.12
Table 24.13
Table 25.1
Table 25.2
Table 25.3
Table 25.4
Table 25.5
Table 26.1
Table 28.1
Table 28.2
Table 29.1
Table 29.2
Table 29.3
Table 29.4
Table 29.5
Table 29.6
CHAPTER 1:
Introducing Visual Studio Online and Team Foundation Server 2013
CHAPTER 2:
Planning a Deployment
CHAPTER 3:
Installation and Confi guration
CHAPTER 4:
Connecting to Team Foundation Server
What's in this chapter?
Getting to know Team Foundation Server 2013
Understanding what's new in Team Foundation Server 2013
Acquiring Team Foundation Server 2013
This chapter introduces you to Microsoft Visual Studio Team Foundation Server 2013. Here you learn what it is for, the key concepts needed when using it, and how to acquire it.
For those users already familiar with Team Foundation Server, the discussion in this chapter highlights areas that are new or have changed substantially. However, because understanding the legacy of a technology is always helpful, this chapter also includes some of the history of the Team Foundation Server product, which will help explain how it became what it is today.
This chapter also discusses the improved release model, including the ability to have Microsoft manage hosting, frequent upgrades, and backups by leveraging Visual Studio Online (formerly Team Foundation Service). Later chapters go into more depth with an examination of the architecture of the Team Foundation Server product.
Developing software is difficult—a fact repeatedly proven by how many projects run overtime or over budget, or fail completely. An essential factor in the success of any software development team is how well the members of the team communicate with one another, as well as with the people who wanted the software developed in the first place.
Team Foundation Server provides the core collaboration functionality for your software development teams in a very tightly integrated product. The functionality provided by Team Foundation Server includes the following:
Project management
Work item tracking (WIT)
Version control
Test case management
Build automation
Reporting
Release management
Lab and environment management
Feedback management
Chat and team communication tools
Each of these topics is explored extensively in this book
Team Foundation Server is a separate server product designed specifically for software engineering teams with developers, testers, architects, project managers, business analysts, and anyone else contributing to software development releases and projects. Logically, Team Foundation Server is made up of the following two tiers, which can be physically deployed across one or many machines:
Application tier
—The
application tier
primarily consists of a set of web services with which the client machines communicate by using a highly optimized, web service-based protocol. It also includes a rich web access site to interact with a server without having to install a client such as Visual Studio.
Data tier
—The
data tier
utilizes SQL Server to house the databases that contain the database logic for the Team Foundation Server application, the data for your Team Foundation Server instance, as well as the data for your Team Project Collection. The data stored in the data warehouse database and Analysis Services cube are used by Team Foundation Server's reporting functionality. All the data stored in Team Foundation Server is stored in the SQL Server databases, thus making the system easy to back up.
Team Foundation Server was designed with extensibility in mind. It can integrate with a comprehensive .NET Application Programming Interface (API). It also has a set of events that allow it to integrate with outside tools as first-class citizens. The same .NET programming model and event system are used by Microsoft to construct Team Foundation Server, as well as the client integrations into Visual Studio.
Team Foundation Server has plenty of competitors, including other enterprise Application Lifecycle Management (ALM) systems and purpose-specific products (such as source control systems). The main benefit of having all the different systems available in one product is that Team Foundation Server fully integrates the different systems. This allows for true innovation in the development tools space, as you will notice with several of the new tools available in this latest release. Instead of worrying about integrating the separate systems yourself, you can take advantage of the work that Microsoft has done for you. Jason Zander, currently Corporate Vice President of development for Windows Azure, makes this particular point well in a blog post originally about Team Foundation Server 2010. You can find the blog post at http://aka.ms/IntegratedALMSolution.
When you compare enterprise ALM products currently on the market, you will discover that Team Foundation Server was designed to be easily customized and extended. Team Foundation Server ensures that developers using any development platform can participate and easily use Team Foundation Server, including Visual Studio, Eclipse-based development, Xcode, and many more.
Installing and configuring Team Foundation Server has traditionally meant a significant investment in time and infrastructure. In addition to the initial setup, maintenance of an on-premises Team Foundation Server instance required ongoing effort.
In October 2012, a hosted Team Foundation Server was released to the general public under the name Team Foundation Service. This hosted service meant that a team could make use of many of the features of Team Foundation Service without the significant investment in infrastructure and maintenance. Since its initial release, the product has been continuously extended and improved.
In November 2013, Team Foundation Service was rolled into a new product called Visual Studio Online, which incorporates a number of developer services, including most of the features of an on-premises Team Foundation Server installation as well as Visual Studio, collaboration tools, load testing and build services, a diagnostic service called Application Insights, and even an online code editor.
Visual Studio Online is free for teams up to five users, and is also available on a per-user per-month subscription basis. A number of plans are available that include various features. These features include access to a hosted Team Foundation Server with unlimited Team Projects and basic project planning tools, and either the Visual Studio Express or Visual Studio Professional IDE. The plans also include a certain amount of cloud build and load testing time.
If you have used legacy versions of Team Foundation Server, you may be curious about what is new in the latest release. As this book demonstrates, it is a big release with considerable new functionality and improvements across the board. While many of these features are explained throughout this book, if you have used a previous version of Team Foundation Server, the features described in the following sections will be new to you. Some of the client-side topics are covered in more detail in the companion book to this volume, Professional Application Lifecycle Management with Visual Studio 2013 by Mickey Gousset, Martin Hinshelwood, Brian A. Randell, Brian Keller, and Martin Woodward (Wiley, 2014).
One major change with this release was the addition of an alternative, distributed source control option within Team Foundation Server. While this was seen as a surprising move by many, it was really just addressing a common complaint many organizations had with source control in Team Foundation Server.
There are many powerful project management features provided by Team Foundation Server, but the primary reason for adopting a system like Team Foundation Server will always be source control. Developers have increasingly been moving to distributed version control products, such as Git or Mercurial, and the limitations of the centralized source control system provided by Team Foundation Server was a common reason cited by organizations choosing to use an alternative product. While support for disconnected workspaces was provided with the addition of Local Workspaces in the 2012 release of Team Foundation Server, team members were still limited to a single server-side repository for a workspace.
By adopting Git as a first-class version control alternative, Microsoft has added true distributed version control to the product. Developers can keep a full local repository, which allows them to work with multiple branches and commit locally before pushing their changes to the server.
We want to note two important points with respect to the distributed version control offering in Team Foundation Server. First, the Git implementation is a standard implementation of Git rather than one that has been specifically written for Team Foundation Server. This means you can work with a Git repository in Team Foundation Server in exactly the same way as you would with any other implementation. Second, despite the history of Team Foundation Server, both version control options are considered equals and are supported fully. The project management functions in Team Foundation Server are still available and code changes can still be linked to work items. Distributed version control is covered in detail in Chapter 7.
Team Foundation Server 2012 introduced a built-in set of experiences for requesting, responding, and managing code reviews. It uses the powerful work item tracking experiences behind the scenes as well as some specialized user experiences to help you discuss changes. This was a powerful way of formalizing collaboration between team members.
A new feature has been included in Team Foundation Server 2013 that allows team members to make comments directly against code, right from Team Web Access. You can make comments on an entire file, specific lines of code, or even a complete changeset, and just like code reviews, you can have threaded discussions. This provides a great way for team members to collaborate, directly against the code itself, without having to manage the complete code review process.
A new Team Room has also been added to Team Web Access in the 2013 release. This feature not only allows developers to chat in real time, but it notifies them of relevant events such as build completions and code changes.
Team Web Access was completely redesigned in Team Foundation Server 2012 to provide an even better experience for those without any of the traditional clients available. It is friendly to modern browsers, including mobile browsers, and works well with both desktop and tablet devices.
Microsoft has further updated and improved Team Web Access in Team Foundation Server 2013. The agile management tools have also been improved and now have support for tags, backlog and board improvements, updated process templates, and support for Agile Portfolio Management. Some new features have been implemented for Team Web Access as well, including a new Test Hub, Team Rooms for live chat, and work item charts.
Additional new experiences added to Team Web Access are agile project management and product planning. The new Agile Planning tools are specifically designed for users practicing Agile development, but can actually be beneficial for those using any process.
The primary changes introduced in this release include Agile Portfolio Management and a set of improved process templates for managing projects.
The great thing about these changes is that they allow you to roll-up requirements so management can see just the level of detail they are interested in. Each team can have its own set of backlog items that contribute to a shared “feature” backlog.
Release Management for Visual Studio 2013 is a powerful tool for automating the deployment pipeline for developed applications. Formerly known as InRelease, Microsoft acquired the product from a Canadian company called InCycle in June 2013.
The Release Management tool allows teams to deploy applications to multiple server environments and has strong integration with Team Foundation Service. Complex release workflows can be defined with a visual interface. Importantly, teams can define the promotion path of a single build through multiple environments and enforce a process of approval and promotion.
Release Management for Visual Studio 2013 is discussed in more detail in Chapter 20.
Microsoft has also greatly improved how you may acquire Team Foundation Server. Several options are available to you, as discussed in the following sections.
Licensing can be somewhat confusing, but Team Foundation Server licensing follows the licensing pattern of other Microsoft server products. There is a server license. Additionally, with some notable exceptions, each user that connects to the server should have a Client Access License (CAL) for Team Foundation Server.
For more information about those potential exceptions, or questions about what you will need to purchase, you can seek help from a Microsoft Partner with the ALM Competency or your local Microsoft Developer Tools Specialist, or you can refer to the End-User License Agreement (EULA). A licensing white paper dedicated to Visual Studio, MSDN, and Team Foundation Server is also available athttp://aka.ms/VisualStudioLicensing.
By far, the easiest way to get started with adopting Team Foundation Server is through a new hosted option available directly from Microsoft called Visual Studio Online (formerly Team Foundation Service). It shares a majority of the same code base as the same Team Foundation Server product used on-premises but modified to be hosted from Windows Azure for multiple tenants. It is available at http://tfs.visualstudio.com.
The best part of using Visual Studio Online is that your team need not worry about backups, high availability, upgrades, or other potentially time-consuming administration and maintenance tasks. Another nice thing is that Visual Studio Online customers will receive frequent updates that even include new features before on-premises customers.
Brian Harry, Product Unit Manager for Team Foundation Server, announced that the internal product teams improved their engineering process so well over the past two to three years that they are able to quickly provide more frequent updates. Starting with Team Foundation Server 2012, the product team has provided frequent updates that include the typical performance and bug fixes but also brand new features. The frequency of updates since this announcement has been significantly faster than in the past, with four post-RTM releases to Team Foundation Server 2012 and one Team Foundation Server 2013 release in the past 12 months.
Team Foundation Service customers have seen updates made more frequently than the on-premises edition. Brian mentioned that his teams are able to deploy hotfixes daily, but full-featured updates have thus far been released every three weeks (with a small number of exceptions), which lines up with the internal sprint schedule. You can learn more about this topic from Brian Harry's blog post athttp://aka.ms/TFSReleaseCadence.
One thing to take away from this discussion is to make sure that your team always uses the latest update of Team Foundation Server if you choose to install it on-premises.
Teams using Visual Studio Online are able to leverage an elastic set of standard build servers. This elastic build service provides standard build machines available and clean for each of your builds. Teams can even integrate their elastic builds with their Windows Azure accounts to provide continuous deployment to instances of their applications or sites hosted in Windows Azure. Teams can also take advantage of on-premises build servers connected to Visual Studio Online.
Microsoft released the Team Foundation Service as a free trial in late 2012 and rolled it into the commercial Visual Studio Online service in November 2013. They announced that the full feature set will be provided to teams of up to five at no cost. Additionally, MSDN subscribers will be able to leverage Visual Studio Online as an additional benefit to their MSDN subscription.
Visual Studio Online is offered under a subscription model. The Basic plan is free for five users, and subsequent users can be added on a per-user, per-month basis. In addition to the Basic plan, two other user plans are available with differing capabilities and inclusions.
To date, Visual Studio does not have full parity with the on-premises product. For example, the lab management, reporting, and process template customization capabilities are features not currently available. As Visual Studio Online evolves over time, there will be greater, if not full, parity with the on-premises edition.
In the meantime, for teams that would like the full set of features but still have someone else manage their Team Foundation Server instance, options are available through several third-party hosting companies.
Small software engineering teams can leverage an Express version of Team Foundation Server 2013 that is available and free for up to five developers. Team Foundation Server Express is available at http://aka.ms/TFS2013Express. The Express edition includes, but is not limited to, the following core developer features:
Version control
Work item tracking
Build automation
This is a perfect start for small teams that want an on-premises Team Foundation Server instance without any additional costs. If your team grows beyond five, you can always buy CALs for users six and beyond. The Express instance can even be upgraded at any time to take advantage of the full set of features without losing any data.
One of the easiest ways to acquire Team Foundation Server is on a 90-day trial basis. You can download the full version of Team Foundation Server and try out all of the features without having to purchase a full copy. The DVD ISO image for the trial edition is available at http://aka.ms/TFS2013Downloads.
If you install the trial edition of Team Foundation Server, you can easily apply a product key to activate the trial edition. You could even move the team project collection from the trial server to a different server instance once your team has decided to fully adopt Team Foundation Server.
Alternatively, if you need a 30-day extension, you can perform one extension using the Team Foundation Server Administration Console once you're near the end of the trial period. You can find out more information about extending the trial by visiting http://aka.ms/ExtendTFSTrial.
If you would rather have a virtual machine that is ready to use (including all of the software necessary to demo and evaluate Visual Studio 2013 and Team Foundation Server 2013), you can download the all-up Visual Studio 2013 virtual machine image. The virtual machine has a time limit that starts from the day that you first start the machine. You can always download a fresh copy of the machine to begin your demo experience over.
You can find the latest version of the virtual machine available athttp://aka.ms/vs13almvm.
Microsoft has plenty of options for volume licensing, including Enterprise, Select, Open Value, and Open License Agreements, that will help your company significantly reduce the overall cost of acquiring an on-premises edition of Team Foundation Server. Different options are available based on your company size and engineering team size. This option is by far the most popular choice for companies looking to acquire Team Foundation Server, MSDN subscriptions, and Visual Studio licenses.
If your company acquired an earlier version of Team Foundation Server through a volume licensing program, and also purchased Software Assurance (SA), you may be entitled to a license for Team Foundation Server 2013 without additional cost, if the SA was still active on the date that Team Foundation Server 2013 was released.
For more information about volume licensing, discuss your options with your Microsoft internal volume licensing administrator, your local Microsoft Developer Tools Specialist, or a Microsoft Partner with ALM Competency. You can find out more information from the Visual Studio Licensing white paper available at http://aka.ms/VisualStudioLicensing.
Beginning with the Visual Studio 2010 release, a full production-use license of Team Foundation Server 2013 is included with each license of Visual Studio that includes an MSDN subscription. Those MSDN subscribers also receive a Team Foundation Server 2013 CAL available for production use.
This now enables developers, testers, architects, and others with an active MSDN subscription to take advantage of Team Foundation Server without additional licensing costs.
For more information about MSDN subscriptions and for links to download Team Foundation Server 2013, visit the MSDN Subscriber Downloads website at http://msdn.microsoft.com/subscriptions.
Companies that are members of the Microsoft Partner Network and have achieved certain competencies can be entitled to development and test-use licenses of several of the products included with an MSDN subscription, including Team Foundation Server 2013.
For more information about the requirements and benefits available for Microsoft Partners, visithttp://partner.microsoft.com.
If you are not able to use any of the other acquisition methods, you can always acquire Team Foundation Server 2013 through retail channels, including the online Microsoft Store. You can purchase the product directly from Microsoft online at http://aka.ms/TFS2013Retail. It is also available from many other popular retail sites.
One of the nice benefits of purchasing a server license using the retail channel is that you also receive a CAL exclusion for up to five named users. This benefit is available only from licenses purchased through the retail channel, and it is not included with other acquisition avenues discussed in this chapter.
As you learned in this chapter, Team Foundation Server is a product with lots of features and functionality. This chapter introduced the types of features available, including those new to the latest release. Additionally, you learned about the different acquisition methods for getting the software for Team Foundation Server.
The next few chapters will familiarize you with planning a Team Foundation Server deployment and installing a brand-new server. You will also learn about the different methods available for connecting to your new server. Chapter 2 begins that discussion with an examination of deploying Team Foundation Server.
What's in this chapter?
Organizing a plan for adoption
Setting up timelines for adoption
Structuring team projects and team project collections
Hardware and software requirements
Before installing or configuring Team Foundation Server, it is helpful to lay out a plan and to identify the areas that need some preparation work to ensure a successful adoption. This chapter discusses methods for gaining consensus in your organization for the adoption. You will learn about some potential adoption timelines and strategies to ensure a smooth transition for your teams from legacy systems to Team Foundation Server 2013. Finally, the discussion walks you through some of the immediate preparation steps for gathering what you will need before you start the installation and configuration of your new Team Foundation Server environment.
In Chapter 1, you read about the high-level features available in Team Foundation Server 2013, including new features for this release. Now it's time to convince your boss and team that it would be worthwhile to adopt Team Foundation Server 2013. The following sections examine some of the ways you can prepare for your proposal to your team.
One key to selling the idea of an Application Lifecycle Management (ALM) solution is to identify the pain points that your organization and teams are experiencing, and to address those pain points with possible solutions. You may find that some of the common problems people are seeking solutions for are the same problems that plague your organization.
This section identifies some common problems that plague many development organizations, and it provides some helpful discussion about how Team Foundation Server and the ALM family of Visual Studio 2013 products attempt to address those pain points. You may have additional pain points that you would like to solve, and it is always good to flesh those out to ensure that you are identifying and solving them as part of your adoption of Team Foundation Server.
This book covers many of the ALM topics because Team Foundation Server is a part of the Visual Studio ALM family of products. You can find out more information about all of the different ALM tools available across the Visual Studio family in the companion book Professional Application Lifecycle Management with Visual Studio 2013 available at http://www.wiley.com/WileyCDA/WileyTitle/productCd-1118836588.html.
Does your team have difficulty understanding any of the following questions during the release cycle?
Are we on track to release at the end of the month?
How much implementation has been accomplished on the requirements in this release?
How are our testers doing in authoring and executing their test cases?
What changed in last night's build?
Why did this set of files change in this recent check-in? Was it used to implement a requirement or fix a bug?
Which requirements are getting good test coverage versus requirements that are largely untested?
Is the company investing in the right areas of our products based on feedback from stakeholders?
How do you balance the capacity of team members against the priority of work you want to accomplish?
How much work is your team capable of delivering for a given iteration?
How can you be sure the release in production matches the release that was in a test environment?
Teams that have a problem getting visibility into their release process often want to start by finding a tool that will gather all of the data necessary to easily answer some of these questions. Team Foundation Server is one of the best products available for transparency because it allows you to store all of the different artifacts from the beginning to the end of the software development life cycle. Not only does it provide a way to capture that information, but it also allows you to make informed decisions using rich links between those artifacts and systems. Team Foundation Server provides rich information by exposing the end-to-end relationships that exist across artifacts.
Some teams have difficulty providing information and communicating across different functional groups. Testers may not feel that they have enough information about bugs returned to them as rejected, and developers may feel that they don't have enough information about the requirements they are supposed to implement or the bugs they are supposed to fix. Stakeholders and business users may not feel that they have an easy way to provide feedback about the applications they interact with so that the software development teams will be able to act appropriately.
If your team is experiencing some of these problems, you may benefit from being able to easily see information and notes about the different artifacts in the software process stored in Team Foundation Server.
Teams may end up spending a lot of time at the end of release cycles completing manual steps to compile, package, and deploy their applications. They may be performing these actions on a developer machine, and manually copying to staging and production environments.
These manual steps are often error-prone and can result in unforeseen issues and failed deployments. By taking advantage of the automated build system in Team Foundation Server, your team can reduce the complexity of this process and turn it into a repeatable end-to-end solution that occurs at regular intervals or is triggered by changes introduced by your developers.
Additionally, you can leverage the automated build system to introduce a “gauntlet” of checks that each check-in may go through to verify the quality of those changes by using the gated check-in feature in the Team Foundation Build system. This can help your team reduce entropy by preventing defects from ever being introduced to the version control repository.
The new Release Management for Visual Studio 2013 product allows teams to define, configure, and automate deployments to multiple target environments. This tool can reduce risk and ensure repeatable deployments that support your organization's release pipeline and approval process.
See Chapter 20 for more information about Release Management for Visual Studio 2013.
The testing or quality assurance departments may be organizing their test cases using Word or Excel documents, which can make it hard to organize your catalog of test cases. Additionally, tracking the execution progress of each test case may be extremely difficult; thus, it becomes difficult to gauge the progress of testing in your release.
Team Foundation Server allows you to manage your collection of test cases; it also allows you to manage the progress of test execution during the release cycle. This includes the ability to track tests across multiple configurations that your product or application needs to support.
Development teams have notoriously experienced difficulty in managing changes across multiple lines of development that can occur concurrently. By supporting the previous release, while stabilizing the next release, and then also performing early work on a feature release, you can end up having trouble keeping each of those parallel lines of development organized. Integrating changes made between those releases is especially time-consuming and error-prone, especially if developers are manually applying fixes to each of those code lines.
Testers are often curious about how bug fixes and changes have been included in a particular release. And they might often need to figure out if fixes have been applied to other releases of the application.
The Team Foundation Version Control system in Team Foundation Server provides excellent branching and merging tools for easily managing parallel development, including the ability to track changes across branches. This helps you to easily see which branches have changes integrated into them as well as how and when those changes got there.
The new Distributed Version Control system gives developers more freedom to work on multiple parallel development tasks at once. Using Git, developers can work on multiple branches within local repositories before confidently committing changes to the server.
See Chapter 7 for more information about Distributed Version Control with Git.
The maximal value from Team Foundation Server is realized when it is used in a team. Therefore, ensuring a successful Team Foundation Server adoption requires alignment with many people in your organization. The following sections should help you avoid some common pitfalls and provide you with some suggestions on where to start with what may seem like a large and daunting product.
In general, splitting up the adoption by team/application has proven to be a successful approach. Some of the effort may end up being the same for most teams, and lessons you learn from earlier transitions will help you become more successful in the following transitions. Table 2.1 presents a sample adoption timeline.
Table 2.1Sample Adoption Timeline
Activity
Estimated Time
Planning for deploying Team Foundation Server
One week
Identifying the process to adopt and process template customizations
Two to four days
Designing the branching and merging strategy
One day
Customizing the process template (dependent on the level of customization of the process identified)
One to four weeks
Table 2.2 discusses the additional adoption steps for each team or application.
Table 2.2 Sample Adoption Timeline for Each Team
Activity
Estimated Time
Developing a custom migration tool (needed only if not using one commercially or freely available)
Two to four weeks
Testing the migration
One to two weeks
Initial training sessions for teams (occurs one week before transition)
Half a day for each team member
Migrating source code
One to two days
Migrating work items
One to two days
Follow-up training sessions for teams (occurs one week after transition)
Half a day for each team member
Another approach that works well is adopting each piece of Team Foundation Server separately in different phases of a larger deployment project. This allows you to plan each phase, execute that adoption, and then train the teams on the new features and processes available in that particular phase.
Some find that teams are better able to absorb training for the new features when they are exposed to them incrementally. You may have a higher success rate by splitting up the adoption project, and then focusing your time and attention on making each part succeed. However, you'll eventually find some teams very eager to adopt future phases, so be sure you don't keep them waiting too long!
When introducing any new tooling into a large organization, it is important that you address the key pain points first. Many companies will identify traceability of work through the development life cycle, and this is often an area that is poorly addressed by existing tooling. For others, the version control system being used may be out-of-date (unsupported) and performing poorly. It is, therefore, usually the version control or work item tracking components that people begin using when adopting Team Foundation Server.
Luckily, Team Foundation Server is flexible enough that you can still get value from the product when using only one or two components of the system. Once you have adopted both version control and work item tracking, the next area to tackle to gain the most benefit is likely to be Team Foundation Build. By automating your build system and increasing the frequency of integration, you reduce the amount of unknown pain that always occurs when integrating components together to form a product. The key is to gradually remove the unknown and unpredictable elements from the software delivery process, and to always look for wasted effort that can be cut out. Using the new Release Management helps your team deploy the same build across multiple environments, no matter how complex the configuration.
Automating the builds not only means that the build and packaging process becomes less error-prone, but it also means that the feedback loop of requirement traceability is completed. You are now able to track work from the time that it is captured, all the way through to a change to the source code of the product, and into the build that contains those changes.
At this point, you may identify the need to document your test cases and track their execution throughout the release. With the traceability between test cases and requirements, you'll be able to better identify the requirements in your product that are covered appropriately by your testers.
