• Like
Session #1: Development Practices And The Microsoft Approach
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Session #1: Development Practices And The Microsoft Approach

  • 1,523 views
Published

Session #1: Development Practices And The Microsoft Approach …

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,523
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
79
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Development Best Practices Concepts & Microsoft’s Approach
  • 2. Agenda Collaborate & Manage Team Drive Team Communicate Workflow Predictability Ensure Make Real- Integrate Quality Early Time Frequently & Often Decisions & Microsoft’s Approach
  • 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. 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. Collaborate & Communicate • Remove barriers that create inter-role disconnects – Stakeholder>Developer – Developer->Tester – Interpret != Implement • Centralized, extensible artifact repository
  • 6. Manage Team Workflow • Efficient Management of Work Elements – Tasks, Defects, Requirements, etc. • Enable Traceability – What came from what? • Audit support
  • 7. Drive Predictability • Clearly Define a Process – Proven – Realistic – Repeatable – Enforceable • “Baked” into systems • Leverage existing, familiar tools
  • 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. Integrate Work Frequently • Continuous Integration • Robust version control – Integrated with defect & task tracking systems • Automated testing – Unit Testing – Functional Testing – Load Testing
  • 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. 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. 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. Development Best Practices Microsoft’s Approach
  • 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. Visual Studio Team System Application Lifecycle Management (ALM) Solution
  • 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. 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. 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. Team System: The Ideal Solution Tool Architect Developer Tester PM Stakeholder X X Team Suite X X Web Portal X
  • 20. Collaborate & Communicate • Team Foundation Server – A unified project server Developer Database Designer Professional Architect Tester Project Business Manager Analyst
  • 21. Project Manager Developer Work Items Architect Tester Database Developers Users & BA’s
  • 22. Work Item Tracking • Manages any “item of record” • Extensible (fields, dialogs, workflow) • Accessible
  • 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. Drive Predictability • Integrated process templates help deliver predictable results
  • 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. Ensure Quality, Early & Often Unit Testing Load Database Testing Testing Quality Tools for All Functional Profiling testing Code Analysis
  • 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. Ensure Quality, Early & Often Development
  • 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. Ensure Quality, Early & Often Testing • Record Web Tests from Internet Explorer
  • 31. Ensure Quality, Early & Often Testing • Data driven tests • Validate returned data • Generate Code for the test (C#, VB, …)
  • 32. Ensure Quality, Early & Often Testing
  • 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. 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. Integrate Work Frequently Build Reports
  • 36. And More is on the Way! TEAM SYSTEM 2010
  • 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. 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. Summary • Microsoft’s Application Lifecycle Solution • Effective, Quality Toolset • Integrates with Existing Tools • Promotes Collaboration