Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Session #1: Development Practices And The Microsoft Approach


Published on

Session #1: Development Practices And The Microsoft Approach
Presented by: Steve Lange

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Session #1: Development Practices And The Microsoft Approach

  1. 1. Development Best Practices Concepts & Microsoft’s Approach
  2. 2. Agenda Collaborate & Manage Team Drive Team Communicate Workflow Predictability Ensure Make Real- Integrate Quality Early Time Frequently & Often Decisions & Microsoft’s Approach
  3. 3. Team-Related Mistakes • Performing tasks without perceived value • Shipping low quality • Bad deadlines, estimates, and requirements • Not enough feedback and going dark • Death marches
  4. 4. Signs of a Great Team Intensely happy team members • Momentum and velocity • Joint ownership and pride • Amazing software—on time • and on budget And this is why…
  5. 5. Collaborate & Communicate • Remove barriers that create inter-role disconnects – Stakeholder>Developer – Developer->Tester – Interpret != Implement • Centralized, extensible artifact repository
  6. 6. Manage Team Workflow • Efficient Management of Work Elements – Tasks, Defects, Requirements, etc. • Enable Traceability – What came from what? • Audit support
  7. 7. Drive Predictability • Clearly Define a Process – Proven – Realistic – Repeatable – Enforceable • “Baked” into systems • Leverage existing, familiar tools
  8. 8. Ensure Quality, Early & Often • Quality-Centric Tools – Integrated throughout lifecycle – Reduces overall project cost Planning Design Development Testing Lifecycle • Work Tracking • System Modeling • Unit Testing • Scheduled Builds • Requirements • Deployment Modeling • Database Testing • Load Testing • Scenarios • Static Code Analysis • Web Testing • Tasks • Performance Profiling • Continuous Integration
  9. 9. Integrate Work Frequently • Continuous Integration • Robust version control – Integrated with defect & task tracking systems • Automated testing – Unit Testing – Functional Testing – Load Testing
  10. 10. Integrate Work Frequently Build Automation • Consider build customers Development team – Testing team – Force a sync point across these roles External adopters – Act as checkpoint between dev and test Customers – • Build scenarios Compile, run tests, gather metrics – Manual Heartbeat and heath check – Scheduled Critical to reporting and feedback Couple with gated check-in – Continuous
  11. 11. Make Real-time Decisions • Open the “Black box” of the lifecycle – Comprehensive business intelligence reporting system • Real-time data • Enabling critical decision making • Readily Accessible
  12. 12. Layering Best Practices Process and tools support individuals, teams and organizations frictionlessly and transparently Overcome Complexity Collaboration Clarity Quality Mindset Transparency Alignment Culture of Innovation Integration Efficiency Highly integrated Productive Extensible Low administration Agile Customizable Lightweight Patterns and practices Flexible
  13. 13. Development Best Practices Microsoft’s Approach
  14. 14. Microsoft’s Approach Collaborate & • Team Foundation Server Communicate Manage Team • Work Item Tracking Workflow Drive Predictability • Process Guidance & Automation Ensure Quality, Early • Comprehensive Testing & Often Integrate Work • Version Control Frequently • Team Build Make Real-Time • Integrated Reporting Decisions • Extensible
  15. 15. Visual Studio Team System Application Lifecycle Management (ALM) Solution
  16. 16. Visual Studio Team System Visual Studio Team Suite Software Software Database Software Visual Visual Architects Developers Professionals Testers Studio Studio Team Industry Application Performance Database Code Analysis Explorer Partners Modeling Testing Deployment Performance Database MSF Process and Guidance Infrastructure and Manual Testing Tuning Change Mgmt. Deployment Modeling Test Case Database Security Analysis Management Testing Unit Testing Code Coverage Class Modeling (TFS Client Access License) Visual Studio Professional Edition Load Test Agent Visual Studio Team Foundation Server Change Management Reporting Integration Services Work Item Tracking Project Site Project Management
  17. 17. Today: Disparate Tools Tool Architect Developer Tester PM Stakeholder Version Control X X X X Defect Tracker X X X X X Task Tracker X X X X X IDE X X Modeling Tool X X Unit Tester X X UI Tester X X Load Tester X Test Manager X Web Portal X X X X X Reporting Tool X
  18. 18. Team System: Role-based Capabilities Tool Architect Developer Tester PM Stakeholder Team Architect X Team Developer X Team Tester X MS Project/Excel X Web Portal X
  19. 19. Team System: The Ideal Solution Tool Architect Developer Tester PM Stakeholder X X Team Suite X X Web Portal X
  20. 20. Collaborate & Communicate • Team Foundation Server – A unified project server Developer Database Designer Professional Architect Tester Project Business Manager Analyst
  21. 21. Project Manager Developer Work Items Architect Tester Database Developers Users & BA’s
  22. 22. Work Item Tracking • Manages any “item of record” • Extensible (fields, dialogs, workflow) • Accessible
  23. 23. What is in a Work Item? • Description • Title Proposed • Current State Active Active • Attachments Scenario Tasks Bugs • Who it is assigned to Resolved Resolved • Links to other Work Items • Full Audited history Closed Closed • Anything else you want …
  24. 24. Drive Predictability • Integrated process templates help deliver predictable results
  25. 25. Process Template Based on Agile CMMI MSF Several 3rd party Scrum RUP Others templates Create your Highly own or modify Editor XML based Flexible included an existing one
  26. 26. Ensure Quality, Early & Often Unit Testing Load Database Testing Testing Quality Tools for All Functional Profiling testing Code Analysis
  27. 27. Ensure Quality, Early & Often Development • Integrated Unit Testing • Integrated Static Code analysis Security Errors – Localisation problems – Memory issues – … – • Integrated Profiler – Performance problems – Memory problems
  28. 28. Ensure Quality, Early & Often Development
  29. 29. Ensure Quality, Early & Often Database Development Take control of database change • Offline, change management of the schema • Refactoring of database objects Automate database testing • Unit testing for Stored Procs • Automatic generation of meaningful test data Bring data professionals into the lifecycle • Work Item tracking for database changes
  30. 30. Ensure Quality, Early & Often Testing • Record Web Tests from Internet Explorer
  31. 31. Ensure Quality, Early & Often Testing • Data driven tests • Validate returned data • Generate Code for the test (C#, VB, …)
  32. 32. Ensure Quality, Early & Often Testing
  33. 33. Integrate Work Frequently Full featured version control system Continuous Integration Scheduled Builds Relate work item to check-in Check-out on Edit Labeling Annotation Shelving Policy-based Check-in
  34. 34. Integrate Work Frequently Build Automation • Team Build – Extension of MS Build • Continuous Integration, scheduled, ad-hoc • Provides build reporting back to TFS • Integrates testing
  35. 35. Integrate Work Frequently Build Reports
  36. 36. And More is on the Way! TEAM SYSTEM 2010
  37. 37. Agile Project Planning 1-click Custom Excel reports End to End Traceability Database Edition merged into Development Stunning New Reports TFS Administration w/MMC New Dashboards Visual Studio Team System 2010 Gated Checkin Branch Visualization Test Planning Scalability ++ Distributed Build Windows Test Execution Workflow Integration Manual Test Runner Build Activity Diagram Use Case Diagram Test Impact Layer Diagram Analysis Modeling Projects Logical Class Diagram Coded UI Test Architecture Component Diagram Explorer Sequence Diagram Historical Debugging
  38. 38. Team System at Microsoft Over 15,000 active users Over 3,100 Team Projects • • Over 3.6 million work items 56M+ source code files • • Over 733,000 Builds • 16,000 3,500 14,000 3,000 12,000 2,500 10,000 2,000 8,000 1,500 6,000 1,000 4,000 500 2,000 - - Active Users Team Projects
  39. 39. Summary • Microsoft’s Application Lifecycle Solution • Effective, Quality Toolset • Integrates with Existing Tools • Promotes Collaboration