Scrum in the Enterprise with Microsoft Visual Studio 2010.Simon BennettManaging Consultant, EMC ConsultingCertified Scrum Trainer / Practitioner
FT09
Agenda> What is Scrum?> What do we mean by “Enterprise
Scrum”?> Applying Scrum with VS 2010> Multi Team Configuration (Demo)> Enterprise Bug Modelling> Process Template anatomy> Team Foundation Server extensibility
What is Scrum?> Scrum is a Project Delivery Framework> Both Iterative & Incremental> Based on the Agile Manifesto
> Working Software is the measure of progress
> Harnesses change for competitive advantage
> Multiple “Inspect & Adapt” points> Promotes close customer collaboration
Scrum was designed for small teams> 7 +/- 2 people per team> Single Product Owner> Scrum scales easily up to about 3
teams> Most standard process templates can
support projects of this size> Scrum for Team System 2.2 (TFS
2008) is the most widely used template in this market
Enterprise Scrum> Larger Variation than in single team
Scrum> Need to balance consistency &
adaptability> By supporting varied project
configurations without template modifications
> Multiple indicators:> More than 30 developers on a single
project> Multiple PO’s / Work Streams / BU’s> Inter woven cadence
Supporting Enterprise Scrum in 2010> Acceptance Test Driven Development> Hundreds of Teams, dynamically
adjustable> Working in different cadences> Starting on different days> Or in different time zones
> Flexible Bug Modelling> Integrated with Test & Lab Manager
> All integrated into one great ALM solution
Enterprise Friendly Deployment1. Install – drops the bits2. Deploy – pushes the template to the
Team Project Collections of your choice
3. Create – your empty project4. Configure – set up the standard
template to fit the project & Team Environment
Template Deployment Tool
TFS 2008
> We could link WIT’s> But in a “flat” structure> Relationships were
implicit
Forget Flatland
Visual Studio 2010
Work Item Hierarchy ExampleProduct Backlog
Item
Impediment
Acceptance Test
Sprint Backlog
TaskImplemented By
Tested By
Impeded By
Relationships are bi-directionalProduct Backlog
Item
Impediment
Acceptance Test
Sprint Backlog
TaskImplements
Tests
Impedes
Adding a Linked Work Item> You must select the correct Link Type
and Work Item Type when adding a linked item.
So what can you do with that?
Support for ATDD
Inferring Ready
Planning Scope> Builds on the Iteration Path> Allows for complex multi-team
projects> Supported with three Work Item Types> Uses an Event Service to collect
metrics in real time to support Release Planning
Planning Scope Iteration Path
Planning Scope Work Items
Release
Sprint
Team
ImplementedBy
ImplementedBy
Implements
Implements
Looks complex, but it can easily handleThis
Or even this
Supported by all the standard Reports
Teams Starting on Different Days
That looks hard & complex!> It is. (Well complex anyway)> But real life enterprise projects are
complex> Thankfully there is help from the
ScrumMaster’s workbench> Easier to create a project now than in 2.2
> 3.0 Projects start empty
Project Configuration
DEMO
Bugs
ATDD in practiceProductBacklogItem
BugReportFailed By
Tested ByAcceptanceTest
AcceptanceTestTested By
After a PBI is “Done” Bugs are prioritised by the Product Owner not QA Backlog Item
Bug
Backlog Item
Backlog Item
Bug
Bug
Backlog Item
Backlog Item
Bug
Highest Priority
Lower Priority
Bugs are a normal part of the planning process, and are prioritised just like PBI’s.
We need these done in 30 days!
These aren’tcritical, but itwould be nice.
This bug isn’thurtinganybody.
The implication is...> That a lot of the time, developers
can’t “fix” a bug> In many organisations, a bug only
specifies an opinion on pre-existing incorrect behaviour
> It follows that the PO must inspect and modify all bugs to ensure that they describe not just the problem, but also the desired behaviour.
Scheduling Bug Fixes
ProductBacklogItem
BugReportFailsAcceptance
TestScheduled
Description of an instance of Negative Application Behaviour
Test for a class of desirable behaviour
Container for Scheduling + Statement of Value to the Business
Building an incremental regression suite> The Product Backlog Item Lifecycle
Not Started
In Progress Done
BrokenDeprecated
In Summary> Enterprise Scrum Solution> Multiple PO / Workstream support> Supports Vast Numbers of teams
> Starting on different days> Working to different cadences> All supported by standard reports
> Support for ATDD & Regression Testing> “Always Accurate” Historical Backlog
Process Customization with Microsoft Visual Studio 2010Stuart Prestonstuartpreston.net/blog
FT09
Agenda> Process Template anatomy> Implementing Link Hierarchy> Team Foundation Server extensibility> Summary
Microsoft Visual Studio Team Foundation Server 2008
Work Item Tracking
Version Control Reports Sharepoint/
WSS
Process Template Anatomy
Microsoft Visual Studio Team Foundation Server 2010
Process Template Anatomy
BuildHierarchical Link Types
Lab Manageme
nt
Test Manageme
nt
Work Item Tracking
Version Control Reports Sharepoint/
WSS
Microsoft Visual Studio Team Foundation Server 2010
Process Template Anatomy
Hierarchical Link Types
Work Item Tracking
Inside The Template: Work Item Tracking
LinkTypes Queries TypeDefinitions
ImplementedBy.xml
<?xml version="1.0" encoding="utf-8"?><LinkTypes> <LinkType ReferenceName="Scrum.ImplementedBy"
Topology="Tree" ForwardName="Implemented By" ReverseName="Implements“ /></LinkTypes>
Product Backlog
Item Sprint Backlog
Task
Implements
Implemented By
Tree = Parent/Child relationship
ImplementedBy.xml
<?xml version="1.0" encoding="utf-8"?><LinkTypes> <LinkType ReferenceName="Scrum.ImplementedBy"
Topology="Tree" ForwardName="Implemented By" ReverseName="Implements“ /></LinkTypes>
??Implements
Implemented By
Product Backlog Item: Link Tabs
Product Backlog Item: Link Tabs
How to only show specific links<Tab Label="Implements">[...] <WorkItemLinkFilters FilterType="include"> <Filter LinkType="Scrum.ImplementedBy" FilterOn="reversename" /> </WorkItemLinkFilters>
<WorkItemTypeFilters FilterType="include"> <Filter WorkItemType="Product Backlog Item" /> </WorkItemTypeFilters>
<ExternalLinkFilters FilterType="excludeAll"/>[...]
Where do these numbers come from?
Team Foundation Server extensibility> TFS notifications can be Plain Text
email, HTML email or a SOAP message.
> Scrum for Team System installs an ASP.NET web service to handle the message generated when a work item is saved.
Team Foundation Server notifications
demo
What did we cover?> Used the Alerts Editor to create a
subscription> Set the endpoint to be a ASP.NET web
service with a Notify web method> “Do something” with the inbound
message> Text message when a Work Item is saved
with a certain state.> Send a tweet through the Twitter API
when your build completes.
Scrum for Team System calculated fields> Rules stored in customizable XML files> Default rules allow cover common
scenarios> Set “parent” Product Backlog Item state
to “Done” when all Acceptance Tests pass.
> Sum the work remaining for a Product Backlog Item based on linked Sprint Backlog Items.
> Divide two fields on the same form to calculate the Return on Investment field.
> Modify the XML rules yourself and even write a Custom Processor. See http://consultingblogs.emc.com/crispinparker
In Conclusion> With Scrum for Team System 3.0. You
can easily manage multi team Enterprise Scrum projects using Visual Studio 2010
> Integrates with Test & Lab Manager> A richer experience was created by:
> Leveraging the TFS notification mechanism
> Customising Link Types> User Centric design in Team Explorer
elements
References> Scrum for Team System
www.scrumforteamsystem.com> Simon’s blog
consultingblogs.emc.com/simonbennett
> Stuart’s blogstuartpreston.net/blog
> Microsoft Visual Studio 2010 Beta 2 websitemsdn.microsoft.com/en-us/vstudio/dd582936.aspx
YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation
forms online atMicrosoftPDC.com
Learn More On Channel 9> Expand your PDC experience through
Channel 9
> Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses
channel9.msdn.com/learnBuilt by Developers for Developers….
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.