Trinh Minh Cuong
[email protected]
Agenda Why project fails? Microsoft solution for Application Lifecycle Management 6 big things about Team Foundation Server Some 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 from http://www.msdnvietnam.net
Can they be called …failed projects?
Q: Why project fails?
Things happen in software development Architecture and Design
Application Delivery Management Aligning IT with Maintaining Managing the Business Legacy Systems Complexity Quality Assurance and Test Balancing Managing Fixed Business or diminishing Demands with Budgets Project Risk Deployment and Operations Unpredictable Lack of Visibility Ineffective Team Delivery Times Into Communication and Quality Project Status Project Management Data Management
User Experience Requirements Management
Software Coding Quality Software Configuration Management
Today’s Project Management Problem Business requirements are not actively and well managed. Disparate tools and data.
Testing is not aligned with business objectives. Lack of defined process and guidance Limited visibility into project status to make decisions. Communication issues between team members.
Hard working day of project manager 8: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
Our Approach
Focus on People, Process and Tools
Overcome Complexity Quality Mindset
Agile
Collaboratio n Transparenc y
Customizable
Highly integrated
Lightweight
Productive
Clarity Alignment Efficiency
Patterns and
Extensible
Low
Visual Studio Team Application Lifecycle Management System
Automation of the development process
Cross-platform support Traceability
Requirements tracking & status
Full history
Project Management & Governance Predictability
True status Work artifact relationships
Communication & Collaboration Visibility Transparency
Process workflow
Design for
Quality & Agility & Formality
Visual Studio Team System
Source Code Management
Source Control – Far better than Visual Source Safe, SubVersion, CVS,…
Major Capabilities Changesets Workspaces
Branch And Merge Shelving
Integrated into Work Item Tracking, Builds
Changesets Logical container of data related to checkin File and branch information Links to work items Check-in notes Comment Policy compliance Metadata (date, time, user) Unit of atomic check-in
Uniquely identified Numeric identifier Incremental
Integrated Check-in Atomic A changeset is guaranteed to have all changes from a check-in
Integrated Check-in policy applied (but override-able) Work Items associated Builds associated with Work Items Check-in notes All related to changeset Pending Check-in Window Notification possibilities
Check-in Policy Customizable, extensible
Work Item Association
Associate work items with each check-in to provide traceability from requirements to code
Parallel Development Multiple Releases Branching
start
V 1.0
branch
V 1.0’
merge merge
Merging V 2.0
V 1.1
Remember: Team Foundation Server is much more than a source code management tool !
Collaborate and Communicate by familiar tools
Collaborate & Communicate Team Foundation Server A unified project server
Designe
Architec
Business Analyst
Develop er
Database Profession
Tester
Project Manager
This way is good but not easy to share and archive
Question: List all possible ways to communicate in TFS? TeamExplore IE 6, 7, IDE of Visual Studio Team System
Your own application Through TFS API
r
8
Excel
Team Foundation Server
MS Project
Eclipse through TeamPrise
Outlook
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
Manage Team Workflow Work item tracking throughout the lifecycle Efficient management of tasks Flexible and customizable Enables 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 process A formal software development process Framework for customers and partners to implement custom software development process
Plan driven methods Artifact and milestone driven Documentation is formal and structured Planning cycle is formal and on-going Higher degree of project ceremony Team meetings, formal project reviews, documented status reports great deal of details Formal change control with Change Control Boards Project 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 methods Code-based deliverable driven vs. Documents based deliverable driven People oriented with informal but constant communications Initial 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 details Limited or no Limited or no formal change control within iterations Limited project stage gates requiring formal approval in order to proceed
MSF for Agile: iteration, roles
MSF for Agile: work streams & activities Architec
Business Analyst
Bug
Develop er
Tester
Work Item
FAQ about process guidance Q1: 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
Test Early and Often. Integrate work frequently
Cost to fix bug
Different Test Levels
A sample of testing strategy in VSTS
Different Tests in VSTS Unit Test: test again each function. (demo) 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
Code enhancing routines developer 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 Frequently Full featured version control system Continuous Integration Relate work item to check-in Check-out on Edit Labeling Scheduled Builds Integrated Testings
Build Automation Team Build Extension of MS Build
Continuous Integration, scheduled, ad-hoc Provides build reporting back to TFS Integrates testing
Drive Predictability - Make Real-Time Decisions
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 Predictability Integrated process templates help deliver predictable results MSF for Agile Teams MSF for CMMI Process Improvement Fully customizable Visit http://msdn.microsoft.com/enus/teamsystem/aa718795.aspx for more TFS process guidance templates
Traceability with VSTS Author requirements Assign and manage work items
Report project status Continuous integration of work items
Make Real-time Decisions Comprehensive business intelligence reporting system Real-time data Enabling 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-
Compatibility 2005 / 2008 VSTS 2005 TFS 2005
VSTS 2008 TFS 2008
Team Foundation Server Deployment Dev Team (Local)
Business User
Dev Team (Remote)
Build Server Win 2003 Server SQL Server 2005
Version Control Proxy (Remote)
Active Directory
HTTP / S TCP/IP
Team Foundation Server
Team Foundation Server: single server to scalable multi-tier servers TF S V STS Supports <450
Team Foundation Server 2010: Rosario
Understand Parallel Development First class branches Visualize branch relationships Drag & Drop Merging Track change across branches History Timeline
CrossAnnotate platform Conflict resolution Rollback
Manage Your Project Agile project management workbooks Work item linking and hierarchy Work item usability Rich text Links control HTML link control Drag & Drop
Traceability queries Query folders Excel & Project improvements Project round tripping
Some reminds when applying TFS in Vietnam People 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.
My humble advice Practice agile method, TFS in small scale project (2-4 people, less than 8 manmonths 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
Xin cảm ơn các bạn !