engineering process at microsoft
DESCRIPTION
Engineering Process at Microsoft. Dmitri Gavrilov Principal Software Development Lead Exchange Server. Agenda. Roles Career paths Product release cycle Tools. Roles. Three main roles: dev , test, product management Product Manager (PM): Owns scenarios Does not write code - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/1.jpg)
Dmitri GavrilovPrincipal Software Development Lead
Exchange Server
![Page 2: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/2.jpg)
AgendaRolesCareer pathsProduct release cycleTools
![Page 3: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/3.jpg)
RolesThree main roles: dev, test, product managementProduct Manager (PM):
Owns scenarios Does not write code Interaction with customers, other teams Writes functional specs
Dev (SDE): Owns product code Fixes product bugs Writes design specs
Test (SDET): Owns product quality Writes test code and fixes test bugs Writes test specs
![Page 4: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/4.jpg)
Additional RolesManagers
Lead, Manager, Director/PUM/GMExecutive (a hierarchy of VPs)Architects
Super-smart individual contributorsContractors
Manual testing/deployment/operationsHourly pay, can only work 9 months out of 12.
![Page 5: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/5.jpg)
More Additional RolesUser Experience/docs/help writersSupport
Escalation Engineers (frontline support, mostly in India, answer FAQs)
Support Engineers (second line of defence, know product well, can solve most problems)
Critical Problem Resolution Engineers (virtuoso debuggers)
Premier Field Engineers (dedicated to important customers)
Product MarketingSales
![Page 6: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/6.jpg)
Career PathsLevel 59-60 61-62 63-64 65-67 68+
TitleSDESDETPM
SDE IISDET IIPM II
Senior SDESenior SDETSenior PM
Principal * Partner *
Work Do Own DriveUnderstand business
Leadership
Scope FeatureComponen
tComponen
t leadProduct
Product line
Industry
Roles
Individual Contributor (IC)
Lead
Architect
Manager
Executive
![Page 7: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/7.jpg)
Product Release CycleMilestones (6-9 months)
MQ (quality) Dev/Test: fix postponed items from prev release PM: Prioritize scenarios
M1-Mn (dev milestones) Dev/Test/PM: Implement features
MP (polish)Later milestones are released to external testers:
Internal testing (dogfooding)Public BetasRelease CandidateRTM/RTW (release to manufacturing/web)
SE (Support Engineering): hotfixes, service packs
![Page 8: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/8.jpg)
Bug BarCriteria for taking/not taking bug fixesThere are always more bugs in the productDo you fix them now or in the next
milestone/release?Bug bar is raised towards the end of milestoneHighest setting just before RTMAfter RTM, the bar goes down somewhat
Safer to release a hotfix to a set of customers that need it
Hotfixes are rolled into service packsWhen bar is high, bugs are triaged/approved by the
War Team (release management people)You come to war and defend your bug: prove why it
meets the bar.
![Page 9: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/9.jpg)
Bug Bar Example High
High impact or frequent crash/hang, serious perf degradation, scale, config that will prevent production
Core scenario with high impact with no reasonable workaround Data corruption or loss RC blockers or RC failures Very high impact supportability bugs that could save lots of time and money down the road High impact globalization/localization issues DOA and Test Pass blockers CPX issues that prevent from shipping (Policheck, API scan, etc) Security Issues rated as “Critical” based on the SWI guideline
Medium Critical partner dependency issues (including other component teams, ExRAP and PSS) Regressions Functional behavior that is clearly against the design Security issues rated as “Moderate” based on the SWI guideline Supportability issues
Low Code cleanups Performance improvements beyond the stated goals DCRs that are not essential to E12 SP1 Branding Bug with an easy workaround
![Page 10: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/10.jpg)
Tools: Bug TrackingProduct Studio: database of bugsTree of componentsBug types: code bug, Design Change Request, Work Item,
Customer Escalation, etc…Bug lifetime:
Opened Triaged by component triage team, assigned to a dev Dev works on the fix Tester verifies the fix (optional) Bug is marked as ReadyToCheckIn, to be approved
by war Dev checks in the fix, resolves the bug Tester verifies the bug is fixed, closes the bug
Mgmt uses bug database to track progressBug resolution: Fixed, NotRepro, Duplicate, WontFix,
Postponed, External.
![Page 11: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/11.jpg)
Tools: Source Change Management Database of source code: Source DepotTo work on a file, you have to check it outMultiple people can check out a fileAt check in, you may need to merge with other
people’s changes, resolve conflictsChange history is preserved (incremental
changes)Checkins are associated with bugsBranches are super powerful concept
One primary product branchCode forked near milestones
![Page 12: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/12.jpg)
Tools: AutomationSmoke
Automated test running systemSmoke must be run before checkinBuilds product with your changesDeploys on multiple test topologiesRuns testsTests are prioritized, depending on which code is
changedTopoBuilder
Automated topology deploymentTopologies: from single machine to complex multi-
domain multi-machine topologiesQuotasLifetime management: machines are automatically
reclaimed into the common pool after a while.
![Page 13: Engineering Process at Microsoft](https://reader030.vdocuments.us/reader030/viewer/2022013004/56813054550346895d9606f4/html5/thumbnails/13.jpg)
Questions?