Slide 1

Slide 1 text

1 Design Doc Ashish Kumar Mercari Acquisition & Activation Team / Software Engineer

Slide 2

Slide 2 text

Design Doc - What? A technical spec about a feature or a system which includes the rationale for each decision made. The purpose of design doc is to aid in the critical analysis of a problem and the proposed solution while also communicating priority, effort and impact with different stakeholders

Slide 3

Slide 3 text

Design Doc - Why? ● One reference for everything related to that project ● Speed up implementation by having a clear reference and direction ● Improve quality by getting feedback from various stakeholders ● Find flaws/issues before they happen ● Improve code review quality ● Get alignment with architecture and other technical detail ● Help to onboard new members

Slide 4

Slide 4 text

Design Doc - When? Spec Discussion Design doc Development PM plans/create a new idea Design and functionalities are fixed Start development after getting approval for design doc

Slide 5

Slide 5 text

Design Doc - Process Design Discussion Review Code Before writing code,and/or while prototyping By people having an insight for the domain Incorporate insight and idea Similar to “develop/review code” but It costs much less if written before actual code

Slide 6

Slide 6 text

Design Doc - Lifespan ● Draft version and iteration ○ Shared initial draft with teammates ○ Update until find a stable version ● Review ○ Shared with wider audience ● Implementation and Iteration ○ Start implementation when reviews are done or almost done ○ Update if anything minor changes while implementation ○ For major changes create another version ● Maintenance and Learning

Slide 7

Slide 7 text

Design Doc - How? ● Follow the templates to start ○ Some teams have their own template ● Put it in Team Drive ● Get feedbacks by review

Slide 8

Slide 8 text

Design Doc - Teams ● Each team may have a different process ○ Design Docs may be required before implementation of some features ○ Other engineers or the tech lead may need to approve ○ Templates might be different ○ Some teams may not have a design doc flow ● Individual ○ Even if your team does not require it, you might write design docs for your own learning

Slide 9

Slide 9 text

9 Thank you!