SlideShare a Scribd company logo
1 of 40
Todd Warren – CS 394 Spring 2011 Developing Software at Scale: Lessons from 20+ Years at Microsoft
Today Team structure at Microsoft Product Complexity and Scheduling Quality and software testing Knowing when to ship
Programs vs. Software products 3x 3x 9x Source:  Fred Brooks Jr., Mythical Man Month, “The Tar Pit”
Software Products vs. Custom Software Development Source: Hoch, Roeding, Purkert, Lindner, “Secrets of Software Success”, 1999
Roles Product Manager User-Interface designer End-user liaison Project Manager Architect Developers Tool Smith QA/Testers Build Coordinator Risk Officer End User Documentation Program Management Software Development Engineers Test and Quality Assurance User Assistance / Education Source:  McConnell
Resources Size Matters! Different Methodologies and Approaches Scope of Feature and Quality Matters Affects Level of Process needed and overhead 5 person teams:   Moderate Process, Shared Roles 24 person teams (PMC): Moderate Process, Lifecycle oriented roles and specialization—good for “Extreme” style process 60-100 (MS Project): Moderate Process, some loose functional specialization and lifecycle 100-200 (Windows CE) person teams: Medium to Heavy Process, Lifecycle roles and functional specialization 1000+ Person Teams (Windows Mobile): Heavy Process, Multiple Methodologies, Formal Integration Process Higher Quality==more rigorous process True also for open source, online projects Apache is best example of very specified culture of contribution
Organization and its affect on Products VeryFormal Casual More Formal
Project Interdependency Matters:“Star” or “Mesh” Office Windows Edge Edge Edge Edge Edge Edge Core Edge Core Edge Edge Edge Edge Edge
A ‘Typical’ Product Group  25% Developers 45% Testers 10% Program Management 10% User Education / Localization 7% Marketing 3% Overhead
Small Product:  Portable Media Center  1 UI Designer 5 Program managers 8 Developers 10 testers
Microsoft Project 30 Developers (27%) 36 Testers	(33%) 15 Program Mgrs (14%) 20 UA/Localization (18%) 6	Marketing	(5%) 3	Overhead	(3%)
Exchange Numbers (circa 2000) 112 Developers (25.9%) 247 Testers (57.3%) 44 Program Mgrs. (10.2%) 12 Marketing (2.7%) 16 Overhead (3.7%)
Windows CE (circa 2002)
Windows Mobile (circa 2009)
Amount of Time  3 month maximum is a good rule of thumb for a stage/milestone. Hard for people to focus on anything longer than 3 months. Never let things go un-built for longer than a week
Smaple Staged Timeline (Project 2000)
How Long? 216 days development (truthfully probably more like 260d) 284 days on “testing” in example Component Tests: 188d System wide tests:~97d 50/50 split between design/implement and test/fix Some Projects (e.g. operating systems, servers) longer integration period (more like 2:1) Factors: How distributed, number of “moving parts” Show why some of the Extreme methodology is appealing.
Fred Brooks OS/360 Rules of thumb 1/3 planning 1/6 coding 1/4 component test and early system test 1/4 system test, all components in hand
Office 2000 Schedule
A few projects compared to Brooks
Quality and Testing Design in Scenarios up front What is necessary for the component UI is different than API Server is different than client Set Criteria and usage scenarios Understanding (and controlling if possible) the environment in which the software is developed and used “The last bug is found when the last customer dies” -Brian Valentine, SVP eCommerce, Amazon
Example of ComplexityTopology Coverage Exchange versions:	4.0 (latest SP), 5.0 (latest SP) and 5.5  Windows NT version: 	3.51, 4.0 (latest SP’s) Langs. (Exchange and	USA/USA, JPN/Chinese, JPN/Taiwan, JPN/Korean,Windows NT):	JPN/JPN, GER/GER, FRN/FRN Platforms: 		Intel, Alpha, (MIPS, PPC 4.0 only) Connectors X.400:	Over TCP, TP4, TP0/X.25 Connectors IMS:	Over LAN, RAS, ISDN Connectors RAS:	Over NetBEUI, IPX, TCP Connector interop:	MS Mail, MAC Mail, cc:Mail, Notes News:	NNTP in/out Admin:	Daily operations Store:	Public >16GB and Private Store >16GB  Replication:	29 sites, 130 servers, 200,000 users, 10 AB views Client protocols:	MAPI, LDAP, POP3, IMAP4, NNTP, HTTP  Telecommunication:	Slow Link Simulator, Noise Simulation Fault tolerance:Windows NT Clustering Security:	Exchange KMS server, MS Certificate Server Proxy firewall:	Server-to-Server and Client-to-Server
Complexity 2: Windows CE 5m lines of code 4 processor architectures ARM/Xscale, MIPS, x86, SH 20 Board Support Packages Over 1000 possible operating system components 1000’s of peripherals
Complexity 3: Windows Mobile 6.x 2 code instances (“standard” and “pro”) 4 ARM Chip Variants 3 memory configuration variations 8 Screen sizes (QVGA, VGA, WVGA, Square..) 60 major interacting software components 3 network technologies (CDMA, GSM, WiFi) Some distinct features for 7 major vendors 100 dependent 3rd party apps for a complete “phone”
Bugs over the lifecycle
Bugs over the lifecycle
Flow of tests during the cycle Unit TestsImplemented FeatureImplemented Feature isSpecified Test Design Is written Test ReleaseDocument ComponentTesting SpecializedTesting SystemTest” Bug Fix RegressionTests
Ways of Testing Types of Tests Black Box White Box “Gray” Box Stage of Cycle Unit Test /  Verification Test Component Acceptance Test System Test Performance Test Stress Test External Testing (Alpha/Beta/”Dogfood”) Regression Testing
Four Rules of Testing Guard the Process Catch Bugs Early Test with the Customer in Mind M0 M1 M2 RTM Make it Measurable Ship Requirement ProOnGo LLC – May 2009
Inside the Mind of a Tester How close are we to satisfying agreed upon metrics/criteria? Are the criteria passing stably, every time we test? What are we building, and why? What do our bug trends say about our progress? How risky is this last-minute code check-in? What metrics and criteria summarize customer demands? Based on current trends, when will we pass all criteria? Do we pass all criteria?  If not:  what, why, how? Can we reliably measure these metrics and criteria? RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
What are we building, and why?  Any problems with this? What metrics and criteria summarize customer demands? Can we reliably measure these metrics and criteria? M0: Specs & Test Plans // An API that draws a line from x to y VOID LineTo(INT x, INT y); RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
Balance:  Fast vs. Thorough Canary Most Frequent Shallow Coverage Least Frequent Completes Coverage Build Verification Tests Automated Test Pass Manual Test Pass RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
Fast Tests that can automatically run at check-in time Static Code Analysis (like lint) Trial build, before check-in committed to SCM Form-field tests: Check-In cites a bug number? Code-reviewer field filled out? Canary & Check-In Tests RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
Build Verification Test Goal: find bugs so heinous that they could… Block ability to dogfood Derail a substantial portion of test pass (5%?) Unwritten Contract: You break the build, you fix it within an hour Day or night Holds up productivity of entire team RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
Automated Test Pass Example on a Microsoft product: Number of test cases:  6 digits Number of test runs:  7 digits 14 different target device flavors Runs 24/7, results available via web Automatic handling of device resets / failsafe Requires creativity: How would you automate an image editor? A 3D graphics engine? RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
Manual Test Pass Cost of automating vs. Cost of running manually Rationale/Quantitative way to decide whether to automate Reality: few organizations maximize benefits of automation Therefore, manual testing lives on Tough “Automated vs. Manual” decisions: Testing for audio glitches (does the audio crackle?) Does the UI feel responsive enough? RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
Tracking Bugs Who found When What, and it’s seveirty How to reproduce What part of the product Create a Where fixed and by whom State Open, Resolved, Closed Disposition Fixed, Not Fixed, Postponed, “By Design”
Release Criteria What must be true for a release to be done or complete Includes a mix of criteria All features implemented and reviewed Documentation complete All Bugs Closed (not necessarily fixed) Performance Criteria met Video
Bug “Triage” Late in the cycle, a process for determining what to fix Getting people together and prioritizing impact on release criteria and overall stability goals Even Known Crashing bugs are postponed depending on criteria
Summary With software products, know what to build for the customer Have checkpoints for progress (Milestones) Many types of testing and structure: right tool for the job Determine and measure ship criteria

More Related Content

What's hot

Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questionsBABAR MANZAR
 
Ravi_Kumar_Mekala_Performance_Tester
Ravi_Kumar_Mekala_Performance_TesterRavi_Kumar_Mekala_Performance_Tester
Ravi_Kumar_Mekala_Performance_TesterRavi Kumar Mekala
 
Manual software-testing-interview-questions-with-answers
Manual software-testing-interview-questions-with-answersManual software-testing-interview-questions-with-answers
Manual software-testing-interview-questions-with-answersSachin Gupta
 
Automated Browser Compatibility Testing
Automated Browser Compatibility TestingAutomated Browser Compatibility Testing
Automated Browser Compatibility TestingQAI Global
 
Testing Presentation
Testing PresentationTesting Presentation
Testing Presentationsureshpkumar
 
Interview questions
Interview questionsInterview questions
Interview questionssivareddyeda
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development processIvano Malavolta
 
FazilShaikh Resume 13th january
FazilShaikh Resume 13th januaryFazilShaikh Resume 13th january
FazilShaikh Resume 13th januaryfazilahmed sheikh
 
Compatibility testing a must do of the web apps 2012
Compatibility testing   a must do of the web  apps 2012Compatibility testing   a must do of the web  apps 2012
Compatibility testing a must do of the web apps 2012Indium Software
 
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)LeClubQualiteLogicielle
 
Web App Testing - A Practical Approach
Web App Testing - A Practical ApproachWeb App Testing - A Practical Approach
Web App Testing - A Practical ApproachWalter Mamed
 
Timothy Pettway Resume 8-2-2015
Timothy Pettway Resume 8-2-2015Timothy Pettway Resume 8-2-2015
Timothy Pettway Resume 8-2-2015Timothy Pettway
 
Manual Testing Interview Questions | Edureka
Manual Testing Interview Questions | EdurekaManual Testing Interview Questions | Edureka
Manual Testing Interview Questions | EdurekaEdureka!
 
07 Outsource To India Independent Testing
07 Outsource To India Independent Testing07 Outsource To India Independent Testing
07 Outsource To India Independent TestingoutsourceToIndia
 

What's hot (20)

Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questions
 
Ravi_Kumar_Mekala_Performance_Tester
Ravi_Kumar_Mekala_Performance_TesterRavi_Kumar_Mekala_Performance_Tester
Ravi_Kumar_Mekala_Performance_Tester
 
Manual software-testing-interview-questions-with-answers
Manual software-testing-interview-questions-with-answersManual software-testing-interview-questions-with-answers
Manual software-testing-interview-questions-with-answers
 
Automated Browser Compatibility Testing
Automated Browser Compatibility TestingAutomated Browser Compatibility Testing
Automated Browser Compatibility Testing
 
A perspective on web testing.ppt
A perspective on web testing.pptA perspective on web testing.ppt
A perspective on web testing.ppt
 
Saravanan.docs
Saravanan.docsSaravanan.docs
Saravanan.docs
 
Resume-Ramchandra Gupta
Resume-Ramchandra GuptaResume-Ramchandra Gupta
Resume-Ramchandra Gupta
 
Testing Presentation
Testing PresentationTesting Presentation
Testing Presentation
 
Interview questions
Interview questionsInterview questions
Interview questions
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development process
 
FazilShaikh Resume 13th january
FazilShaikh Resume 13th januaryFazilShaikh Resume 13th january
FazilShaikh Resume 13th january
 
Compatibility testing a must do of the web apps 2012
Compatibility testing   a must do of the web  apps 2012Compatibility testing   a must do of the web  apps 2012
Compatibility testing a must do of the web apps 2012
 
Ahmed Faraz
Ahmed FarazAhmed Faraz
Ahmed Faraz
 
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
 
Web App Testing - A Practical Approach
Web App Testing - A Practical ApproachWeb App Testing - A Practical Approach
Web App Testing - A Practical Approach
 
Timothy Pettway Resume 8-2-2015
Timothy Pettway Resume 8-2-2015Timothy Pettway Resume 8-2-2015
Timothy Pettway Resume 8-2-2015
 
Manual Testing Interview Questions | Edureka
Manual Testing Interview Questions | EdurekaManual Testing Interview Questions | Edureka
Manual Testing Interview Questions | Edureka
 
07 Outsource To India Independent Testing
07 Outsource To India Independent Testing07 Outsource To India Independent Testing
07 Outsource To India Independent Testing
 
Checklist for website testing
Checklist for website testingChecklist for website testing
Checklist for website testing
 
Shavetambri
ShavetambriShavetambri
Shavetambri
 

Viewers also liked

From West Coast to Gold Coast
From West Coast to Gold CoastFrom West Coast to Gold Coast
From West Coast to Gold CoastTodd Warren
 
US Venture Capital 101: An introduction for the USAID YALI fellows at Northw...
US Venture Capital 101:  An introduction for the USAID YALI fellows at Northw...US Venture Capital 101:  An introduction for the USAID YALI fellows at Northw...
US Venture Capital 101: An introduction for the USAID YALI fellows at Northw...Todd Warren
 
Ashesi Univerisity: The Entrepreneurial story of the creation of a New Unive...
Ashesi Univerisity:  The Entrepreneurial story of the creation of a New Unive...Ashesi Univerisity:  The Entrepreneurial story of the creation of a New Unive...
Ashesi Univerisity: The Entrepreneurial story of the creation of a New Unive...Todd Warren
 
NCIIA 2014 - Adapting Lean Startup in NUvention Web
NCIIA 2014 - Adapting Lean Startup in NUvention WebNCIIA 2014 - Adapting Lean Startup in NUvention Web
NCIIA 2014 - Adapting Lean Startup in NUvention WebTodd Warren
 
N uvention web for McCormick Advisory Council
N uvention web for McCormick Advisory CouncilN uvention web for McCormick Advisory Council
N uvention web for McCormick Advisory CouncilTodd Warren
 
Ashesi University Entrepreneurship Course Outline Fall 2014
Ashesi University Entrepreneurship Course Outline Fall 2014Ashesi University Entrepreneurship Course Outline Fall 2014
Ashesi University Entrepreneurship Course Outline Fall 2014Todd Warren
 
VentureWell Paper: From West Coast to Gold Coast
VentureWell Paper: From West Coast to Gold CoastVentureWell Paper: From West Coast to Gold Coast
VentureWell Paper: From West Coast to Gold CoastTodd Warren
 

Viewers also liked (7)

From West Coast to Gold Coast
From West Coast to Gold CoastFrom West Coast to Gold Coast
From West Coast to Gold Coast
 
US Venture Capital 101: An introduction for the USAID YALI fellows at Northw...
US Venture Capital 101:  An introduction for the USAID YALI fellows at Northw...US Venture Capital 101:  An introduction for the USAID YALI fellows at Northw...
US Venture Capital 101: An introduction for the USAID YALI fellows at Northw...
 
Ashesi Univerisity: The Entrepreneurial story of the creation of a New Unive...
Ashesi Univerisity:  The Entrepreneurial story of the creation of a New Unive...Ashesi Univerisity:  The Entrepreneurial story of the creation of a New Unive...
Ashesi Univerisity: The Entrepreneurial story of the creation of a New Unive...
 
NCIIA 2014 - Adapting Lean Startup in NUvention Web
NCIIA 2014 - Adapting Lean Startup in NUvention WebNCIIA 2014 - Adapting Lean Startup in NUvention Web
NCIIA 2014 - Adapting Lean Startup in NUvention Web
 
N uvention web for McCormick Advisory Council
N uvention web for McCormick Advisory CouncilN uvention web for McCormick Advisory Council
N uvention web for McCormick Advisory Council
 
Ashesi University Entrepreneurship Course Outline Fall 2014
Ashesi University Entrepreneurship Course Outline Fall 2014Ashesi University Entrepreneurship Course Outline Fall 2014
Ashesi University Entrepreneurship Course Outline Fall 2014
 
VentureWell Paper: From West Coast to Gold Coast
VentureWell Paper: From West Coast to Gold CoastVentureWell Paper: From West Coast to Gold Coast
VentureWell Paper: From West Coast to Gold Coast
 

Similar to Developing software at scale cs 394 may 2011

Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerQA or the Highway
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...University of Antwerp
 
Journey To Excellence
Journey To ExcellenceJourney To Excellence
Journey To ExcellenceWalter Mamed
 
Praveen_Software Testing_Resume
Praveen_Software Testing_ResumePraveen_Software Testing_Resume
Praveen_Software Testing_ResumeMPraveen Kumar
 
Scope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vidScope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vidColin Hammond
 
Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1Wes Yanaga
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
Drive Faster Quality Insights through Customized Test Automation
Drive Faster Quality Insights through Customized Test AutomationDrive Faster Quality Insights through Customized Test Automation
Drive Faster Quality Insights through Customized Test AutomationPerfecto by Perforce
 
Senior Quality Analyst
Senior Quality AnalystSenior Quality Analyst
Senior Quality AnalystAnkur Gupta
 
Jithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- VitaeJithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- VitaeJithin Eapen
 
Neha Arora_Resume
Neha Arora_ResumeNeha Arora_Resume
Neha Arora_ResumeNeha Arora
 

Similar to Developing software at scale cs 394 may 2011 (20)

Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
Testing syllabus
Testing syllabusTesting syllabus
Testing syllabus
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
 
vercha_resumeNew
vercha_resumeNewvercha_resumeNew
vercha_resumeNew
 
Journey To Excellence
Journey To ExcellenceJourney To Excellence
Journey To Excellence
 
Sanjay Sharma
Sanjay SharmaSanjay Sharma
Sanjay Sharma
 
Praveen_Software Testing_Resume
Praveen_Software Testing_ResumePraveen_Software Testing_Resume
Praveen_Software Testing_Resume
 
CV_Prashanta Prusty
CV_Prashanta PrustyCV_Prashanta Prusty
CV_Prashanta Prusty
 
CV Amol Dethe
CV Amol DetheCV Amol Dethe
CV Amol Dethe
 
Scope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vidScope master introduction presentation feb 2020 w vid
Scope master introduction presentation feb 2020 w vid
 
Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Raji_QA
Raji_QARaji_QA
Raji_QA
 
Resume_Sameer Parihar
Resume_Sameer PariharResume_Sameer Parihar
Resume_Sameer Parihar
 
Drive Faster Quality Insights through Customized Test Automation
Drive Faster Quality Insights through Customized Test AutomationDrive Faster Quality Insights through Customized Test Automation
Drive Faster Quality Insights through Customized Test Automation
 
Senior Quality Analyst
Senior Quality AnalystSenior Quality Analyst
Senior Quality Analyst
 
Jithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- VitaeJithin Eapen Curriculum- Vitae
Jithin Eapen Curriculum- Vitae
 
Test Automation in Agile
Test Automation in AgileTest Automation in Agile
Test Automation in Agile
 
Neha Arora_Resume
Neha Arora_ResumeNeha Arora_Resume
Neha Arora_Resume
 
Janakiraman_Apr2016_3SF
Janakiraman_Apr2016_3SFJanakiraman_Apr2016_3SF
Janakiraman_Apr2016_3SF
 

Recently uploaded

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Developing software at scale cs 394 may 2011

  • 1. Todd Warren – CS 394 Spring 2011 Developing Software at Scale: Lessons from 20+ Years at Microsoft
  • 2. Today Team structure at Microsoft Product Complexity and Scheduling Quality and software testing Knowing when to ship
  • 3. Programs vs. Software products 3x 3x 9x Source: Fred Brooks Jr., Mythical Man Month, “The Tar Pit”
  • 4. Software Products vs. Custom Software Development Source: Hoch, Roeding, Purkert, Lindner, “Secrets of Software Success”, 1999
  • 5. Roles Product Manager User-Interface designer End-user liaison Project Manager Architect Developers Tool Smith QA/Testers Build Coordinator Risk Officer End User Documentation Program Management Software Development Engineers Test and Quality Assurance User Assistance / Education Source: McConnell
  • 6. Resources Size Matters! Different Methodologies and Approaches Scope of Feature and Quality Matters Affects Level of Process needed and overhead 5 person teams: Moderate Process, Shared Roles 24 person teams (PMC): Moderate Process, Lifecycle oriented roles and specialization—good for “Extreme” style process 60-100 (MS Project): Moderate Process, some loose functional specialization and lifecycle 100-200 (Windows CE) person teams: Medium to Heavy Process, Lifecycle roles and functional specialization 1000+ Person Teams (Windows Mobile): Heavy Process, Multiple Methodologies, Formal Integration Process Higher Quality==more rigorous process True also for open source, online projects Apache is best example of very specified culture of contribution
  • 7. Organization and its affect on Products VeryFormal Casual More Formal
  • 8. Project Interdependency Matters:“Star” or “Mesh” Office Windows Edge Edge Edge Edge Edge Edge Core Edge Core Edge Edge Edge Edge Edge
  • 9. A ‘Typical’ Product Group 25% Developers 45% Testers 10% Program Management 10% User Education / Localization 7% Marketing 3% Overhead
  • 10. Small Product: Portable Media Center 1 UI Designer 5 Program managers 8 Developers 10 testers
  • 11. Microsoft Project 30 Developers (27%) 36 Testers (33%) 15 Program Mgrs (14%) 20 UA/Localization (18%) 6 Marketing (5%) 3 Overhead (3%)
  • 12. Exchange Numbers (circa 2000) 112 Developers (25.9%) 247 Testers (57.3%) 44 Program Mgrs. (10.2%) 12 Marketing (2.7%) 16 Overhead (3.7%)
  • 15. Amount of Time 3 month maximum is a good rule of thumb for a stage/milestone. Hard for people to focus on anything longer than 3 months. Never let things go un-built for longer than a week
  • 16. Smaple Staged Timeline (Project 2000)
  • 17. How Long? 216 days development (truthfully probably more like 260d) 284 days on “testing” in example Component Tests: 188d System wide tests:~97d 50/50 split between design/implement and test/fix Some Projects (e.g. operating systems, servers) longer integration period (more like 2:1) Factors: How distributed, number of “moving parts” Show why some of the Extreme methodology is appealing.
  • 18. Fred Brooks OS/360 Rules of thumb 1/3 planning 1/6 coding 1/4 component test and early system test 1/4 system test, all components in hand
  • 20. A few projects compared to Brooks
  • 21. Quality and Testing Design in Scenarios up front What is necessary for the component UI is different than API Server is different than client Set Criteria and usage scenarios Understanding (and controlling if possible) the environment in which the software is developed and used “The last bug is found when the last customer dies” -Brian Valentine, SVP eCommerce, Amazon
  • 22. Example of ComplexityTopology Coverage Exchange versions: 4.0 (latest SP), 5.0 (latest SP) and 5.5 Windows NT version: 3.51, 4.0 (latest SP’s) Langs. (Exchange and USA/USA, JPN/Chinese, JPN/Taiwan, JPN/Korean,Windows NT): JPN/JPN, GER/GER, FRN/FRN Platforms: Intel, Alpha, (MIPS, PPC 4.0 only) Connectors X.400: Over TCP, TP4, TP0/X.25 Connectors IMS: Over LAN, RAS, ISDN Connectors RAS: Over NetBEUI, IPX, TCP Connector interop: MS Mail, MAC Mail, cc:Mail, Notes News: NNTP in/out Admin: Daily operations Store: Public >16GB and Private Store >16GB Replication: 29 sites, 130 servers, 200,000 users, 10 AB views Client protocols: MAPI, LDAP, POP3, IMAP4, NNTP, HTTP Telecommunication: Slow Link Simulator, Noise Simulation Fault tolerance:Windows NT Clustering Security: Exchange KMS server, MS Certificate Server Proxy firewall: Server-to-Server and Client-to-Server
  • 23. Complexity 2: Windows CE 5m lines of code 4 processor architectures ARM/Xscale, MIPS, x86, SH 20 Board Support Packages Over 1000 possible operating system components 1000’s of peripherals
  • 24. Complexity 3: Windows Mobile 6.x 2 code instances (“standard” and “pro”) 4 ARM Chip Variants 3 memory configuration variations 8 Screen sizes (QVGA, VGA, WVGA, Square..) 60 major interacting software components 3 network technologies (CDMA, GSM, WiFi) Some distinct features for 7 major vendors 100 dependent 3rd party apps for a complete “phone”
  • 25. Bugs over the lifecycle
  • 26. Bugs over the lifecycle
  • 27. Flow of tests during the cycle Unit TestsImplemented FeatureImplemented Feature isSpecified Test Design Is written Test ReleaseDocument ComponentTesting SpecializedTesting SystemTest” Bug Fix RegressionTests
  • 28. Ways of Testing Types of Tests Black Box White Box “Gray” Box Stage of Cycle Unit Test / Verification Test Component Acceptance Test System Test Performance Test Stress Test External Testing (Alpha/Beta/”Dogfood”) Regression Testing
  • 29. Four Rules of Testing Guard the Process Catch Bugs Early Test with the Customer in Mind M0 M1 M2 RTM Make it Measurable Ship Requirement ProOnGo LLC – May 2009
  • 30. Inside the Mind of a Tester How close are we to satisfying agreed upon metrics/criteria? Are the criteria passing stably, every time we test? What are we building, and why? What do our bug trends say about our progress? How risky is this last-minute code check-in? What metrics and criteria summarize customer demands? Based on current trends, when will we pass all criteria? Do we pass all criteria? If not: what, why, how? Can we reliably measure these metrics and criteria? RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 31. What are we building, and why? Any problems with this? What metrics and criteria summarize customer demands? Can we reliably measure these metrics and criteria? M0: Specs & Test Plans // An API that draws a line from x to y VOID LineTo(INT x, INT y); RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 32. Balance: Fast vs. Thorough Canary Most Frequent Shallow Coverage Least Frequent Completes Coverage Build Verification Tests Automated Test Pass Manual Test Pass RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 33. Fast Tests that can automatically run at check-in time Static Code Analysis (like lint) Trial build, before check-in committed to SCM Form-field tests: Check-In cites a bug number? Code-reviewer field filled out? Canary & Check-In Tests RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 34. Build Verification Test Goal: find bugs so heinous that they could… Block ability to dogfood Derail a substantial portion of test pass (5%?) Unwritten Contract: You break the build, you fix it within an hour Day or night Holds up productivity of entire team RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 35. Automated Test Pass Example on a Microsoft product: Number of test cases: 6 digits Number of test runs: 7 digits 14 different target device flavors Runs 24/7, results available via web Automatic handling of device resets / failsafe Requires creativity: How would you automate an image editor? A 3D graphics engine? RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 36. Manual Test Pass Cost of automating vs. Cost of running manually Rationale/Quantitative way to decide whether to automate Reality: few organizations maximize benefits of automation Therefore, manual testing lives on Tough “Automated vs. Manual” decisions: Testing for audio glitches (does the audio crackle?) Does the UI feel responsive enough? RTM Milestone Confirm, Ship M0 Specs & Test Plans M1 .. Mn Development & Test ProOnGo LLC – May 2009
  • 37. Tracking Bugs Who found When What, and it’s seveirty How to reproduce What part of the product Create a Where fixed and by whom State Open, Resolved, Closed Disposition Fixed, Not Fixed, Postponed, “By Design”
  • 38. Release Criteria What must be true for a release to be done or complete Includes a mix of criteria All features implemented and reviewed Documentation complete All Bugs Closed (not necessarily fixed) Performance Criteria met Video
  • 39. Bug “Triage” Late in the cycle, a process for determining what to fix Getting people together and prioritizing impact on release criteria and overall stability goals Even Known Crashing bugs are postponed depending on criteria
  • 40. Summary With software products, know what to build for the customer Have checkpoints for progress (Milestones) Many types of testing and structure: right tool for the job Determine and measure ship criteria

Editor's Notes

  1. StoriesQ1: David & Testing on EmulatorQ2: “We’re at 89%, how is that different than 90%?”Q3: QFEsQ4: Times that I held the line, and times that I didn’t