{"id":35,"date":"2024-02-13T14:09:12","date_gmt":"2024-02-13T11:09:12","guid":{"rendered":"http:\/\/caitiem.com\/?p=35"},"modified":"2024-02-13T15:28:45","modified_gmt":"2024-02-13T12:28:45","slug":"design-docs-markdown-and-git","status":"publish","type":"post","link":"http:\/\/www.caitiem.com\/2020\/03\/29\/design-docs-markdown-and-git\/","title":{"rendered":"Design Docs, Markdown, and\u00a0Git"},"content":{"rendered":"\n

About a year ago my software engineering team, the Azure Sphere Security Services (AS3) team, found ourselves struggling with our design document process.\u00a0 So we ran an experiment, moving all our design documents to be written in Markdown, checked into Git, and reviewed via a pull request (PR). The experiment has been incredibly successful, so we\u2019ve iterated and refined it, and have even expanded it to the broader Azure Sphere team.\u00a0 The goal of this blog post is to share our process and what we learned along the way.\u00a0\u00a0<\/p>\n\n\n\n

Our original design doc process involved writing a Microsoft Word document and sharing it via SharePoint.  Feedback was gathered via in person reviews, doc comments, and emails. Approval was then done over email. To signal that a document was the \u201capproved plan of record\u201d versus \u201can under review draft\u201d, we toggled a property on the document.  Users could filter documents on the SharePoint by this property to disambiguate between the two states.  <\/p>\n\n\n\n

This worked fine when we were a small team, with a small number of documents, but became challenging as the team grew.\u00a0 For context the Azure Sphere team, started out as a handful of people working in Microsoft Research and has grown rapidly over the past 3 years as we\u2019ve went from research project to Generally Available Product.<\/p>\n\n\n\n

Challenges<\/h2>\n\n\n\n

Some specific challenges were identified via the AS3 retrospective process.  When evaluating new options we kept these pain points in mind:<\/p>\n\n\n\n