Scrum with TFS 2008 Scott Colestock

Scrum with TFS 2008
Scott Colestock
Scott Colestock
• Focus on ALM space with VSTS/TFS
(speaking/writing/production rollouts)
• Consulting independently in the BizTalk
2004/2006 space for about 5 years
• Blog: www.traceofthought.net
Agenda
•
•
•
•
•
VSTS & Lifecycle Management
Whirlwind Scrum Tour
Conchango Scrum Template
eScrum Template (from Microsoft)
VSTS Lightweight Scrum Template (brief)
VSTS & Lifecycle Management
• Application lifecycle management (ALM): Process
of delivering software as a continuously
repeating cycle of inter-related steps1:
– Definition, design, development, testing,
deployment and management.
• Apart from tooling…ALM has to address:
– What (processes/deliverables)
– How (techniques)
– Who (roles)
1: wikipedia
VSTS & Lifecycle Management
• Many challenges to organizational
adoption of formal ALM…
– Processes can be complex; often defined
in reference documents only
– Life cycle tools traditionally poorly
integrated with engineering tools
• Project management, requirements management,
bug tracking, review management
• Versus tools that support design, coding, testing,
debugging, classic IDE functions
The ALM toolbox…
VSTS & Lifecycle Management
• Tool mismatch (management vs. engineering)
makes process analysis unreliable.
– Many projects treat a Microsoft Project Plan as
source-of-truth, until reality steps in…
• Difficult to identify process improvement
opportunities or measure process adherence
– Or more importantly, measure process cost/benefit
ratio
What if my development process was implemented
directly inside of developer tooling?
What if all necessary data capture was part of the
normal developer workflow?
VSTS & Lifecycle Management
• VSTS “implements” life-cycle methodologies
using process templates
• Process templates are associated with a Team
Project – Project Creation Wizard (PCW) asks you to choose a
template…
– PCW then provisions Team Project resources
according to the definitions in the process template
(xml files)
Process Template Content
• Work item types, work item queries, reports,
process guidance, source control policies, etc.
– Apart from source artifacts & builds, “work items” are the core
entity that TFS tracks!
• Recognizing that enacting a given process really
comes down to:
–
–
–
–
–
What
What
What
What
What
information will I track
metrics will I pay attention to
practices will I emphasize/enforce
phases/cycles do I engage in
roles must be filled…
Choosing/Customizing a
Process Template
• Choose a base template that fits shop well for
work item types, work item queries, and reports
– MSF for Agile, or MSF for CMMI, or Others (Scrum templates, etc.)
• Decide if you’re going to customize your team
project, or create a new process template…
– Just your project: modify work item types & queries “in place”
(directly against your team project)
– Creating a new process template (from a base template): download
the template, modify, and upload.
• Customize!
– Typically begin with work item types and work item queries
– Move outward to reports, sharepoint site, document templates,
process guidance, default version control policies, etc.
Choosing/Customizing a
Process Template
• Much discussion on process templates focuses
on “process guidance” – how to package the
description of the methodology
• Reality: Most shops (initially) just want work
item types that align with the “lists” they keep
(e.g. requirements, tasks, bugs, etc.)
• Work items can comprise not just fields, but
simple workflow (state transitions with
entry/exit criteria) and can exist within
area/iteration hierarchy
Customizing a Process Template
• Customization of work item types and work item queries is quite
easy
– WITImport/WITExport command line tools
– TFS Power Tool has process template editor (tinyurl.com/tfs08tools)
Agenda
•
•
•
•
•
VSTS & Lifecycle Management
Whirlwind Scrum Tour
eScrum Template (from Microsoft)
Conchango Scrum Template
VSTS Lightweight Scrum Template (brief)
Why a Scrum Template?
• MSF for Agile/CMMI:
– Difficult to find broadly-available documentation on MSF
for Agile/CMMI
– Process guidance for MSF templates can be difficult to
use as a tutorial…
– Few classes/certifications on new MSF material
– Appropriate for teams steeped in iterative development
who can view MSF as another in a family of methodologies
• Scrum:
– Good industry critical mass; many good books & web site
resources
– Certification process, formal training infrastructure
– Process guidance for the Conchango template is quite
good
Scrum is…
• A deceptively simple framework for managing complex
projects
– A simple team model
– A simple process model
– With very few artifacts…
• Does remarkably good job of stripping away project
elements:
– That have no value…
– That subtract value (i.e. useless tax)
– That hide the actual condition of the project
• Attempts to adhere to Scrum often reveals complex
project and org issues (outside agendas) – can cause
adoption to fail
Scrum has…
• Scrum has a team model
– (roles to play)
• Scrum has a process model
– (a rhythm to follow)
• Scrum has a set of artifacts
– (lists/backlogs to create, data to gather)
What is Scrum?
24 hours
Daily Scrum
Meeting
(facilitated by
Scrum Master)
Sprint Backlog
Backlog tasks
decomposed
by team
30 day Sprint
Product Backlog
As prioritized by Product Owner
Potentially Shippable
Product Increment
Source: Adapted from Agile Software
Development with Scrum by Ken
Schwaber and Mike Beedle.
Scrum Elements
• Roles: Product Owner, Scrum Master, Team
• Process Model:
–
–
–
–
Sprint planning
Sprint, with Daily Scrum
Sprint Review (Demo) & Delivery
Sprint Retrospectve
• Artifacts:
–
–
–
–
Product backlog
Sprint backlog
Sprint burndown chart
Product increment
Scrum Elements
Conchango
Scrum Elements
Conchango
Artifact 1: The Product Backlog
(deceptively simple)
•
•
•
•
•
A list of product requirements – functional and non-functional
– “As a <role> I want <ability> so that <benefit>”
Prioritized by organizational value
– At some point, must decide whether xyz revenue-generating feature is
more or less important than pdq SOX compliancy feature
Each item expressed such that it is no coarser than a Sprint in size
– Else attempt to express as a smaller “increment in business value”
– Estimate in days or story points
Simple Excel worksheet can do…(title, estimated sprint, duration, owner)
Never finalized – emerges and evolves with the product
– So you begin delivery with just a handful of information (no big up-front
requirements process)
– Information about what is the highest priority right now…
Scrum Elements
Conchango
Team Element 1: The Product Owner
• The Product Owner owns the Product Backlog…
– Though anyone can contribute Product Backlog items (PBIs)
• Product owner able to reprioritize any backlog item that is not
in the currently-running Sprint
• One person in this role ensures that only one set of
requirements drives development team’s focus – influenced by
committees, management, customers, sales people
• Works with others to estimate items (in days or story points) on
Product Backlog
• Ideally focus is ROI.
– Product Owner steers the project via Product Backlog prioritization to
provide the greatest/fastest ROI to the organization.
– Owns the definition of success.
Scrum Elements
Conchango
Process 1: Sprint Planning
Meeting
• Part 1: Product Owner selects the ideal product backlog items for the
coming Sprint and communicates the value of this increment in business
value to the team
– For each PBI, how will we demo?
– Some PBIs may need to be decomposed to fit into Sprint
• Part 2: The team decides how much it can commit to delivering in the
coming Sprint
– The Team decides how to turn the selected backlog items (or “top x”) into
an increment of potentially shippable product functionality.
– The Team devises its own tasks (Sprint Backlog Items) and figures out who
will do them, and what estimates to assign
– The Team will quickly learn their actual velocity & commit accordingly
• The outcome of the meeting is the Sprint Backlog.
Low tech Sprint Planning
Henrik Kniberg
Scrum Elements
Conchango
Artifact 2: The Sprint Backlog
• Selected by team at outset of Sprint during Sprint
Planning
• Each Product Backlog Item will decompose into
several Sprint Backlog Items
– Granularity in hours…
• Estimates and items may change during Sprint as
new information is discovered
• Simple Excel worksheet can do…
– Sufficiently descriptive title
– Estimated duration (hours)
– Estimated work left (hours) – updated daily
Scrum Elements
Conchango
Process 2: Sprint
• Strictly time boxed to two-to-four weeks: it’s far better to fall
short than to slip the date
– If too much work was selected, reduce scope but focus on still
shipping a shippable increment
• Ideally Sprint includes design, coding, testing, and documentation
for a ship-ready increment
– Crisp definitions of “done”
– “How will we demo?”
• The Product Owner refrains from changing the content of the
sprint – team just focuses on delivery
• Within the sprint, there are many possible engineering practices
(test driven development, pair programming, etc.)
Scrum Elements
Conchango
Process 3: Daily Scrum
• A daily team meeting – should be replacing weekly status
meetings
– Same time every day - $1.00 if you’re late 
• Time boxed to fifteen minutes! (Standing up, facing each other
in a circle helps…)
• The Team and the Scrum Master only “speaking” participants
• Three questions for each team member:
– What Sprint Backlog Item are you working on?
• aka “What did you work on in last 24 hours?”
– How many hours are left on your current SBI?
• aka “What will you have done by tomorrow’s scrum?”
– What are your impediments? (blocking issues)
• aka “What will hold you back in the next 24 hours?”
Process 3: Daily Scrum
• For synchronizing team, not problem solving
– Goal is to move team/project forward to delivering on
the commitment of the sprint (demo of shippable product
increment)
– Identify obstacles that must be removed
– May follow daily scrum with problem-solving meeting
involving only relevant team members
• End of daily scrum: review the Sprint Burndown
Chart
– Extremely visible reminder of where the team stands
relative to the commitment it has made
– Motivates team to self-organize so as to meet the goal…
Scrum Elements
Conchango
Artifact 3: Sprint Burndown
• The Sprint Backlog represents a commitment to a
given set of business scenarios (product backlog
items) to be delivered/demoed at end of Sprint
• It represents an estimated amount of work (in ideal
hours) to complete
• During the sprint, the ideal would be linear decline
in work remaining with each day…
– But often SBI estimates are wrong
– Impediments arise / Unexpected tasks are discovered
• The team needs daily view of the velocity to
manage to the sprint commitment
Artifact 3: Sprint Burndown
900
800
700
•Primary (sole?) status
communicator during Sprint
762
664
619
304
264
180
104
20
3/
2
5/ 00
5/ 2
2
5/ 002
7/
2
5/ 00
9/ 2
5/ 200
11 2
5 / /2 0
13 02
/
5/ 200
15 2
/
5/ 200
17 2
5 / /2 0
19 02
/
5/ 200
21 2
5 / /2 0
23 02
/
5/ 200
25 2
/
5/ 20
27 02
/
5/ 200
29 2
5 / /2 0
31 02
/2
00
2
600
500
400
300
200
100
0
752
•Updated after each Daily Scrum
5/
Remaining Effort in Hours
Progress
Date
•Can create with Excel, or
maintain on flip chart paper
Managing Sprints low-tech
(Henrik Kniberg)
Scrum Elements
Conchango
Team Element 2: Scrum Team
• Self-organizing
– Encourage a forgiveness-later-over-permission-now
culture when it comes to delivery of business value
• Goal is cross-functional team, shared code
ownership
• 4-9 team members
• Team is responsible for selecting and committing to
work within a Sprint
Scrum Elements
Conchango
Team Element 3: Scrum Master
• The Scrum Master is responsible for:
– Success of Scrum in the team & organization
– Establishing (& facilitating) Scrum practices
and rules, shielding the team
and removing obstacles
– Representing management to the
team & vice versa
– Increasing the probability of success by helping the
Product Owner select the most valuable product
backlog - and helping the Team turn that backlog
into functionality
Scrum Elements
Conchango
Process 4: Sprint Review (Demo)
• Team presents to management, customers,
users and the Product Owner the product
increment that has been built during the Sprint
• All product backlog items selected for Sprint
are included in the demo
• Afterward, product backlog might be rearranged, or decision made to release early
(or fail fast)
• Product backlog often makes far more sense
in light of what has been delivered
– Users never know quite what they want until they
see initial versions
– Business realities or business understanding often
change
Scrum Elements
Conchango
Process 5: Sprint Retrospective
• Time boxed to three hours.
• Team, Scrum Master, and (optionally) Product
Owner review the last Sprint
• What went well?
• What can be improved?
• Actionable items are presented to the Product
Owner for prioritization as non-functional
requirements
– We’d be faster with a new build server
– We’d have higher quality with more test data
– Etc.
What is Scrum?
24 hours
Daily Scrum
Meeting
(facilitated by
Scrum Master)
Sprint Backlog
Backlog tasks
expanded
by team
30 day Sprint
Product Backlog
As prioritized by Product Owner
Potentially Shippable
Product Increment
Source: Adapted from Agile Software
Development with Scrum by Ken
Schwaber and Mike Beedle.
Other resources
• Agile Software Development with Scrum
– Ken Schwaber & Mike Beedle
• Agile Project Management with Scrum
– Ken Schwaber
• http://tinyurl.com/tfsscrum (Scrum for Team
System Process Guidance)
Agenda
•
•
•
•
•
VSTS & Lifecycle Management
Whirlwind Scrum Tour
Conchango Scrum Template
eScrum Template (from Microsoft)
VSTS Lightweight Scrum Template (brief)
Conchango Scrum Template
• Where: http://www.scrumforteamsystem.com
• How: Run installer as the “tfssetup” account
– Very little config needed; see portal for admin
• What:
– Work item types, work item queries, reports, and
Sharepoint portal customization to support Scrum!
Conchango Scrum Add-In –
What do you get ? (1)
Conchango Scrum Add-In –
What do you get ? (2)
• Several interesting queries precreated for you…
• You will quickly invent new useful
queries! (Add to “Favorites”)
• Process guidance not fully
packaged & provisioned into each
Sharepoint – it redirects to:
http://scrumforteamsystem.com/
processguidance/v2/ProcessGuidance.aspx
Conchango Scrum Add-In – What do you get ? (3)
Conchango Scrum Add-In – What do you get ? (4)
• Version released October 15, 2008 adds several
engineering related reports:
–
–
–
–
–
–
Build code churn
Build duration
Build quality
Static analysis
Unit tests
Code coverage
• Also adds web-based reports slideshow…
How would you start?
•
•
•
•
•
•
•
•
Establish roles required by Scrum…
Create project in TFS using Conchango SfTFS
Configure TFS-level security
Use portal to define your environment names and team names (if you have
multiple feature teams, etc.)
Query for all sprints and establish start/end dates based on your sprint
length for sprints you will use (delete rest)
Set capacity for your first sprint…
Use Excel integration with TFS to create your Product Backlog (user stories)
Conduct a Sprint Planning meeting to plan first Sprint.
–
•
•
Create your Sprint Backlog Items in TFS (consider using Excel)
Review at least Sprint Burndown during daily Scrum meeting
Update TFS daily after Scrum Meeting with:
–
–
–
Who is working on what (SBIs checked out)
Work remaining
Impediments
Practical Observations
• Accuracy of reports depends highly on:
– Updating “work remaining” fields in SBIs
– Updating states from “Not done”, “In Progress”,
“Done”, etc.
• Someone on the team has to care about process
improvement (not just current status) in order to
create time & process for maintaining accurate
work item transitions
– Problem is rarely that we can’t instrument our development
process (or high friction)
– Problem is that focus on process improvement hard to achieve
• Your team may just rely on PBIs, SBIs, and
Sprint Burndown…
Practical Observations (2)
• Use Excel (TFS plug-in) in Sprint Planning meetings (or use post-it
notes and enter later)
• Use hardcopy from Excel to facilitate daily scrum meetings…(what SBIs
in last 24 hours, how much is left, what impediments…)
• Use Excel after daily scrum to update SBIs
• Use Excel to maintain and re-order Product Backlog
Practical Observations (3)
• You may find for a small team that the
Conchango TFS Scrum template has too much
friction…
• But! If you have a dedicated Scrum Master and
the appetite for process improvement over time,
the investment in “Scrum inside TFS” approach
will be well worth it…
Where is Conchango Scrum
Template headed?
• Version 2.1 was released in March 2008 with
support for TFS 2008
– True use of Areas/Iterations
– Better WSS portal experience
• Version 2.2 was released October 15, 2008
– Additional engineering-focused reports!
– Report slideshow view; various fixes
• Support is active on ScrumForTeamSystem.com
forums – large user community; questions
answered quickly
Conchango SfTS Task Board
• Announced previews in June 2008…
• Released as of December 2008
• Idea is to bring all the efficiency of the physical
task board approach to TFS…
• May require license
eventually
(Demo)
Agenda
•
•
•
•
•
VSTS & Lifecycle Management
Whirlwind Scrum Tour
Conchango Scrum Template
eScrum Template (from Microsoft)
VSTS Lightweight Scrum Template (brief)
Microsoft eScrum Template
• What:
– “eScrum is a Web-based, end-to-end project
management tool for Scrum built on the Microsoft
Visual Studio Team Foundation Server platform. It
provides multiple ways to interact with your Scrum
project: eScrum Web-based UI, Team Explorer…”
•
•
•
•
Where: http://tinyurl.com/escrum
Install the MSI, run the configuration utility
Create a project with the eScrum template
Add new project to “RegisteredGroups.xml” in
the eScrum virtual directory
Microsoft eScrum Template
• Released on 6/13/07 (and again on 7/11/07) &
can feel a bit rough at times
• 1.1 released 8/9/2008 for TFS2008
– Much improved install experience over 1.0
• But web UI is compelling in that it:
– Is easier for non-VS.NET users to grasp
– Provides reasonable flow to facilitate Scrum sprintplanning (as opposed to TFS Web Access)
• Web UI allows parallel maintenance of Scrumbased work items with VS.NET/Team Explorer
Microsoft eScrum Template
• Microsoft will continue to invest in MSF for
Agile/CMMI – the MSF team continues to believe
there is value they can bring with that process
– Expect that MSF will more formally integrate
engineering disciplines, especially those supported
by Team System tooling
• eScrum is not currently supported (as MSF
would be) – it is offered “as is”
eScrum – what do you get?
eScrum – what do you get?
• Bugs are distinct from Sprint Tasks
(though they may be linked)
• No process guidance as such. For
scrum reference, see:
http://scrumforteamsystem.com
• See
http://yourserver/eScrum/help/helpwindow.aspx
for detail on using eScrum itself
• Sharepoint Portal has configured
lists for things like risks, product
owner to-dos, etc.
eScrum – what do you get?
eScrum – Web UI demo
eScrum vs. Conchango
• Conchango has complete process guidance to
support their template, including multimedia
with Ken Schwaber. Focused mostly on Scrum
as a process…
• eScrum has a light reference on using eScrum
itself, assuming knowledge of Scrum.
eScrum vs. Conchango
• eScrum treats TFS project as corresponding to
logical team that may have multiple products
(and hence multiple product backlogs)
– Impacts Web UI more than anything
– Products correspond to TFS area
– Conchango PBIs can uses ‘areas’ for this purpose
• eScrum puts more emphasis in tracking time
spent on tasks, and how estimates change
over time vs. baseline
eScrum vs. Conchango
• eScrum has a full ajax-based web user interface
that offers a good workflow for sprint planning
and managing daily sprints…
– Conchango: can add codeplex.com/scrumdashboard
• Conchango has longer history with their
template; lots of accumulated forum discussion
• Conchango has far more active development
going on, and appears headed in a great
direction with the WPF-based Task Board
• Guidance: Choose eScrum only if you really
want/need a OOB Scrum-focused Web UI
VSTS (Light-Weight) Scrum
• Created and maintained by Team System MVPs
– Codeplex.com/VSTSScrum
• Light-weight version of the Scrum process
template
– “Well suited for small to medium team projects”
• Good process guidance built-in – using local
SharePoint
• Optimizes install experience
• Simple work items; simple reports
• Offers integration with Project Server
Summary
• TFS can help an organization enact process…
• Process templates are completely extensible and
customizable
• Scrum has great industry momentum has a
project management methodology
• TFS community has responded with several
choices for using scrum within TFS
• Watch Rosario…the built-in process templates
are a much better match with Scrum
Thanks…Questions ?
Up-to-date burndowns…