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…
© Copyright 2024