the microsoft software the microsoft software development
play

The Microsoft Software The Microsoft Software Development Process - PowerPoint PPT Presentation

The Microsoft Software The Microsoft Software Development Process Development Process Scott Guthrie Scott Guthrie Program Manager Program Manager Microsoft Corporation Microsoft Corporation Natural Phases of a Natural Phases


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

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

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

  4. Today’s Agenda: Today’s Agenda: The Microsoft Development Process The Microsoft Development Process Origin of a MS Product Origin of a MS Product � � The Product Team The Product Team � � Designing the Product Designing the Product � � Scheduling the Product Scheduling the Product � � Implementing the Product Implementing the Product � � Testing the Product Testing the Product � � Shipping the Product Shipping the Product � �

  5. Origin of a MS Product Origin of a MS Product

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

  7. The Product Team The Product Team

  8. The Product Team The Product Team Product Unit Manager Test Manager Dev Manager Group Program Manager Dev Lead Test Lead PM Lead Dev Lead Test Lead PM Lead Dev PM Tester Dev PM Tester

  9. Designing the Product Designing the Product

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

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

  12. Implementation Issues Implementation Issues Developers own thinking through the Developers own thinking through the � � implementation issues of a feature implementation issues of a feature Questions to consider: Questions to consider: � � � How factorable is the feature? How factorable is the feature? � � Can the feature be delivered in stages? Can the feature be delivered in stages? � � What dependencies does it have? What dependencies does it have? � � What other features are dependent on it? What other features are dependent on it? � � How many developer weeks are required? How many developer weeks are required? �

  13. Scheduling the Product Scheduling the Product

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

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

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

  17. Rules for Picking Dates Rules for Picking Dates Whatever date you publish will be the Whatever date you publish will be the � � earliest you possibly ship you possibly ship earliest � Date should be aggressive Date should be aggressive and and realistic realistic � Budget vacations and sick-leave Budget vacations and sick-leave � � Plan for unexpected absences Plan for unexpected absences � � � maternity/paternity leave maternity/paternity leave � Pad schedule for stabilization and non- Pad schedule for stabilization and non- � � deterministic progress delays deterministic progress delays

  18. Implementing the Product Implementing the Product

  19. Establish Best Practices Establish Best Practices Source code management Source code management � � � Whatever happened to Microsoft Pascal? Whatever happened to Microsoft Pascal? � Coding Standards Coding Standards � � � What dialect of Hungarian do you use? What dialect of Hungarian do you use? � Code Reviews Code Reviews � � � Every line of code should be peer reviewed Every line of code should be peer reviewed � Localization Guidelines Localization Guidelines � � � If you plan ahead it is money in the bank… If you plan ahead it is money in the bank… �

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

Recommend


More recommend