Development Best Practices Concepts & Microsoft’s Approach.

Post on 25-Dec-2015

222 views 0 download

Transcript of Development Best Practices Concepts & Microsoft’s Approach.

TEAM SYSTEM: IT’S BIG

Development Best Practices

Concepts & Microsoft’s Approach

Agenda

Collaborate &

Communicate

Manage Team

Workflow

Drive Team Predictabilit

y

Ensure Quality Early

& Often

Integrate Frequently

Make Real-Time

Decisions

& Microsoft’s Approach

TEAM SYSTEM: IT’S BIG

Team-Related Mistakes

• Performing tasks without perceived value

• Shipping low quality• Bad deadlines, estimates, and

requirements• Not enough feedback and going dark• Death marches

TEAM SYSTEM: IT’S BIG

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…

TEAM SYSTEM: IT’S BIG

Collaborate & Communicate

• Remove barriers that create inter-role disconnects– Stakeholder>Developer– Developer->Tester– Interpret != Implement

• Centralized, extensible artifact repository

TEAM SYSTEM: IT’S BIG

Manage Team Workflow• Efficient Management of Work Elements

– Tasks, Defects, Requirements, etc.

• Enable Traceability– What came from what?

• Audit support

TEAM SYSTEM: IT’S BIG

Drive Predictability• Clearly Define a

Process– Proven– Realistic– Repeatable– Enforceable

• “Baked” into systems• Leverage existing,

familiar tools

TEAM SYSTEM: IT’S BIG

Lifecycle

Ensure Quality, Early & Often

• Quality-Centric Tools– Integrated throughout lifecycle– Reduces overall project cost

• Work Tracking • Requirements • Scenarios • Tasks

Planning

• System Modeling• Deployment Modeling

Design

• Unit Testing• Database Testing• Static Code Analysis• Performance Profiling• Continuous Integration

Development

• Scheduled Builds• Load Testing• Web Testing

Testing

TEAM SYSTEM: IT’S BIG

Integrate Work Frequently• Continuous Integration• Robust version control

– Integrated with defect & task tracking systems

• Automated testing– Unit Testing– Functional Testing– Load Testing

TEAM SYSTEM: IT’S BIG

Integrate Work FrequentlyBuild Automation

• Consider build customers– Development team– Testing team– External adopters– Customers

• Build scenarios– Manual– Scheduled– Continuous

Force a sync point across these rolesAct as checkpoint between dev and test

Compile, run tests, gather metricsHeartbeat and heath checkCritical to reporting and feedbackCouple with gated check-in

TEAM SYSTEM: IT’S BIG

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

Overcome ComplexityQuality MindsetCulture of Innovation

CollaborationTransparencyIntegration

Highly integrated Productive Extensible Low administration

ClarityAlignmentEfficiency

Agile Customizable Lightweight Patterns and practices Flexible

Process and tools support individuals, teams and organizations frictionlessly and transparently

Layering Best Practices

TEAM SYSTEM: IT’S BIG

Development Best Practices

Microsoft’s Approach

TEAM SYSTEM: IT’S BIG

Microsoft’s Approach•Team Foundation ServerCollaborate &

Communicate

•Work Item TrackingManage Team Workflow

•Process Guidance & AutomationDrive

Predictability

•Comprehensive TestingEnsure Quality, Early & Often

•Version Control•Team Build

Integrate Work Frequently

•Integrated Reporting•Extensible

Make Real-Time Decisions

TEAM SYSTEM: IT’S BIG

Visual Studio Team SystemApplication Lifecycle Management (ALM) Solution

TEAM SYSTEM: IT’S BIG

Visual Studio Team SystemVisual Studio Team Suite

MSF

Pro

cess

and G

uid

ance

Visual Studio Team Foundation Server

VisualStudio

IndustryPartners

SoftwareArchitects

SoftwareDevelopers

SoftwareTesters

DatabaseProfessionalsVisual

StudioTeam

ExplorerApplication Modeling

Infrastructure and Deployment

Modeling

Code Analysis

Performance Tuning

Security Analysis

Database Deployment

DatabaseChange Mgmt.

Database Testing

Performance Testing

Manual Testing

Test Case Management

Visual Studio Professional Edition

Change Management

Work Item Tracking

Reporting

Project Site

Integration Services

Project Management

Load Test Agent

(TFS Client Access License)

Class Modeling

Unit Testing

Code Coverage

Today: Disparate Tools

ToolArchitec

tDevelope

r TesterPM

Stakeholder

Version Control X X X XDefect 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 XReporting Tool X X X X X

Team System: Role-based Capabilities

ToolArchitec

tDevelope

r Tester PMStakeholde

r

Team Architect XTeam

Developer X

Team Tester XMS

Project/Excel X

Web Portal X

Team System: The Ideal Solution

ToolArchitec

tDevelope

r Tester PMStakeholde

r

Team Suite X X X X

Web Portal X

TEAM SYSTEM: IT’S BIG

Collaborate & Communicate• Team Foundation Server

– A unified project server

Tester

Developer

Architect

ProjectManager

BusinessAnalyst

Designer Database Profession

al

Managing Team Workflow

DatabaseDevelopers

ProjectManagerDeveloper

Tester

Users &BA’s

Work Items Architect

TEAM SYSTEM: IT’S BIG

Work Item Tracking

• Manages any “item of record”• Extensible (fields, dialogs, workflow)• Accessible

TEAM SYSTEM: IT’S BIG

What is in a Work Item?• Title • Description • Current State

• Who it is assigned to

• Attachments

• Links to other Work Items • Full Audited history• Anything else you want …

Closed

Active

Resolved

Closed

Active

Resolved

Proposed

Scenario Tasks Bugs

TEAM SYSTEM: IT’S BIG

Drive Predictability• Integrated process templates help

deliver predictable results

TEAM SYSTEM: IT’S BIG

Process TemplateBased on MSF Agile CMMI

Several 3rd party templates Scrum RUP Others

Highly FlexibleCreate your

own or modify an existing one

XML basedEditor

included

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & Often

Quality

Tools for All

Unit Testing

Database Testing

Functional testing

Code Analysis

Profiling

Load Testing

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & OftenDevelopment

• Integrated Unit Testing

• Integrated Static Code analysis– Security Errors– Localisation problems– Memory issues– …

• Integrated Profiler– Performance problems– Memory problems

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & OftenDevelopment

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & OftenDatabase 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

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & OftenTesting

• Record Web Tests from Internet Explorer

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & OftenTesting

• Data driven tests• Validate returned

data• Generate Code for

the test (C#, VB, …)

TEAM SYSTEM: IT’S BIG

Ensure Quality, Early & OftenTesting

TEAM SYSTEM: IT’S BIG

Integrate Work Frequently

Full featured version control system

Continuous IntegrationScheduled Builds

Relate work item to check-inCheck-out on Edit

LabelingAnnotationShelving

Policy-based Check-in

TEAM SYSTEM: IT’S BIG

Integrate Work FrequentlyBuild Automation

• Team Build– Extension of MS Build

• Continuous Integration, scheduled, ad-hoc• Provides build reporting back to TFS• Integrates testing

TEAM SYSTEM: IT’S BIG

Integrate Work FrequentlyBuild Reports

TEAM SYSTEM: IT’S BIG

TEAM SYSTEM 2010And More is on the Way!

Visual Studio Team System 2010

Agile Project Planning

End to End TraceabilityStunning New Reports

1-click Custom Excel reports

New Dashboards

Branch Visualization

Distributed Build

Build Windows Workflow Integration

Test PlanningTest Execution

Manual Test Runner

Test Impact Analysis

Coded UI Test

Historical Debugging

Gated Checkin

Activity Diagram

Modeling ProjectsLogical Class Diagram

Architecture ExplorerSequence Diagram

Component Diagram

Use Case DiagramLayer Diagram

Scalability ++

TFS Administrationw/MMC

Database Edition merged into Development

Jan-07

Apr-07

Jul-07

Oct-07

Jan-08

Apr-08

Jul-08

Oct-08

Jan-09

-

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

Active Users

Team System at Microsoft• Over 15,000 active users• Over 3.6 million work items

• Over 3,100 Team Projects• 56M+ source code files• Over 733,000 Builds

Jan-07

Apr-07

Jul-07

Oct-07

Jan-08

Apr-08

Jul-08

Oct-08

Jan-09

-

500

1,000

1,500

2,000

2,500

3,000

3,500

Team Projects

TEAM SYSTEM: IT’S BIG

Summary

Microsoft’s Application Lifecycle Solution

Effective, Quality ToolsetIntegrates with Existing Tools

Promotes Collaboration

TEAM SYSTEM: IT’S BIG