Team Foundation Server 2008

66
Trinh Minh Cuong [email protected]

Transcript of Team Foundation Server 2008

Page 1: Team Foundation Server 2008

Trinh Minh [email protected]

Page 2: Team Foundation Server 2008

Agenda

Why project fails?Microsoft solution for Application Lifecycle Management6 big things about Team Foundation ServerSome reminds when applying TFS and Process Guidance in Vietnam

Page 3: Team Foundation Server 2008

Notes!Today I do few demos since time is

limited. You can run demos yourself at home.

Ms Giang has copy of Visual Studio Team System 2008 testing environment:For XP, Vista, Windows 7, use Virtual PC 2007 to host

For Windows 2008, use Hyper-V to host

You can download this slide fromhttp://www.msdnvietnam.net

Page 4: Team Foundation Server 2008

Can they be called …failed projects?

Page 5: Team Foundation Server 2008

Q: Why project fails?

Page 6: Team Foundation Server 2008

Things happen in software development

Architecture and Design

User Experience

RequirementsManagement

Software Coding Quality

Software ConfigurationManagement

DataManagement

ProjectManagement

Deploymentand

Operations

Quality Assurance and

Test

Application Delivery

Management Aligning IT with the Business

Maintaining Legacy Systems

ManagingComplexity

BalancingBusiness

Demands withProject Risk

Managing Fixedor diminishing

Budgets

UnpredictableDelivery Times

and Quality

Lack of VisibilityInto

Project Status

Ineffective TeamCommunication

Page 7: Team Foundation Server 2008

Today’s Project Management ProblemBusiness requirements are not

actively and well managed. Disparate tools and data.Testing is not aligned with business objectives.Lack of defined process and guidanceLimited visibility into project status to make decisions.Communication issues between team members.

Page 8: Team Foundation Server 2008

Hard working day of project manager8:00AM-8:30AM: Check email, browse web

8:35AM-9:30AM: Meeting with development team, write email while meeting

9:40AM-10:10AM: Review bug reports of test team

10:15AM- 11:00AM: Voice conference with Japanese customer to present project progress, get requirements

11:10AM-12:10AM: Revise spec document of developers

1:30PM- 2:30PM: Support new developer to fix a bug

2:30PM-2:50PM: Check email, browse web

2:60PM-4:00PM: Meeting with business analysis and management board

4:15PM-5:00PM: Check progress, discuss 1:1 with developers

5:10PM-5:45PM: Read an article in CodeProject

5:45PM-6:50PM: End of day unit test and code check-in of whole team

7:00PM- 8:00PM: Summarize report and continue revising unfinished spec.

Page 9: Team Foundation Server 2008

CollaborationTransparencyIntegration

Overcome ComplexityQuality Mindset

ClarityAlignmentEfficiency

Our ApproachFocus on People, Process and Tools

Agile Customizable Lightweight Patterns and Practices

Highly integrated Productive Extensible Low admin

Page 10: Team Foundation Server 2008

Automation of the development process

Quality & Productivity

Project Management & GovernancePredictability

Visual Studio Team System

Agility & Formality

Communication & CollaborationVisibilityTransparency

Requirements tracking & status

Design for Deployment

Traceability

Work artifact relationships

Full history

True status

Process workflow

Cross-platform support

Application Lifecycle Management Solution

Page 11: Team Foundation Server 2008

Visual Studio Team System

Page 12: Team Foundation Server 2008
Page 13: Team Foundation Server 2008

Source Code Management•Store, version, shelf, backup source code, documents of projects1•Collaborate and Communicate by familiar tools 2•Manage Team Workflow and Process Guidance3•Integrate Work Frequently. Test Early and Often4•Drive Predictability - Make Real-Time Decisions5•Interoperability - Customizable6

Page 14: Team Foundation Server 2008

Source Control – Far better than Visual Source Safe, SubVersion, CVS,…

Major CapabilitiesChangesetsWorkspacesBranch And MergeShelving

Integrated into Work Item Tracking, Builds

Page 15: Team Foundation Server 2008

ChangesetsLogical container of data related to check-in

File and branch informationLinks to work itemsCheck-in notesCommentPolicy complianceMetadata (date, time, user)Unit of atomic check-in

Uniquely identifiedNumeric identifierIncremental

Represents a point in time of source repository

Page 16: Team Foundation Server 2008

Integrated Check-inAtomic

A changeset is guaranteed to have all changes from a check-in

IntegratedCheck-in policy applied (but override-able)Work Items associatedBuilds associated with Work ItemsCheck-in notesAll related to changesetPending Check-in WindowNotification possibilities

Check-in PolicyCustomizable, extensible

Page 17: Team Foundation Server 2008

Work Item Association

Associate work items with eachcheck-in to provide traceability from requirements to code

Page 18: Team Foundation Server 2008

Parallel Development

Multiple Releases

Branching

Merging

V 1.0

V 2.0

V 1.0’

V 1.1

branch

merge

merge

start

Page 19: Team Foundation Server 2008

Remember: Team Foundation Server is much more than a source code management tool !

Page 20: Team Foundation Server 2008

Collaborate and Communicate by familiar tools

•Store, version, shelf, backup source code, documents of projects1•Collaborate and Communicate by familiar tools 2•Manage Team Workflow and Process Guidance3•Integrate Work Frequently. Test Early and Often4•Drive Predictability - Make Real-Time Decisions5•Interoperability - Customizable6

Page 21: Team Foundation Server 2008

Collaborate & CommunicateTeam Foundation Server

A unified project server

Tester

Developer

Architect

ProjectManager

BusinessAnalyst

Designer Database Profession

al

Page 22: Team Foundation Server 2008

This way is good but not easy to share and archive

Page 23: Team Foundation Server 2008

Question: List all possible ways to communicate in TFS?

Team Foundation

Server

IDE of Visual Studio Team System

TeamExplorer

IE 6, 7, 8

MS Project

Eclipse throughTeamPrise

Excel

Outlook

Your own application

Through TFS API

Page 24: Team Foundation Server 2008

Use Familiar Tools

Team members can use tools they already know, including…

Page 25: Team Foundation Server 2008

TFS+Eclipse: TeamPrise

Page 26: Team Foundation Server 2008

TFS+Outlook: TeamCompanion

Page 27: Team Foundation Server 2008

Import tasks from MS-Project to TFS

Page 28: Team Foundation Server 2008

Manage Team Workflow and Process Guidance

•Store, version, shelf, backup source code, documents of projects1•Collaborate and Communicate by familiar tools 2•Manage Team Workflow and Process Guidance3•Integrate Work Frequently. Test Early and Often4•Drive Predictability - Make Real-Time Decisions5•Interoperability - Customizable6

Page 29: Team Foundation Server 2008

Manage Team Workflow

Work item tracking throughout the lifecycle

Efficient management of tasksFlexible and customizableEnables trace-ability

Page 30: Team Foundation Server 2008

Process Guidance

Microsoft® Solutions Framework is:Guidance on how to organize people and projects to plan, build, and deploy technology solutions successfully and effectively

It provides:An agile software development processA formal software development processFramework for customers and partners to implement custom software development process

MICROSOFT SOLUTIONS

FRAMEWORK(MSF)

MSF for AgileSoftware Dev

MSF for CMMI®

Process Improvement

Third-Party Offerings

In-HouseCustomizations

Page 31: Team Foundation Server 2008

Plan driven methodsArtifact and milestone drivenDocumentation is formal and structuredPlanning cycle is formal and on-goingHigher degree of project ceremony

Team meetings, formal project reviews, documented status reports great deal of details

Formal change control with Change Control BoardsProject stage gates requiring formal approval in order to proceed.Well defined project roles with separation of duties.Development iterations tend to be few and long (measured in months, quarters, or greater)

Page 32: Team Foundation Server 2008

Agile methodsCode-based deliverable driven vs. Documents based deliverable drivenPeople oriented with informal but constant communicationsInitial planning cycle is formal but on -going planning is "as needed”Lower project ceremony --> Work item assigning, auto metrics report generating.Limited team meetings, brief project reviews, documented status reports with low detailsLimited or no Limited or no formal change control within iterationsLimited project stage gates requiring formal approval in order to proceedDevelopment iterations tend to be frequent and many (measured in days or weeks)

Page 33: Team Foundation Server 2008

MSF for Agile: iteration, roles

Page 34: Team Foundation Server 2008

MSF for Agile: work streams & activities

TesterDeveloperArchitect

BusinessAnalyst Bug Fixer

Page 35: Team Foundation Server 2008

Work Item

Page 36: Team Foundation Server 2008

FAQ about process guidanceQ1: Can I mix water-fall with agile?A1: Yes. You can even create your own process template.

Q2: Using TFS and process guidance ensures that my project will be successful?A2: The success of project depends on many factors. Human is most important factor. Using TFS and process guidance correctly helps your team manage project better: in time, meet spec, within budget.

Page 37: Team Foundation Server 2008

Test Early and Often. Integrate work frequently

•Store, version, shelf, backup source code, documents of projects1•Collaborate and Communicate by familiar tools 2•Manage Team Workflow and Process Guidance3•Test Early and Often. Integrate work frequently4•Drive Predictability - Make Real-Time Decisions5•Interoperability - Customizable6

Page 38: Team Foundation Server 2008

Cost to fix bug

Page 39: Team Foundation Server 2008

Different Test LevelsBusiness Reqs

User Reqs

System ReqsTechnical Architecture

Hardware SpecsSoftware Specs

Detailed DesignDev Standards

Produce Code

Unit Testing

System Testing

Integration Testing

Acceptance Testing

Validates

Validates

ValidatesBusiness

Focus

Technical Focus

Regression Testing

Reference: Learning Tree International Course 316 “Software Testing and Inspection Methods

Validates

Page 40: Team Foundation Server 2008

A sample of testing strategy in VSTS

Master Test Plan

Acceptance Test Plan

System Test Plan

Integration Test Plan

Unit Test Plan

Manual test case scenarios

Automated test case scenarios

Load test scenarios

GENERATES

Defects log

Test logs

VSTEST TFS

Page 41: Team Foundation Server 2008

Different Tests in VSTS (demo)Unit Test: test again each function.Web Test: record web navigation step by step.Load Test: Simulate load of many web tests.Generic Test: Test using an application that wraps or call functions, services of target application.Manual Test: Write test scenarios into MS Word.Order Test: Combine above tests into series.

Page 42: Team Foundation Server 2008

Code enhancing routinesdeveloper should run frequently

Code Analysis for managed & unmanaged code

Unmanaged: reports possible defects in C++ source code. Common coding errors reported by the tool include buffer overrun, un-initialized memory, null pointer dereference, memory and resource leaks.Managed: reports information about the assemblies, such as violations of the programming and design rules set forth in the Microsoft .NET Framework Design Guidelines.

Performance Wizard Identifies bottle neck functions

Code Metrics measures maintainability, complexity, inheritance depth, class coupling…

Page 43: Team Foundation Server 2008

Integrate Work FrequentlyFull featured version control system

Continuous IntegrationRelate work item to check-inCheck-out on EditLabelingScheduled BuildsIntegrated Testings

Continuous Integration

Scheduled Builds

Labeling

Check-out on Edit

Relate Check-in to Work Item

Page 44: Team Foundation Server 2008

Build Automation

Team BuildExtension of MS Build

Continuous Integration, scheduled, ad-hocProvides build reporting back to TFSIntegrates testing

Page 45: Team Foundation Server 2008

Drive Predictability - Make Real-Time Decisions

•Store, version, shelf, backup source code, documents of projects1•Collaborate and Communicate by familiar tools 2•Manage Team Workflow and Process Guidance3•Test Early and Often. Integrate work frequently4•Drive Predictability - Make Real-Time Decisions5•Interoperability - Customizable6

Page 46: Team Foundation Server 2008

Questions for PM?

How often do you revise plan, Gantt chart because project delays?How can you estimate time, effort for a development task?How often do you check the Gantt chart to track schedule of project?At the end of each project, do you have updated report about who’s done what and other metrics?

Page 47: Team Foundation Server 2008

Drive PredictabilityIntegrated process templates help

deliver predictable resultsMSF for Agile TeamsMSF for CMMI Process ImprovementFully customizableVisit http://msdn.microsoft.com/en-us/teamsystem/aa718795.aspx for more TFS process guidance templates

Page 48: Team Foundation Server 2008

Traceability with VSTS

Author requirementsAuthor requirements

Assign and manage work itemsAssign and manage work items

Continuous integration of work

items

Continuous integration of work

items

Report project statusReport project status

Page 49: Team Foundation Server 2008

Make Real-time Decisions

Comprehensive business intelligence reporting system

Real-time dataEnabling critical decision making

Page 50: Team Foundation Server 2008

Q: It is good or bad ?

Page 51: Team Foundation Server 2008

Q: Where Do We Need To Do With This Situation?

Page 52: Team Foundation Server 2008

Too many … appears at the end of project

Page 53: Team Foundation Server 2008

Q: Tell me about this project?

Page 54: Team Foundation Server 2008

Resource Leaks

Page 55: Team Foundation Server 2008

Development Practices Too Loose

Page 56: Team Foundation Server 2008

Project Velocity

Page 57: Team Foundation Server 2008

Bug Rates

Page 58: Team Foundation Server 2008

Interoperability-Customizable•Store, version, shelf, backup source code, documents of projects1•Collaborate and Communicate by familiar tools 2•Manage Team Workflow and Process Guidance3•Test Early and Often. Integrate work frequently4•Drive Predictability - Make Real-Time Decisions5•Interoperability - Customizable6

Page 59: Team Foundation Server 2008

Compatibility 2005 / 2008

TFS 2005

TFS 2008

VSTS 2005

VSTS 2008

Page 60: Team Foundation Server 2008

Team Foundation Server: single server to scalable multi-tier servers

Supports <450 developers

TFS

VSTS

Page 61: Team Foundation Server 2008

Team Foundation Server 2010: Rosario

Page 62: Team Foundation Server 2008

Understand Parallel DevelopmentFirst class branchesVisualize branch relationships

Drag & Drop MergingTrack change across branches

HistoryTimelineAnnotate

Conflict resolutionRollbackCross platform

Page 63: Team Foundation Server 2008

Manage Your ProjectAgile project management workbooksWork item linking and hierarchyWork item usability

Rich textLinks controlHTML link controlDrag & Drop

Traceability queriesQuery foldersExcel & Project improvements

Project round trippingFormula persistenceUndo

Page 64: Team Foundation Server 2008

Some reminds when applying TFS in VietnamPeople sticks to Plan methods. (Cô đọc trò chép, trên

chỉ đạo, dưới làm)

Time management is not so good.Team work needs to be improved.PM acts as senior developer rather than PM.Most of testers do black-box test. Programmers do not want to do tester’s work, lazy to write unit-test.Process guidance is weak and not clear.Too many meetings but few executable actions.Changing tool but not changing attitude.Copy-paste coding style spoils quality of code. No solution architecture. Short vision of output.

Page 65: Team Foundation Server 2008

My humble advicePractice agile method, TFS in small scale project (2-4 people, less than 8 man-months first).

Enforce, remind process guidance, coding convention frequently and strongly.

Share project documents in TFS portal rather than by email.

Automate process to eliminate paper-work.

Germ solution architect in your development.

Attend more Microsoft trainings and seminars to ready your skills.

Page 66: Team Foundation Server 2008

Xin cảm ơn các bạn !