3. I HAVE A DREAM
• My project
o In Time
o Within Budget
o Meet Requirements
• Members in my team
o Creative & responsive
o Not exhausted and not leave team
cuong@microsoft.com
5. Typical developer
• Personal interest is more than team interest
• Warm up time is long
• Good at patching but bad at designing
(problem solving style)
• Wait for thing happens but not make thing
happen
cuong@microsoft.com
12. Scrum is an Agile framework
Scrum is an iterative, incremental
framework for project management and
agile software development.
Agile … is a group of software
development methodologies based on
iterative and incremental development…
cuong@microsoft.com
13. Agile
Analysis Design Develop Test Deploy
cuong@microsoft.com
14. Agile
Analysis
Design Test
Develop Deploy Analysis
Design Test
Develop Deploy Analysis
Design Test
Develop Deploy
!
?
?
!
cuong@microsoft.com
15. Principles of Agile #1
• Deliver valuable software early &
continuously
• Accommodate changes
• Collaborate with customer or customer
proxy
• Motivate individuals Self-organizing
teams Self tuning
cuong@microsoft.com
16. Principles of Agile #2
• Enforce effective & transparent
communication
• Measure of progress by working
software delivered. Highlight amount of
work not done
• Maintain a development speed
• Promote technical excellent and good
design
cuong@microsoft.com
17. DIFFERENCES
Plan Driven Scrum
• Hierarchy team • Self organizing team
• Lot of document • Deliver features
• Follow plan • Response to change
• Structure • Flexible
• Gantt Chart • Burn down chart
cuong@microsoft.com
18. Roles in Scrum
Scrum Master Scrum Team
Product Owner
Stakeholders &
Users
cuong@microsoft.com
19. Product Owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the
product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as
needed
• Accept or reject work results
cuong@microsoft.com
20. The Scrum Master
• Manage project
• Enforce Scrum values and practices
• Help team to focus on tasks
• Enable close cooperation across all roles and
functions
• Shield the team from external interferences
cuong@microsoft.com
21. The team
• Typically 5-9 people
• Cross-functional:
– Programmers, testers, user experience designers, etc.
• Teams are self-organizing
– Ideally, no titles but rarely a possibility
• Membership should change only between sprints
cuong@microsoft.com
26. Product vs Sprint Backlog
Product BackLog Sprint BackLog
Level of detail Less detailed Very detailed
Item User Story Task
Estimation Units Story Points Hours
Doc owner Product Owner Team
Revised Weekly Daily
Duration Project Sprint
Workbook Product Backlog Iteration Backlog
cuong@microsoft.com
28. User Story
• Independent
• Negotiable User Story <StoryPoint>
• Valuable
Task 1 Task 2 Task 3
• Estimatable
• Small
• Testable
As a <USER> I need to <ACTION> In order to <REASON>
cuong@microsoft.com
29. User Story
• User Story == Use Case
• MosCow: Must – Should – Could – Wouldn’t
• Write non-functional requirements as user
stories
• Estimate Story Point
http://stackoverflow.com/questions/1232281/what-are-
estimate-points-story-points-and-how-to-measure-them-
in-scrum
cuong@microsoft.com
30. Meetings in SCRUM
Meeting Purpose Duration Frequency
Sprint Determine what work to do in 2 hours per Once per
Planning the coming sprint. week sprint
Daily Allow team members to 15 minutes Daily
Scrum commit, collaborate, and
communicate risks.
Sprint Show the customer and other 2 hours per Once per
Review stakeholders the work that the week sprint
team accomplished in the
sprint, and receive feedback.
Retrospect Identify and implement ideas 3 hours Once per
ive for process improvement. sprint
cuong@microsoft.com
31. Daily Scrum
• Daily, 15 minutes, whole team
• What did you do yesterday ?
• What will you do today ?
• What are impediments?
No need minutes meeting
Need a tool to keep track
user story, task, bug…
cuong@microsoft.com
32. Sprint Task Board
User Stories Not Done In Progress Done Deferred
Do this Do this Do this
As a user I and and and
want this to that. that. that.
do that.
Do this
and
that.
As a user I Do this Do this
and and
want this to
that. that.
do that.
As a user I Do this Do this
and and
want this to that. that.
do that.
Do this
and
that.
cuong@microsoft.com
33. “Music Store” web site
• Team : 1 PM - 1 dev – 1 ux designer
• Mission: Develop “Music Store” site in 3
months.
• Every 2 weeks must show customer progress
• Team work 5 days a week, 8 hours per day
(Utilize rate 75% ~ 6 hours per day)
cuong@microsoft.com
34. Example Solution
• Each Sprint takes 2 weeks
• 4 months 8 Sprints
• Each sprint, a person burns 5*2*6=60 hours.
A team burns 60*3=180 hours
Idle hours will not be counted
Hours which used to complete task
will be counted as burnt hours
cuong@microsoft.com
36. Product backlog
Story Point
Priority Backlog item
Estimate
1 User can see list of category 3
User clicks on a category, list of product under category will
2 5
show
3 At front page, user sees 20 suggested item 3
4 Registered user can rate, commend a item 8
5 Administrator can send message to registered user 8
6 Administrator can create new item 30
7 ….
cuong@microsoft.com
37. The sprint goal
A short statement of what the work will be
focused on during the sprint
UX Prototyping
Design static prototype web site Database Design
XHTML, CSS validation CodeFirst EF 4 to generate data
jQuery interaction Generate sample data
Performance
Tune render speed at client
Restaurant List Tune server response
Show top 20 restaurants Configure memcached caching
Personalize data per user
List restaurant by A-Z, styles, …
cuong@microsoft.com
38. Burn Down Chart
180 hrs. Learning Curve
Work Hours Remaining
Team speeds up
0 hrs.
Time 1 Sprint = 2 weeks
cuong@microsoft.com
39. What happen?
180 hrs.
Bugs happen
Work Hours Remaining
Urgent task
0 hrs.
Time 1 Sprint = 2 weeks
cuong@microsoft.com
44. SubVersion, CVS, GIT are SCM only
Bug Tracking Deployment
Project Management
Quality Control Report
SCM: Source Code Management
cuong@microsoft.com
45. Much more than a SCM
Developer Database
Designer
Professional
Architect
Tester
Business Project
Analyst Team Foundation Server Manager
cuong@microsoft.com
46. What TFS can do
Team Foundation Server
Process Focused
Version Control
Process
Templates Work Item Tracking
Integrated
SharePoint Check-in Build Automation
Manage work
Customizable Check-in
Bugs, Tasks, Reporting
Policies Continuous
Requirements, Integration
Shelving Stories, Risks, Decision
etc. Scheduled Support
Very Extensible Ad Hoc Track Project
Progress
cuong@microsoft.com
48. Building blocks
Client Interface Version Control Build
Proxy Environment
Visual
MS Excel Command Line
Studio Version
Control Build
Proxy Process
Service
MS Project Team Explorer TFS SDK
Application Tier
SQL Reporting Services Windows SharePoint Services Web Services
SQL Server
Version Data
Work Items Team Build
Control Warehouse
Data Tier
cuong@microsoft.com
49. Deployment
Business User Dev Team (Local)
Dev Team (Remote)
Build Server
Win 2008 Server
SQL Server 2008
IIS 7.0
Version Control
Active Directory Proxy (Remote)
HTTP / S
TCP/IP
Team Foundation Server
cuong@microsoft.com
51. Consolidate backend DB
Data Tier
TFS AT HR
Applications
Clustered SQL
Server
Scale (a little), SQL Consolidation
cuong@microsoft.com
52. Bigger
Network Load
Balancing
HR
TFS AT
Applications
Team Project
N Finance
Collection
VIP L TFS AT
Applications
B
Company
TFS AT Web site
Another SQL
Server
Isolation, Reliability, Scale
cuong@microsoft.com
53. More Bigger
HR TFS Build
TFS AT Farm
Applications
N Finance
Applications TFS
L TFS AT
Proxies
B
Company
TFS AT Web site
Test Rig
SharePoint Data Virtual
Project
Farm Warehouse Machine
Server
Manager
cuong@microsoft.com
54. VERSION CONTROL
Team Foundation Server
Process Focused
Version Control
Process
Templates Work Item Tracking
Integrated
SharePoint Check-in Build Automation
Manage work
Customizable Check-in
Bugs, Tasks, Reporting
Policies Continuous
Requirements, Integration
Shelving Stories, Risks, Decision
etc. Scheduled Support
Very Extensible Ad Hoc Track Project
Progress
cuong@microsoft.com
55. Workspaces: local working copy
Map Server to Per User, Per
Local Workstation
Changes in
Also Used for
Workspace create
Builds
“Pending Changes”
cuong@microsoft.com
56. Changesets
• Logical container of data related to check-in
– File and branch information
– Links to work items
– Check-in notes
– Check in Policy
– Metadata (date-time, user)
– Atomic checkin
• Uniquely identified
• Trace & query easilly
cuong@microsoft.com
57. Other terms of TFS version control
• Integrated Check-in
• Check-in policies
• Shelve
• Label
• Branch / Merge
More at
http://www.slideshare.net/stevenl/team-
foundation-server-2010-version-control
cuong@microsoft.com
58. Check-in Policies
• Soft requirements for check-in
• Extensible
• Can be overridden
cuong@microsoft.com
59. Client Server vs Distributed SCM
• Clients push-pull master Exchanging patches
repository. (change-sets) from
• A client hold only a working peer to peer
copy of a project tree
• Changes by client commits the
master repository before they
propagate to other users
cuong@microsoft.com
60. Client Server vs. Distributed
• TFS, CVS, SVN, Perforce, Vault are client-
server SCM
• Git, Mercurial are distributed SCM
• Distributed SCM:
o No canonical, reference copy of the codebase
exists by default; only working copies
o Basic operations (c-in, c-out) are fast
o Each working copy acts as remote backup
o Suitable for Open Source development but not
commercial development
cuong@microsoft.com
62. Visual Studio TFS
Visual Studio 2005
Team Foundation
Server 2010
Visual Studio 2008
Visual Studio 2010
Team Foundation
Server 2008
cuong@microsoft.com
63. With VB, VC++ 6.0, VS2003
• Upgrade to Service Pack 6
• Install Team Foundation Server MSSCCI
Provider
cuong@microsoft.com
66. Think TFS as web service provider
• Include these namespace
– Microsoft.TeamFoundation.Proxy;
– Microsoft.TeamFoundation.Client;
– Microsoft.TeamFoundation.Server;
– Microsoft.TeamFoundation.WorkItemTracking.Client
• Windows Form app connects to TFS
http://blogs.microsoft.co.il/blogs/shair/archiv
e/tags/TFS+API/default.aspx?PageIndex=2
cuong@microsoft.com
67. With SharePoint Server
• Install on SharePoint Foundation 2010
• Install on SharePoint Server 2010: full
features
• Connect to MS Project Server 2010
cuong@microsoft.com
68. For Non-.NET Development
• Team Explorer Everywhere
– Eclipse plug-in for TFS
– Rich client (Java-based)
– Command-Line
cuong@microsoft.com
70. Team Foundation Server
Process
Version Control
Process
Templates Work Item Tracking
Integrated
SharePoint Check-in Build Automation
Manage work
Customizable Check-in
Bugs, Tasks, Reporting
Policies Continuous
Requirements, Integration
Shelving Stories, Risks, Decision
etc. Scheduled Support
Very Extensible Ad Hoc Track Project
Progress
cuong@microsoft.com
71. Process Templates
CMMI 5.0 Agile 5.0 Default templates
SCRUM 1.0 MPT 1.0
Customed templates
X Y
cuong@microsoft.com
72. A Process Template
Process Guidance
User Story
Task
Bug Work Item
Process Template Issue
Test Case
Custom Work
Item
Reportings
cuong@microsoft.com
73. Work Item
Agile 5.0 CMMI 5.0
• User Story • Task
• Task • Bug
• Test Case • Change Request
• Bug • Test Case
• Issue • Requirement
• Review
• Shared Steps
• Issue
• Risk
• Shared Steps
cuong@microsoft.com
74. Work Item Tracking
• Create, Update, Change status
• Link
• Associate with changeset
• Query
cuong@microsoft.com
76. REPORTING
Process Focused
Version Control
Process
Templates Work Item Tracking
Integrated
SharePoint Check-in Build Automation
Manage work
Customizable Check-in
Bugs, Tasks, Reporting
Policies Continuous
Requirements, Integration
Shelving Stories, Risks, Decision
etc. Scheduled Support
Very Extensible Ad Hoc Track Project
Progress
cuong@microsoft.com
81. Automated Unit Test
• Write Once, Run Often
• Configurable Test Script
• Programmable Test Logic
• No human input
• Auto generate bug report
• Trigger action: build / notification
cuong@microsoft.com
86. CONTINOUS INTEGRATION
Team Foundation Server
Process Focused
Version Control
Process
Templates Work Item Tracking
Integrated
SharePoint Check-in Build Automation
Manage work
Customizable Check-in
Bugs, Tasks, Reporting
Policies Continuous
Requirements, Integration
Shelving Stories, Risks, Decision
etc. Scheduled Support
Very Extensible Ad Hoc Track Project
Progress
cuong@microsoft.com
88. Team Foundation Build
• Manual: run by team member
• Continous: queued by a check-in
• Rolling: accumulated until previous build
finishes
• Gated check in: Check-in is accepted only if
submitted changes merge and build
successfully
• Scheduled: run on a defined schedule
cuong@microsoft.com