Leveraging TFS for Driving Process Improvement using Lean Principles

Download Leveraging TFS for Driving Process Improvement using Lean Principles

Post on 25-Jan-2017

485 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li><p>Leveraging TFS for Driving Process Improvement using Lean Principles</p><p>Lean and Agile Learning Network ChicagoApril 28, 2015</p><p>Chandra MohanSrini Kadiam</p></li><li><p>Introductions</p><p>Mohan Ganesan- Passionate About</p><p> Process Improvements</p><p> Building Automation Tools to enable Sustainable Process Improvements</p><p>Srini Kadiam- Passionate About</p><p> Teams and Building High-Performance Teams</p><p> Agile Engineering &amp; Delivery Practices Adoption</p></li><li><p>Overview</p><p> Experience report in using TFS to process improvements</p><p> Time period: Jan, 2014 to March, 2015</p><p> Organization: At an organization that provides services to the healthcare providers</p></li><li><p>Context</p><p>- Transitioning to Scaled Agile Framework</p><p>- Team size increased by 3 times in 6 to 8 months</p><p>- Distributed Teams</p><p>- Portfolio and Program Teams in US and Project Teams in India</p><p>- Investments in New Products</p><p>- Focus on stabilizing the existing Platform</p></li><li><p>Summary</p><p>Problem Statement- No shared understanding of </p><p>workflow</p><p>- No proper tools to support Agile processes</p><p>- Lack of measurement for the Flow</p><p>- Release Quality is not great and not consistent</p><p>Our Approach- Dedicated ALM Team</p><p>- TFS as not only Version Control Tool</p><p>- Maximize TFS Usage</p><p>- Set up TFS Test Environment</p><p>- Collaboration and Training</p><p>- Customize TFS to support workflow</p><p>- Applying lean and Kanban principles</p><p>- Augmenting with custom tool</p><p>Applications- Scrum Framework</p><p>- Release Workflow</p><p>- Business Process Workflow</p></li><li><p>Lean and Kanban Guiding Principles</p><p>Lean 1 Kanban 2</p><p>Eliminate waste Visualize the workflow</p><p>Amplify learning Limit Work in Progress (WIP)</p><p>Decide as late as possible Manage flow</p><p>Deliver as fast as possible Make process policies explicit</p><p>Empower the team Improve collaboratively</p><p>Build integrity in</p><p>See the whole</p><p>1. Lean Software Development - http://en.wikipedia.org/wiki/Lean_software_development2. Kanban Development: http://en.wikipedia.org/wiki/Kanban_(development)</p><p>Green: Focus Areas</p></li><li><p>Visualize - SAFe</p><p>Visibility at Portfolio and Program Level. Support for SAFe</p></li><li><p>Visualize Process ALM, Take 1</p><p> ALM in Kanban board</p><p> Customizable board per team</p><p> Great for small team</p><p> Limited support for complicated workflow</p><p> Limited support for multi-team workflow visualization</p><p> We FAILED</p><p> We pivoted our approach </p></li><li><p>Visualize Process ALM Team Collaboration</p><p>ALM team Collaborated with ScrumMasters- Workshop for training on TFS- Understand each teams specific needs- Learning from each other- Requirements for standardized reporting- Empower ScrumMaster as champions for driving improvements- Building the backlog</p><p>Standardized Visual Reporting (no customizations)- Blockers / Impediments- WIP / completed tasks- Reporting on daily scrum standup questions</p><p>Result- All teams are on the same page- Standardization and removing variances</p></li><li><p>Visualize Entire ProcessMeeting Operational, Support and other dev teams to </p><p>- Understand their workflow- Educate on TFS- Migrated version control to TFS- Created a workflow for their teams</p><p>Customize Workflow / Business Process for each team</p><p>- Adding custom fields- Explicit policies for each state</p><p>We have most of the teams using TFS now</p></li><li><p>Manage the Flow</p><p>Portals For Each Team- Information radiators</p><p>- Collaboration and communication</p><p>- Brings team together</p><p>- Explicit rules for each state</p><p>Entire ALM is Managed Through TFS- Real-time data. No emails</p><p>- Better metrics</p><p>- Team has data and time to make the right decisions</p></li><li><p>Building on TFS Bridging the Gap</p><p>- Limited and rigid reporting capability in TFS</p><p>- Custom Tool to report and automate manual tasks</p><p>- Features of this tool Self-serviced</p><p> Real-time</p><p> All data is from TFS</p></li><li><p>Benefits Business Process Automation</p><p>- Automated creation of DOD tasks</p><p>- Code review reports</p><p>- Deployment reports</p><p>- Agility reports</p><p>- Story life cycle reports - Cycle time between states</p><p>- Capacity utilization reports - By developers</p><p>- Branch comparison reports</p><p>- Post-Release Issues</p></li><li><p>Improvements Summary (1)Activity Before After Result</p><p> Code reviews Inconsistent Not-verifiable 100% feedback not possible</p><p> Real time Verifiable Built into workflow &lt; 5 min to generate</p><p> Time Savings Eliminate waste Improved Quality Transparent Accessible to SM</p><p> Creating Story Definition of Done Tasks</p><p> Manual Inconsistent</p><p> Managed by SM &lt; 5mins to generate</p><p> Time Savings Eliminate waste Standardization Consistency among teams</p><p> TFS Customizations Was not done due to lack of Test Environment</p><p> Lack of confidence</p><p> TFS Test Environment allowed to test, validate and improve</p><p> Build in-house expertise</p><p> Rapid customizations Playground for teams to </p><p>experiment</p><p> DLL Versioning through TFS Build</p><p> Basic Configuration is missing Troubleshooting Deployment </p><p>issues is not reliable Too many teams are involved in </p><p>troubleshooting Lacking in verification step for </p><p>deployment validation</p><p> DLLs are versions based on the release branch and build number</p><p> Easy to troubleshootdeployment issues</p><p> Visibility to version info on servers helps to identify potential issues</p></li><li><p>Improvements Summary (2)Activity Before After Result</p><p> Basic Sprint Reports</p><p> Inconsistences among the teams v Consolidated reports are difficult to </p><p>create due to variations</p><p> Standardized reportsfrom tool</p><p> &lt; 5mins to generate</p><p> Consistency among teams Variations are eliminated Time Saving</p><p> Utilization Reports Inconsistences among the teams in report creation</p><p> Incomplete data Unable to complete due to data </p><p>limitations</p><p> Standardization among teams</p><p> Real time &lt; 5mins to generate </p><p>resulting in early feedback</p><p> Self-service reports. Any one create reports</p><p> Better data leads to learning Better resource utilization </p><p>usage</p><p> Advanced SprintCommitment Reports</p><p> Difficulty in creating reports. Each report can take up to 4hours to create manually</p><p> Inconsistences among the teams in report creation</p><p> Standardization Real time reports &lt; 5mins to create</p><p>advanced time</p><p> Team members can create these reports leaving Scrum Master focus on helping reams</p><p> Reports are self-service. No waiting </p><p> QA Story TestingReports</p><p> Tracked manually Incorrect and data is prone to errors Too much time to consolidate and report</p><p> Tracked within TFS Real time report</p><p> Transparency Better change control </p><p>documentation Waste eliminated</p></li><li><p>Improvements Summary (3)Activity Before After Result</p><p> Impediments Tracking Done Manually Lack of visibility</p><p> Tracked within TFS Quick removal of impediments Historical data is preserved for further </p><p>analysis</p><p> Tracking Regression Testing</p><p> Done manually Lack of visibility People are waiting for </p><p>information</p><p> Data is available in TFS Wait time is removed Visibility to all stakeholders</p><p> Release Scope Tracking Done in TFS but not reported across all teams</p><p> Managed using Excel </p><p> Reporting is now based on all teams</p><p> Better resource planning for Release Candidate</p><p> Better resource planning</p><p> Redeployment Requests</p><p> Communicated via emails Done via PULL system Reduce the noise Data for further analysis</p><p> Redeployment Report Time consuming to create Take up to 4 hours to </p><p>create</p><p> &lt; 5 min to create Real time</p><p> Identify stories which have gap in gap in understanding. Teams can learn from it and improve further</p><p> Leading indicators for potential issues. Team can take pro-active steps to mitigate issues</p></li><li><p>Improvements Summary (4)Activity Before After Result</p><p> Business Approvers Testing and Approval</p><p> Done manually via email Approval tracking is time </p><p>consuming Takes up to several days for </p><p>follow-up and tracking </p><p> Tracked via TFS Dashboard &lt; 5 min for status &lt; 15 for follow-up Business Approvers use </p><p>PULL system for identifying stories for testing</p><p> Early visibility to resources needed Real time data Capturing state changes Conversation and tracking approval</p><p> Tracking Post-Releases Tracked in Excel and in Emails</p><p> Lack of correlation to actual changes</p><p> Tracked in TFS and transparent</p><p> &lt; 5mins to generate the post-release issues report</p><p> Can be tied to actual changes Valuable information to learn from </p><p>and improve upon</p><p> Branch Variance Detection</p><p> Done manually Done late</p><p> Done daily using automated process</p><p> Avoiding late code merges Better code quality and prevent </p><p>regressions</p><p> Single Source of Truth Data is dispersed in too many places</p><p> Most of the data is in TFS System behavior can be measure and adjusted</p><p> Visibility to the Process Limited visibility to the whole process</p><p> Process is not transparent</p><p> End to End Release Process is transparent</p><p> All other systems have to be configured to use TFS as single source of Truth</p></li><li><p>Improvements Summary (5)Activity Before After Result</p><p> Alerts on State Changes</p><p> Not Available Done via emails </p><p> Being piloted in small teams</p><p> Real time notifications</p><p> Workflow for Operational Teams</p><p> Tracked in Excel TFS Workflow being is used</p><p> Capacity Planning Transparency Time saving</p><p> Portfolio and Program Level Tracking</p><p> Done in Manually Tracked used TFS SAFe capabilities</p><p> Transparency Real time information</p><p> Project Management Tracking</p><p> Done in MS Project TFS is being pilot to represent</p><p> Saving in license costs Real time integration with work </p><p>being done</p><p> Release Status Updates</p><p> Done in emails No emails. Real time information</p><p> Tremendous saving in time. Lot of noise eliminated</p><p> Release Go / No GoDecision</p><p> Subjective Based on data in TFS Transparent Repeatable</p></li><li><p>Key TakeawaysProcess alone is not sufficient for improvements</p><p>- Augment with tools to measure, learn and improve</p><p>TFS can be used- As a process improvement tool. Beyond Version control and Agile PM</p><p>- By stakeholders. Beyond Dev Teams. Microsoft has freed licenses to be used stakeholders</p><p>- Implement workflow. Business can easily be implemented</p><p>Invest in tools- As a learning tool</p><p>- Standardize and remove variations</p><p>- Self-serving</p><p>- Scaling</p><p>Setup TFS Test Environment- Learn, Fail-fast and Fail-Safe</p><p>Most Important - Put Right People, Connect Passion and Strengths to Organization Goals, Empower, Trust and Support Them</p></li><li><p>Sample ALM ReportsLean and Agile Learning Network - Chicago</p></li><li><p>Sprint Story Status Report</p><p> Snapshot of the Stories in any Sprint for any team</p><p> Story Status from different teams perspective</p><p> Used by Product Leads, Scrum Masters, Team Leaders and other stake holders</p><p> Purpose: Bring visibility to stories that have potential for slippage or not getting into Release</p><p>Sprint &amp; Date Story ID and Description Story Points Tags/ Comment Story Owner Dev Story Owner QA Test Case Status Development Status QA Satus PO Story Signoff Story Delivery Date to QA</p><p>Story 1 8 N/A Developer 1 N/A N/A In Progress To Do To Do</p><p>Sprint 1 - 1/1/2015 Story 2 5 N/A Developer 2 QA 1 Done In Progress To Do N/A</p><p>Story 3 8 N/A Developer 3 QA 2 Done In Progress To Do To Do</p><p>Story 4 0 N/A N/A N/A N/A N/A N/A N/A</p></li><li><p>Committed vs Delivered Report</p><p> Committed vs Delivered Report across all the teams</p><p> Purpose: Ease of generation. One report covering all the teams. Consistent way to determine what is Done across the teams</p><p>Committed Vs Delivered Report</p><p>Team Iteration Path Committed Delivered Ratio: Committed Vs Delivered</p><p>Team A Release Path 50 50 100</p></li><li><p>Process Metrics Report</p><p> Summary of # of Stories and Points Completed in a Sprint</p><p>Process Metrics Report</p><p>Team Sprint Story Committed Story Completed Story Point Committed Velocity Story Spike Story Stretch</p><p>Test A Sprint 10 33 9 101 31 2 2</p></li><li><p>Story Report by Task &amp; HoursSprint High Level Analysis Report</p><p>Sprint# StoryId Title Story Points Story CommittedStory Completed Hours Estimated Hours Spent</p><p>Deployment (Hrs) Design (Hrs) Development (Hrs) Testing (Hrs) Requirements (Hrs) Documentation (Hrs)</p><p>Sprint 12100 Story 1 5 Yes Yes 53 51 0 0 35 16 0 0</p><p>101 Story 2 1 Yes Yes 20 20 0 0 5 15 0 0</p><p>102 Story 3 1 Yes Yes 14 12 0 0 6 6 0 0</p><p>103 Story 4 2 Yes Yes 25 28 0 0 14 14 0 0</p><p> Reporting Tasks and Hours for each story</p><p> Provides insight into story activities and discipline in the delivery</p></li><li><p>Release Metrics</p><p> Release Status By Team</p><p> Deployment Reports Readiness by Team</p><p> Completed by Team</p><p> Business Owner Signoff Status</p></li><li><p>Testing Status Reports</p><p> UAT Testing Status. More of pull model</p><p> Summary of Testing by Teams</p><p> Similar Reports for Business Owner for Sign-offs</p><p> All data is captured</p></li></ul>