The Microsoft Software Development Process. Scott Guthrie Program Manager Microsoft Corporation



Similar documents
Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

ON POINT. The School Improvement Process

IBM Marketing Operations Version 9 Release 1 October 25, User's Guide

ERserver. Single signon. iseries. Version 5 Release 3

ERserver. iseries. Digital certificate management

IBM Marketing Operations OnDemand November 17, Project Manager's Guide

IBM Maximo for Aviation MRO Version 7 Release 6. Guide

SA Tool Kit release life cycle

IBM Universal Behavior Exchange Toolkit Release April 8, User's Guide IBM

IBM Campaign Version 9 Release 1.1 February 18, User's Guide

Software Installation

ERserver. iseries. Service tools

IBM SmartCloud Monitoring - Application Insight. User Interface Help SC

IBM InfoSphere Master Data Management Version Overview SC

ERserver. iseries. Backup, Recovery and Media Services (BRMS)

User s Guide: Beta 1 draft

Tivoli Endpoint Manager for Patch Management - Windows - User's Guide

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Product Overview Guide

Custom Web Development Guidelines

Lightweight Directory Access Protocol. BladeCenter Management Module and IBM Remote Supervisor Adapters

Lotus. Notes Version Lotus Notes Traveler

Dock Scheduling Guide

IBM License Metric Tool Version 9.0 (includes version 9.0.1, and ) Managing the Software Inventory Guide

IBM Tivoli Monitoring Version 6.3 Fix Pack 2. Windows OS Agent Reference

IBM Unica Marketing Operations and Campaign Version 8 Release 6 May 25, Integration Guide

IBM Unica Campaign Version 8 Release 6 May 25, User's Guide

Tivoli Endpoint Manager for Patch Management - Windows - User's Guide

IBM Tealeaf CX Version 9 Release 0.2 June 18, Tealeaf Databases Guide

Certificate of Cloud Security Knowledge (CCSK) v3 FAQ

Scalable Web Programming. CS193S - Jan Jannink - 1/12/10

Test Plan Template: (Name of the Product) Prepared by: (Names of Preparers) (Date) TABLE OF CONTENTS

Software Development Process

Taking the Complexity Out of Release Management

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

IBM Unica Campaign Version 8 Release 6 May 25, Data Migration Guide

Supply Chain Optimization

CONTINUOUS INTEGRATION

Password Synchronization for Active Directory Plug-in Installation and Configuration Guide

Managing Versioning Activities to Support Tracking Progress of Distributed Agile Teams

IBM InfoSphere Master Data Management Standard and Advanced Editions Version 11 Release 3. Installation Guide GI

AS/400e. Digital Certificate Management

So#ware Deployment. Hans- Pe4er Halvorsen, M.Sc. h4p://home.hit.no/~hansha/?page=so#ware_development

Sterling Store Inventory Management. Concepts Guide. Release 9.2

Process of Building up an Application Packaging

Getting Started with STATISTICA Enterprise Programming

Rack Installation Instructions

Tivoli Storage Manager for Windows

MICROSOFT SOFTWARE DEVELOPMENT. Microsoft Secrets book

Microsoft Networks. SMB File Sharing Protocol Extensions. Document Version 3.4

Achieving Compliance with the PCI Data Security Standard

IBM Enterprise PL/I, V4.5

MANUAL TESTING. (Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn.?? New Batches Info

About me - Joel Montvelisky

IBM Tivoli Netcool Performance Manager Wireline Component January 2012 Document Revision R2E1. Pack Upgrade Guide

QaTraq Pro Scripts Manual - Professional Test Scripts Module for QaTraq. QaTraq Pro Scripts. Professional Test Scripts Module for QaTraq

Operational Excellence through Efficient Software Testing Metrics

Waters Software Development Life Cycle

IBM Endpoint Manager for Software Use Analysis Version 9. Scalability Guide. Version 3

WHAT WE NEED TO START THE PERFORMANCE TESTING?

FSW QA Testing Levels Definitions

SELF SERVICE RESET PASSWORD MANAGEMENT DATABASE REPLICATION GUIDE

h(p://home.hit.no/~hansha/?page=so3ware_development So3ware Maintenance Hans- Pe(er Halvorsen, M.Sc.

IBM DB2 9.7 for Linux, UNIX, and Windows

ElegantJ BI. White Paper. The Enterprise Option Reporting Tools vs. Business Intelligence

iseries Virtual private networking

Session 190 PD, Model Risk Management and Controls Moderator: Chad R. Runchey, FSA, MAAA

Version 9 Release 1.2 September 23, IBM Campaign Installation Guide IBM

Lecture 39: Intro to Differential Amplifiers. Context

Rational Build Forge. AutoExpurge System. Version7.1.2andlater

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

ON POINT. Conducting Focus Groups to Develop a Comprehensive School Portrait

Operating System Security

unless the manufacturer upgrades the firmware, whereas the effort is repeated.

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

IBM Maximo Asset Management Version 7 Release 5. Workflow Implementation Guide

iappfusion s Waterfall Product Cycle Process A Comparison to the Microsoft Solutions Framework (MSF) By Rob Walrath

IBM Unica Marketing Platform Version 8 Release 5 June 1, Administrator's Guide

Test Automation: A Project Management Perspective

IBM Spectrum Control Base Edition Version Release Notes

WebSphere Message Broker. Installation Guide. Version7Release0

Chapter 5: Operating Systems Part 1

DUE DILIGENCE CHECKLIST - BUSINESS ISSUES

Transcription:

The Microsoft Software Deelopment Process Scott Guthrie Program Manager Microsoft Corporation

Natural Phases of a Software Project Enthusiasm Disillusionment Panic Search for the Guilty Punishment of the Innocent Praise and Honors for Non-Participants

Successful Projects Not all software projects hae to progress this way! Those that are successful typically share three outstanding characteristics: People Poise Process

Today s Agenda: The Microsoft Deelopment Process Origin of a MS Product The Product Team Designing the Product Scheduling the Product Implementing the Product Testing the Product Shipping the Product

Origin of a MS Product

How to Start a MS Product Step 1: Identify market opportunity Customers, Competitors, Market Dynamics Step 2: Determine iability of market entry Volume, price/cost margins, fixed costs, etc. Step 3: Define ision statement Crisp enunciation of goals + issue ownership Explain strategic importance to company Step 4: Make a lot of noise!

The Product Team

The Product Team Product Unit Manager De Manager Group Program Manager Test Manager De Lead PM Lead Test Lead De Lead PM Lead Test Lead De De PM PM Tester Tester

Designing the Product

Product Design Thoroughly understand your customers How do they work? What do they really do? Visit, obsere, listen & meticulously document Thoroughly understand your competitors Ealuate their product strengths/weaknesses? Identify the strategic and tactical themes and requirements that your features should be thinking about Ensure that they are inline w/ ision statement

Feature Design Drill down on feature specifics Focus on what it does s.. how we build it Questions to consider: How do we make a feature usable/simple? How do we make a feature isible? How do we integrate other parts of a product? Document scenarios, assumptions and design proposal in a detailed spec Maintain tight feedback/ealuation loop

Implementation Issues Deelopers own thinking through the implementation issues of a feature Questions to consider: How factorable is the feature? Can the feature be deliered in stages? What dependencies does it hae? What other features are dependent on it? How many deeloper weeks are required?

Scheduling the Product

Scheduling/Planning Schedules are done after the initial design document is ready for reiew There is an inherit tension between the schedule and the design document Each needs to be constantly re-ealuated and re-calibrated against the other Software scheduling in general is something of an imprecise science Concatenation of educated guesses

Scheduling Questions Is the ship date drien by features or a hard schedule? Can/should the product ision be staged oer multiple product releases? How long has the product team worked together? What size will it be? Big!= Good. Keep in mind the N-1 rule... Will the team be working at a normal pace or in Death-March mode?

Milestones Milestones are used to logically segment deelopment into 9-12 week periods Early Milestones: Critical features & core code Later Milestones: Functionality that can be cut Milestones help maintain ship-mode focus/atmosphere oer long projects Milestones encourage staging of products Enable reiew of progress ( Postmortems ) Facilitate corrections to master schedule

Rules for Picking Dates Whateer date you publish will be the earliest you possibly ship Date should be aggressie and realistic Budget acations and sick-leae Plan for unexpected absences maternity/paternity leae Pad schedule for stabilization and non- deterministic progress delays

Implementing the Product

Establish Best Practices Source code management Whateer happened to Microsoft Pascal? Coding Standards What dialect of Hungarian do you use? Code Reiews Eery line of code should be peer reiewed Localization Guidelines If you plan ahead it is money in the bank

First Implementation Steps Define oerall code-base structure: Specify directory hierarchy (headers, libs,, etc.) Setup Makefile and build enironment Come up with common Macros and Ifdefs Define oerall code-base architecture: Design core APIs, interfaces and structures

Builds Products are compiled and released daily Forcing factor for code interoperation Proides steady progress measurement Enables daily test coerage of entire product Builds can often take a long time Clean Build of Windows NT takes 36 hours It is critical that delays are minimized Strict check-in procedures typically enforced

Check-in Procedures Step 1: Finish writing code Step 2: Code reiew with a team member Step 3: Buddy build on 2 clean systems Step 4: Send check-in request mail to the Build Technician and daily Build Meister Step 5: If check-in is approed, the build technician will check-out appropriate files into the build tree

Build Problems Build Breaks (compile/linking error) Basically means some bozo screwed up Punishment should fit the crime :-) Build Verification Test (BVT) Failures Automated test indicates functionality failure Each build classified at release: Self Host Self Test Self Toast

Ensuring Product Quality

Software Testing Testing is critical to software deelopment Must be analytical, methodical and thorough Test plan documents must be deeloped before code is een written Automation is key to stabilizing a product Comprehensie code coerage Enables quick erification of product health Enables easy reproducibility of errors

Bug Triage Discoered bugs are logged to a database Senior team members meet at least once a day to reiew/rank actie bugs Bugs assigned seerity, priority, owner Must-fix bugs marked as showstoppers Scrubbing the bug list Process of upgrading bugs to future releases Done when a bug is just too dangerous to fix

Getting It Out The Door

The End Game Alpha Release Beta1 Release Code Complete Beta2 Release Zero Bug-Bounce Release Candidate (RC) Release to Manufacturing (RTM)

End Game Responsibilities Program Management: Ensure that all scenarios documented in design spec are fully operational. Test: Ensure that all features implemented are at 0 showstoppers. Deelopment: Resole critical bugs as they appear. Ensure that the build remains stable

The End Once the build hits zero showstoppers, it will be escrowed while the team spends seeral days erifying that no new nasty bugs are lurking. If no new showstopper bugs are identified, a master or golden CD will be burned with the product bits. The CD will then be released to a manufacturing factory where shrink- wrapped products will be produced.