team foundation server 2008
TRANSCRIPT
Trinh Minh [email protected]
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 !