Implementing Scrum with Microsoft Team Foundation Service (TFS)

66
Day I Implementing Scrum with Microsoft Team Foundation Service (TFS)

description

Day one Implementing Scrum with Microsoft Team Foundation Service (TFS) training covering the following topics: TFS Overview TFS Version Comparison and Installation Setting Up Your Code in TFS Source Control Setting Up Your Code in Git Source Control Scrum Overview Sprint 0 Activities Sprint Planning Exercise Summary and Wrap Up

Transcript of Implementing Scrum with Microsoft Team Foundation Service (TFS)

Page 1: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Day I

Implementing Scrum with Microsoft Team Foundation Service (TFS)

Page 2: Implementing Scrum with Microsoft Team Foundation Service (TFS)

BenHoeltingIn truth, he’s just a big kid. He loves designing systems that solve real world problems. There is nothing more satisfying than seeing something you helped develop being used by the end users. Ben is also involved in the technology community and runs the South Colorado .NET user group. He also enjoys speaking at tech groups and events around the country.

Ben [email protected]@aspenware.com

Page 3: Implementing Scrum with Microsoft Team Foundation Service (TFS)

3

Day I Agenda•TFS Overview

•TFS Version Comparison and Installation

•Setting Up Your Code in TFS Source Control

•Setting Up Your Code in Git Source Control

•Scrum Overview

•Sprint 0 Activities

•Sprint Planning Exercise

•Summary and Wrap Up

Aspenware: Scrum with TFS – Day I

Page 4: Implementing Scrum with Microsoft Team Foundation Service (TFS)

4

Light Background Image

TFS Overview and Initial Setup

Aspenware: Scrum with TFS – Day I

Page 5: Implementing Scrum with Microsoft Team Foundation Service (TFS)

What is Team Foundation Service?Team

Foundation Service

Planning SCM Work Item TrackingContinuous

Delivery (Azure)

Build Automation

Feedback Management

Page 6: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Team Foundation Service Core Capabilities

Process Guidance & Automation

Version Control

Work Item Tracking

Build Management & Automation

Agile Project Planning

Page 7: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Agile Planning & Management

Product Backlog

Capacity planning

Sprint Backlog

Task & Kanban boards

Feedback management

Project visibility

Page 8: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Web UIAccess burndown, task tracking, team notices

Page 9: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Work Items

Audited

Attachments Traceability

Storyboards

Consistency Test Cases

Integrate with Excel, Project, others

Page 10: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Build Management & Automation

Continuous integration, including integrated unit testing Continuous deployment to Azure

Page 11: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Easy (no infrastructure)

Supports testing (multiple frameworks)

Supports 3rd party binaries (in version control or via NuGet)

Software & completion restrictions

Continuous deployment to Azure, automatically

Using the Hosted Build Controller

Page 12: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Version Control

Enterprise-class Version controlVersion anything, integrated check-in, annotation, distributed teams support, shared check-outs, check-in policies. Sync with Git

Flexible branching & mergingPath-space branching, branch visualization, merge tracking

CollaborativeAnnotation, code reviews, inline compare/merge

Focused on productivityOnline/offline, bridges with other VC tools, shelving, VS suspend/resume

Page 13: Implementing Scrum with Microsoft Team Foundation Service (TFS)

13

TFS Version Comparison & Installation

Aspenware: Scrum with TFS – Day I

Page 14: Implementing Scrum with Microsoft Team Foundation Service (TFS)

FrankMbanusiFrank is a United States Marine. It’s no wonder that he’s driven by mission accomplishment. He is committed to cultivating healthy and trusting relationships with our clients – It’s about people! Frank enjoys his family, friends, fitness, and music. Frank Mbanusi

Strategic Account Executive

[email protected]@vMbanusi

Page 15: Implementing Scrum with Microsoft Team Foundation Service (TFS)

15

Team Foundation Server Editions• Team Foundation Server Express• Team Foundation Server• Team Foundation Service

(tfs.visualstudio.com)

Aspenware: Scrum with TFS – Day I

Page 16: Implementing Scrum with Microsoft Team Foundation Service (TFS)

16

Team Foundation Server Express – Pros

• Free• Data stays in network• Comes with version control repository• More control compared to TF Service• Process and Work Item template customization• CAL option if team grows beyond 5 users• Support for express versions of VS

Aspenware: Scrum with TFS – Day I

Page 17: Implementing Scrum with Microsoft Team Foundation Service (TFS)

17

Team Foundation Server Express – Cons

• Must have own hardware or virtual machine• Not accessible from anywhere• Basic installation on one machine only – no scale• Limited Agile PM features and tools• No SharePoint or Reporting Services integration• Supports only SQL Server Express Edition• Database maintenance• Licensing for OS and CALs if required

Aspenware: Scrum with TFS – Day I

Page 18: Implementing Scrum with Microsoft Team Foundation Service (TFS)

18

Team Foundation Server – Pros• Full integration with products like SharePoint and SQL

Server Reporting Services• Supports higher end versions of SQL Server for the

backend, as well as Express• Supports the express versions of Visual Studio and

other non-Microsoft products (CALs may be required)• CAL License is included with certain Visual Studio

subscriptions (Pro, Prem, and Ult)

Aspenware: Scrum with TFS – Day I

Page 19: Implementing Scrum with Microsoft Team Foundation Service (TFS)

19

Team Foundation Server – Cons• Must have own hardware and/or virtual machines• Requires installation and configuration• Requires purchased CALs as needed• More expensive for small teams• Not accessible from anywhere (unless published

externally)

Aspenware: Scrum with TFS – Day I

Page 20: Implementing Scrum with Microsoft Team Foundation Service (TFS)

20

Team Foundation Service – Pros• No installation – up and running in minutes• No hardware or software• Data stored in triplicate on three physically distinct

servers• No backup management• Service accessible from anywhere around the world• Updated every 3 weeks• No licensing required when using express versions of VS

or non-Microsoft platforms such as Eclipse or Xcode• ScalableAspenware: Scrum with TFS – Day I

Page 21: Implementing Scrum with Microsoft Team Foundation Service (TFS)

21

Team Foundation Service – Cons• Free for up to 5 users (no paid version plan yet)• No Active Directory support• Performance with file transfers depending on connection

speed• Data is not inside your network• No process template or work item template customization• No SharePoint integration• No Lab environment• Limited reports – can’t deploy custom reports• Limited migration path from TFS on prem to TF ServiceAspenware: Scrum with TFS – Day I

Page 22: Implementing Scrum with Microsoft Team Foundation Service (TFS)

TFS On-Premise vs. Cloud (TF Service)

Aspenware: Scrum with TFS – Day I 22

Federated Identity Management

Team Foundation Server

SCM and Version Control

Team Foundation Service

Agile Planning & Collaboration Tools

Feedback Requests & Issue Tracking

Continuous Integration Builds

Lab Management

Detailed Reporting & Analytics

On-Premises Server Integration

Page 23: Implementing Scrum with Microsoft Team Foundation Service (TFS)

23

System Requirements for TFS•Operating System Requirements

• 64-bit versions of Server 2008 SP2, Server 2008 R2 SP2 and 64-bit Server 2012• Server Core not supported

•Client Operating Systems• 64-bit or 32-bit versions of Windows 7 SP1 and Windows 8

•Hardware Recommendations• Fewer than 250 users – Single Server, 1 x single core 2.13GHz, 2GB, 125GB/7.2k

rpm• 250 – 500 users – Single Server, 1 x dual core 2.13GHz, 4GB, 300GB/10k rpm• 500 – 2,200 users – Dual Server, 1 x dual core Intel Xeon 2.13GHz, 4GB,

500GB/7.2k rpm – SQL: 1 x quad Intel Xeon 2.33GHz, 4GB, 500GB/7.2k rpm

•SharePoint hardware recommendations

•Virtualization recommendations – Microsoft support

•http://msdn.microsoft.com/en-us/library/vstudio/dd578592.aspx Aspenware: Scrum with TFS – Day I

Page 24: Implementing Scrum with Microsoft Team Foundation Service (TFS)

24

Active Directory Requirements•Domain or Workgroup members supported•Supported Functional Levels

• Windows 2000 native mode• Windows Server 2003 mode• Windows Server 2008 mode

Aspenware: Scrum with TFS – Day I

Page 25: Implementing Scrum with Microsoft Team Foundation Service (TFS)

25

SQL Server Requirements for TFS•Supported Editions

• SQL Server 2008 R2 Express, Standard and Enterprise SP1 CU1• SQL Server 2012 Express, Standard and Enterprise

•Features required• Database Engine Service• Full-Text Search

•Reporting features required• Reporting Services (Native for 2012)• Analysis Services

•Authentication• Windows

•Service account• Domain or Local built in account

Aspenware: Scrum with TFS – Day I

Page 26: Implementing Scrum with Microsoft Team Foundation Service (TFS)

26

Configuration Options for TFS•Basic Configuration

• Install SQL Server Express or Use an existing SQL Server instance

•Standard Configuration• Domain account required for SP service account (also used as Report Reader

account)• Member of Administrators security group• Best practices around service accounts (SP, SQL, TFS) -

http://msdn.microsoft.com/en-us/library/vstudio/dd578625.aspx

•Advanced Configuration• Multiple server configuration• No built-in accounts for service accounts• Ensure supported hardware/software• Ensure proper permissions and service accounts• Set up SQL (SSRS, SSAS), SharePoint (w/ TFS and TFS Extensions), and TFS (TFS

Config Tool)• https://www.smashwords.com/books/view/307722 Aspenware: Scrum with TFS – Day I

Page 27: Implementing Scrum with Microsoft Team Foundation Service (TFS)

27

Setting Up Your Code in TFS Source Control

Aspenware: Scrum with TFS – Day I

Page 28: Implementing Scrum with Microsoft Team Foundation Service (TFS)

28

Branching, in revision control and software

configuration management, is the duplication of an object under revision control (such as a source code file, or a directory tree) so that modifications can happen in parallel along both branches

http://en.wikipedia.org/wiki/Branching_(software)

Aspenware: Scrum with TFS – Day I

Page 29: Implementing Scrum with Microsoft Team Foundation Service (TFS)

29

Forward Integration (FI) &Reverse Integration (RI)

DEVELOPMENT

MAINBranch

Reverse

Forward

Aspenware: Scrum with TFS – Day I

Page 30: Implementing Scrum with Microsoft Team Foundation Service (TFS)

30

It’s All About the Main Branch

Aspenware: Scrum with TFS – Day I

Page 31: Implementing Scrum with Microsoft Team Foundation Service (TFS)

31

Creating Main

Aspenware: Scrum with TFS – Day I

Page 32: Implementing Scrum with Microsoft Team Foundation Service (TFS)

32

Development Branch

•Changes for next version of work.

Aspenware: Scrum with TFS – Day I

Page 33: Implementing Scrum with Microsoft Team Foundation Service (TFS)

33

Adding Code

Aspenware: Scrum with TFS – Day I

Page 34: Implementing Scrum with Microsoft Team Foundation Service (TFS)

34

Setting Up Your Code using Git Source Control

Aspenware: Scrum with TFS – Day I

Page 35: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Ely Lucas

[email protected] || Senior Software Developer

Ely is a software developer by day and ninja by night. He has over 10 years experience delivering cutting edge solutions and sneaking around unnoticed. He enjoys sharing his knowledge with others, technology, being outdoors and levitating objects with his mind. He lives in Denver with his wife, son and dog.Signature Image

Page 36: Implementing Scrum with Microsoft Team Foundation Service (TFS)

36

Git is an open source distributed version control system designed for speed and efficiencyGit is an open source distributed version control system designed for speed and efficiencyGit is an open source distributed version control system designed for speed and efficiencyGit is an open source distributed version control system designed for speed and efficiency

What Is Git?

Aspenware: Scrum with TFS – Day I

Page 37: Implementing Scrum with Microsoft Team Foundation Service (TFS)

37

Central Source Control Server

Repo

Version 3

Version 2

Version 1

Developer A

Developer B

File

File

Checkout

Checkout

Aspenware: Scrum with TFS – Day I

Page 38: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Developer A

RepoVersion

3Version

2Version

1

Developer B

RepoVersion

3Version

2Version

1

Developer C

RepoVersion

3Version

2Version

1

Server

RepoVersion

3Version

2Version

1

Page 39: Implementing Scrum with Microsoft Team Foundation Service (TFS)

39

Common Git commands•Init

•Add

•Commit

•Branch

•Checkout

•Merge

•Push/Pull

•Status

•Reset

Aspenware: Scrum with TFS – Day I

Page 40: Implementing Scrum with Microsoft Team Foundation Service (TFS)

40

Break

Aspenware: Scrum with TFS – Day I

Page 41: Implementing Scrum with Microsoft Team Foundation Service (TFS)

41

Scrum Overview

Aspenware: Scrum with TFS – Day I

Page 42: Implementing Scrum with Microsoft Team Foundation Service (TFS)

Ken Payne

[email protected] || Delivery Director || 303.590.4390

Ken gets inspiration and energy by working alongside smart, creative people solving tough business problems and wowing clients. He believes great solutions evolve through focused collaboration and strongly supports the notion that "innovation is a team sport."

Page 43: Implementing Scrum with Microsoft Team Foundation Service (TFS)

43

Scrum is Value DrivenConstraints

Variable

Plan Driven

Value Driven

Features Cost Schedule

FeaturesCost Schedule

Traditional Scrum

Aspenware: Scrum with TFS – Day I

Page 44: Implementing Scrum with Microsoft Team Foundation Service (TFS)

44

Scrum is Iterative

Sprint Planning

Sprint Review

Scrum

Update the Task

Code

Check-in

Product Vision

Product Backlo

g

Sprint Backlo

g

2 – 4 weeks

24 hours

Sprint Retrospective

Test

Potentially Shippable* Product

Backlog Grooming

“Scrum 0”

Aspenware: Scrum with TFS – Day I

Page 45: Implementing Scrum with Microsoft Team Foundation Service (TFS)

45

Scrum is Iterative and Incremental

Drawings by Jeff Patton

Aspenware: Scrum with TFS – Day I

Page 46: Implementing Scrum with Microsoft Team Foundation Service (TFS)

46

Scrum Teams are Cross-FunctionalThe Scrum team is self-organizing and cross-functional with all the skills necessary to create a product increment

Product Owner

Scrum Master

Development Team

Aspenware: Scrum with TFS – Day I

Page 47: Implementing Scrum with Microsoft Team Foundation Service (TFS)

47

Scrum is simple…

…to understand, difficult to do well

Aspenware: Scrum with TFS – Day I

Page 48: Implementing Scrum with Microsoft Team Foundation Service (TFS)

48

Estimating Precision

Accuracy

Understanding

Themes or Epics

(T-shirt sizes)

User Stories

(Story points)

Tasks(Hours)

Future SprintRelease / Product

“There's no sense in being precise when you don't even know what you're talking about.” – John von Neumann

Priority

Aspenware: Scrum with TFS – Day I

Page 49: Implementing Scrum with Microsoft Team Foundation Service (TFS)

49

Sprint 0 Activities

Aspenware: Scrum with TFS – Day I

Page 50: Implementing Scrum with Microsoft Team Foundation Service (TFS)

SallyTait

[email protected] || Senior Consultant || 303.798.5458

Sally is a problem solver and information collector. From optimizing the way her kitchen is organized to modeling complex business processes, she is compelled to design systems that simplify getting things done.

Page 51: Implementing Scrum with Microsoft Team Foundation Service (TFS)

51

Sprint 0: DefinitionSprint 0: Discovery

Sprint 1,2,3: Development

Sprint 4: Release

• Meet with key stakeholders to build the product backlog.

• Set up Development and QA environments.

• Set up the baseline architecture, continuous integration architecture and framework for nightly deployments

• Set up project infrastructure and conventions, schedule project activity and track and report progress.

1 week 12 weeks 1 week

• Perform sprint planning

• Complete work item tasks

• Run daily standups, schedule project activity, and track and report progress.

• Perform unit and integration testing.

• Auto deploy nightly

• QA test daily

• Perform end of Sprint demo

• Perform sprint retrospective

• Provide technical and user support for release

• Run daily standups, schedule project activity, and track and report progress

Aspenware: Scrum with TFS – Day I

Page 52: Implementing Scrum with Microsoft Team Foundation Service (TFS)

52

Sprint 0: Project and Team Definition•Project Templates

• Agile• Scrum• CMMI (traditional waterfall)

•Teams and Areas• Flexible categorization of the work• Teams are used to segment groups of people• Areas can be used to segment the work

Aspenware: Scrum with TFS – Day I

Page 53: Implementing Scrum with Microsoft Team Foundation Service (TFS)

53

Sprint 0: Set Up Iterations (Sprints)•Sprints or Iterations

• Timeboxes of work from the backlog• Each should each have same duration• Look at velocity to determine scope of each sprint

•Releases• Each sprint will produce “shippable” code.• Several sprints may be completed before an actual release.

Aspenware: Scrum with TFS – Day I

Page 54: Implementing Scrum with Microsoft Team Foundation Service (TFS)

54

Demo: Projects, Teams, Areas and Iterations

Aspenware: Scrum with TFS – Day I

Page 55: Implementing Scrum with Microsoft Team Foundation Service (TFS)

55

Sprint 0: Define the Backlog•Product Backlog

• Contains requirements, ideas, wish list, enhancements, bugs, etc.• Anyone can add to the product backlog.• Only the Product Owner can prioritize the product backlog.• TFS has security settings and alerts to manage this if desired.

Aspenware: Scrum with TFS – Day I

Page 56: Implementing Scrum with Microsoft Team Foundation Service (TFS)

56

Sprint 0: Define the Backlog•Work Item Types in TFS

• Product Backlog Item (PBI) – Requirement or Desired Feature• Task - Thing to do related to PBI• Bug - Defect or issue found in the application• Impediment - something that is causing a delay • Test Case - List of steps a tester should take to validate a PBI 

Aspenware: Scrum with TFS – Day I

Page 57: Implementing Scrum with Microsoft Team Foundation Service (TFS)

57

Sprint 0: Define the Backlog•User Story Format

• Backlog items should be expressed in business terms. • Most common format is user story:

As a [role], I want to [do something],

so that I can [achieve a desired result]

Aspenware: Scrum with TFS – Day I

Page 58: Implementing Scrum with Microsoft Team Foundation Service (TFS)

58

Demo Adding PBIs

Aspenware: Scrum with TFS – Day I

Page 59: Implementing Scrum with Microsoft Team Foundation Service (TFS)

59

Sprint 0: Size and Prioritize •Sizing the Product Backlog Items

• Sizing is a team effort.• Rather than ask "how long will it take," you ask, "how big is it?“• Common to use the Fibonacci sequence.

• 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144...• Simplified variation: 1, 2, 3, 5, 8, 13, 20, 40 (no higher)

•Backlog prioritization• Only the Product Owner may prioritize the backlog.• Simple list order, rather than 1, 2, 3 categories.

Aspenware: Scrum with TFS – Day I

Page 60: Implementing Scrum with Microsoft Team Foundation Service (TFS)

60

Demo Sizing and Prioritization

Aspenware: Scrum with TFS – Day I

Page 61: Implementing Scrum with Microsoft Team Foundation Service (TFS)

61

Break

Aspenware: Scrum with TFS – Day I

Page 62: Implementing Scrum with Microsoft Team Foundation Service (TFS)

62

Sprint Planning

Aspenware: Scrum with TFS – Day I

Page 63: Implementing Scrum with Microsoft Team Foundation Service (TFS)

63

Plan the Sprint•If not already determined, determine the duration and number of sprints

•Establish the sprint goal

•Add PBIs to the sprint from the prioritized backlog

•Set team capacity

•Add tasks and task estimates to PBIs

•Resolve over-allocations

•Commit!*

Aspenware: Scrum with TFS – Day I

Page 64: Implementing Scrum with Microsoft Team Foundation Service (TFS)

64

Sprint Planning Demo

Aspenware: Scrum with TFS – Day I

Page 65: Implementing Scrum with Microsoft Team Foundation Service (TFS)

65

Wrap up•What we talked about

• TFS Overview• TFS Version Comparison and Installation• Setting Up Your Code in TFS Source Control• Setting Up Your Code in Git Source Control• Scrum Overview• Sprint 0 Activities• Sprint Planning Exercise

•Review items in the Parking Lot

•Visit http://www.aspenware.com/blog for the slides and any additional resources

[email protected]

Aspenware: Scrum with TFS – Day I

Page 66: Implementing Scrum with Microsoft Team Foundation Service (TFS)

66

End of Day I

Aspenware: Scrum with TFS – Day I