540 likes | 837 Views
FT09. Scrum in the Enterprise with Microsoft Visual Studio 2010. Simon Bennett Managing Consultant, EMC Consulting Certified Scrum Trainer / Practitioner. Agenda. What is Scrum? What do we mean by “Enterprise Scrum”? Applying Scrum with VS 2010 Multi Team Configuration (Demo)
E N D
FT09 Scrum in the Enterprise with Microsoft Visual Studio 2010. Simon Bennett Managing Consultant, EMC Consulting Certified Scrum Trainer / Practitioner
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 Deployment • Install – drops the bits • Deploy – pushes the template to the Team Project Collections of your choice • Create – your empty project • Configure – set up the standard template to fit the project & Team Environment
TFS 2008 • We could link WIT’s • But in a “flat” structure • Relationships were implicit
Forget Flatland Visual Studio 2010
Work Item Hierarchy Example Product Backlog Item Sprint Backlog Task Implemented By Tested By Impeded By Acceptance Test Impediment
Relationships are bi-directional Product Backlog Item Sprint Backlog Task Implements Tests Impedes Acceptance Test Impediment
Adding a Linked Work Item • You must select the correct Link Type and Work Item Type when adding a linked item.
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 Work Items Release ImplementedBy ImplementedBy Sprint Implements Team Implements
Looks complex, but it can easily handle This Or even this
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
ATDD in practice Tested By Failed By AcceptanceTest ProductBacklogItem BugReport Tested By AcceptanceTest
After a PBI is “Done” Bugs are prioritised by the Product Owner not QA BacklogItem Highest Priority We need these done in 30 days! Bugs are a normal part of the planning process, and are prioritised just like PBI’s. Bug BacklogItem BacklogItem These aren’tcritical, but it would be nice. Bug Bug BacklogItem This bug isn’thurtinganybody. BacklogItem Lower Priority Bug
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 Fails Scheduled BugReport ProductBacklogItem AcceptanceTest Test for a class of desirable behaviour Container for Scheduling + Statement of Value to the Business Description of an instance of Negative Application Behaviour
Building an incremental regression suite • The Product Backlog Item Lifecycle Done Not Started In Progress Broken Deprecated
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
FT09 Process Customization with Microsoft Visual Studio 2010 Stuart Preston stuartpreston.net/blog
Agenda • Process Template anatomy • Implementing Link Hierarchy • Team Foundation Server extensibility • Summary
Process Template Anatomy Microsoft Visual Studio Team Foundation Server 2008 Sharepoint/WSS Version Control Reports Work Item Tracking
Process Template Anatomy Microsoft Visual Studio Team Foundation Server 2010 Sharepoint/WSS Version Control Reports Work Item Tracking Lab Management Hierarchical Link Types Build Test Management
Process Template Anatomy Microsoft Visual Studio Team Foundation Server 2010 Work Item Tracking Hierarchical Link Types
Inside The Template: Work Item Tracking TypeDefinitions LinkTypes Queries
ImplementedBy.xml Product Backlog Item • <?xmlversion="1.0" encoding="utf-8"?> • <LinkTypes> • <LinkTypeReferenceName="Scrum.ImplementedBy" • Topology="Tree" • ForwardName="Implemented By" • ReverseName="Implements“ /> • </LinkTypes> Implemented By Sprint Backlog Task Implements Tree = Parent/Child relationship
ImplementedBy.xml ? • <?xmlversion="1.0" encoding="utf-8"?> • <LinkTypes> • <LinkTypeReferenceName="Scrum.ImplementedBy" • Topology="Tree" • ForwardName="Implemented By" • ReverseName="Implements“ /> • </LinkTypes> Implemented By ? Implements
How to only show specific links • <TabLabel="Implements"> • [...] • <WorkItemLinkFiltersFilterType="include"> • <FilterLinkType="Scrum.ImplementedBy" FilterOn="reversename" /> • </WorkItemLinkFilters> • <WorkItemTypeFiltersFilterType="include"> • <FilterWorkItemType="Product Backlog Item" /> • </WorkItemTypeFilters> • <ExternalLinkFiltersFilterType="excludeAll"/> • [...]
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.
demo Team Foundation Server notifications
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 Systemwww.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