Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | briar-harvey |
View: | 20 times |
Download: | 1 times |
Dmitri GavrilovPrincipal Software Development Lead
Exchange Server
AgendaRolesCareer pathsProduct release cycleTools
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
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.
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
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
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
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.
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
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.
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
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.
Questions?