+ All Categories
Home > Documents > Engineering Process at Microsoft

Engineering Process at Microsoft

Date post: 31-Dec-2015
Category:
Upload: briar-harvey
View: 20 times
Download: 1 times
Share this document with a friend
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 Presentation
Popular Tags:
13
Dmitri Gavrilov Principal Software Development Lead Exchange Server
Transcript
Page 1: Engineering Process at Microsoft

Dmitri GavrilovPrincipal Software Development Lead

Exchange Server

Page 2: Engineering Process at Microsoft

AgendaRolesCareer pathsProduct release cycleTools

Page 3: Engineering Process at Microsoft

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

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

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

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

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

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

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

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

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

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

Questions?


Recommended