330 likes | 588 Views
TL09. Agile Development with Microsoft Visual Studio . Lori Lamkin Product Unit Manager Microsoft Corporation. Sunder Raman Program Manager Microsoft Corporation. Lori Lamkin Circa 1990. 1990 Top Movie of the Year? Goodfellas 1990 NCAA Football National Champs?
E N D
TL09 Agile Development with Microsoft Visual Studio Lori Lamkin Product Unit Manager Microsoft Corporation Sunder Raman Program Manager Microsoft Corporation
Lori LamkinCirca 1990 • 1990 Top Movie of the Year? • Goodfellas • 1990 NCAA Football National Champs? • University of Washington Huskies and University of Miami Hurricanes • Software Development? • Waterfall
X Lori Lamkin Lori Laminator
Tools For Agility, Kent Beck Practices Tools
demo Test Driven Development Sunder Raman Program Manager Visual Studio Team System
Tools For Agility, Kent Beck Practices Tools
demo Extending Continuous Integration Sunder Raman Program Manager Visual Studio Team System
Application Tier Data Tier Build Resource Pool Version Team Team Build Control Build Database Controller Agent ( s ) Extending Continuous Integration
Tools For Agility, Kent Beck Practices Tools
demo Agile Project Management Lori Lamkin
Making Transparency Work Iteration Backlog Application Tier (AT) Data Tier (DT) Team Foundation Server Queries Team Project Collection DBs Adapters Common Store Test Burndown Build Version Control Warehouse Trends WIT Dashboards Queries Cube Trends Overview
Tools For Agility, Kent Beck Practices Tools
partner Conchango (USE THIS SPACE FOR PRODUCT LOGOS WHEN WHITE BACKGROUND IS REQUIRED) DELETE WHITE RECTANGLES IF NOT BEING USED Colin Bird Chief Technology Officer Simon Bennett Senior Agile Coach
Taskboard – TFS Integration Taskboard Visual Studio Office IE Team Explorer Excel MS Project Client API Team Foundation OM HTTP TF Web Services Scrumfor Team System Reporting Services WSS 3.0 TF Core Services TFS App Tier Scrum Reports Project Portals Scrum WI Events Build Reports Scrum Work Items MS SQL Source Control Build Work Items Reporting Data Tier
Tools For Agility, Kent Beck Practices Tools
Agile Practices at Microsoft • VS 2010 in use since April 2007 • Working software • Quality throughout • Visibility across all the features
Feature Crews • Small Teams • Done Done Lists • Test Driven Development
Visibility Across All The Features • Burndowns • SCRUM of SCRUMs • Course Corrections
Tools for Agility, Kent Beck Practices Tools
Evals & Recordings Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com
Q&A Please use the microphones provided
© 2008 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.
Organization’s Concerns with Agile • Lack of Up Front Planning • Loss of Management Control • Lack of Documentation • Lack of Predictability • Lack of Engineering discipline • Inability to scale
PowerPoint Colors Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill
Individuals and Interactions • Common set of data /starting point • Actionable bugs/repro • Proteus • Code annotation • Working Software • Automation • User acceptance testing • Test planning • Enhanced code analytics • Enhanced build workflow • Customer Collaboration • Requirements elicitation • Responding to Change • Inspect and adapt • Shorter iterations • Flexible scheduling • How does the layer designer or whatnot fit in? • Build differencing • Linking/hierarchy/
12 Principles of “Agile” • early and continuous delivery of valuable software. • Welcome changing requirements • Deliver working software frequently with a preference to the shorter timescale. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • Working software is the primary measure of progress. • The sponsors, developers, and users should be able to maintain a constant pace indefinitely. • Continuous attention to technical excellence and good design enhances agility. • Simplicity--the art of maximizing the amount of work not done--is essential. • The best architectures, requirements, and designs emerge from self-organizing teams. • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Another view • Iterative / agile planningDetermining scope by looking at business requirements and estimates. • RefactoringRestructure the system without changing the behavior to remove duplication or add flexibility • Database RefactoringBroken out separately as tools support has evolved more slowly in this area • Continuous integration buildBuild the product or system as often as possible (on every checkin) to detect failures early and often • Acceptance testingCustomers or customer representatives write automated tests that ensure features and facilities are complete • Team coding standardsAgreed upon upfront and adhered to throughout • System metaphor/user story • Provide an architectural overview of the system with a common vocabulary. A story that anyone involved in the project can tell. • Test driven developmentWrite tests first, then write the smallest amount of code to pass that test. Use this as a way to design your software. • Tools for Capturing Ad-Hoc Decisions / Lightweight Doc StrategyTeam focuses on shipping product, not design documents – tools help quickly capture team decisions and lightweight docs in a way the team can update and refer to • TransparencyProvide direct feedback to individual contributors on test failures, code quality and maintainability • Simple designDesign the system as simply as possible, removing extraneous complexity