Team Foundation Server 2008

Post on 15-Nov-2014

111 views 1 download

Tags:

Transcript of Team Foundation Server 2008

Trinh Minh Cuongcuong@microsoft.com

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

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

Can they be called …failed projects?

Q: Why project fails?

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

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.

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.

CollaborationTransparencyIntegration

Overcome ComplexityQuality Mindset

ClarityAlignmentEfficiency

Our ApproachFocus on People, Process and Tools

Agile Customizable Lightweight Patterns and Practices

Highly integrated Productive Extensible Low admin

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

Visual Studio Team System

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

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

Major CapabilitiesChangesetsWorkspacesBranch And MergeShelving

Integrated into Work Item Tracking, Builds

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

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

Work Item Association

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

Parallel Development

Multiple Releases

Branching

Merging

V 1.0

V 2.0

V 1.0’

V 1.1

branch

merge

merge

start

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

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

Collaborate & CommunicateTeam Foundation Server

A unified project server

Tester

Developer

Architect

ProjectManager

BusinessAnalyst

Designer Database Profession

al

This way is good but not easy to share and archive

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

Use Familiar Tools

Team members can use tools they already know, including…

TFS+Eclipse: TeamPrise

TFS+Outlook: TeamCompanion

Import tasks from MS-Project to TFS

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

Manage Team Workflow

Work item tracking throughout the lifecycle

Efficient management of tasksFlexible and customizableEnables trace-ability

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

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)

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)

MSF for Agile: iteration, roles

MSF for Agile: work streams & activities

TesterDeveloperArchitect

BusinessAnalyst Bug Fixer

Work Item

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.

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

Cost to fix bug

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

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

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.

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…

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

Build Automation

Team BuildExtension of MS Build

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

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

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?

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

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

Make Real-time Decisions

Comprehensive business intelligence reporting system

Real-time dataEnabling critical decision making

Q: It is good or bad ?

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

Too many … appears at the end of project

Q: Tell me about this project?

Resource Leaks

Development Practices Too Loose

Project Velocity

Bug Rates

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

Compatibility 2005 / 2008

TFS 2005

TFS 2008

VSTS 2005

VSTS 2008

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

Supports <450 developers

TFS

VSTS

Team Foundation Server 2010: Rosario

Understand Parallel DevelopmentFirst class branchesVisualize branch relationships

Drag & Drop MergingTrack change across branches

HistoryTimelineAnnotate

Conflict resolutionRollbackCross platform

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

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.

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.

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