教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

软件设计文档模板(如何才能写出好的软件设计文档?)

  软件设计文档模板(如何才能写出好的软件设计文档?)
  作为一名软件工程师,我花了很多时间在阅读和撰写设计文档上。在磨砺了数百篇文档之后,我发现,优秀的设计文档与项目的成功之间有着密切的联系。
  这篇文章将介绍怎样才能写出一份优秀的设计文档。
  为什么要写设计文档?
  设计文档也就是技术规范,用于描述你打算如何解决问题。已经有很多文章说明了为什么在开始编码之前要先写设计文档,这里不再赘述,不过我想再补充一句:
  设计文档是确保正确完成工作最有用的工具。
  设计文档的主要目的是迫使你对设计展开缜密的思考,并收集他人的反馈,以便更好地完成你的工作。人们通常认为,设计文档的目的是让其他人了解某个系统,或者作为参考文档。这些只是设计文档带来的有益的副作用,但绝不是它们的根本目的。
  从经验来看,如果你的项目需要一个人月或更长时间,那么就应该编写设计文档。另外,一些小型项目也可以从迷你设计文档中获益。
  但不同的工程团队,甚至是同一团队中的工程师,他们编写设计文档的方式存在很大差异。接下来,让我们来谈谈优秀设计文档的内容、风格和流程应该是怎样的。
  设计文档应该包含哪些内容?
  设计文档描述了问题的解决方案。因为每个问题的性质不一样,所以设计文档的结构也不一样。
  下面列出了一个清单,你至少可以考虑在文档中包含这些内容。
  标题和人物
  设计文档的标题、作者(应该与计划参与项目的人员名单相同)、文档的评审人员(我们将在"流程"部分详细讨论),以及文档的最后更新日期。
  摘要
  摘要可以帮助公司的每位工程师理解文档的内容,并决定是否需要继续阅读文档的剩余部分。摘要最多可以包含 3 段内容。
  背景
  描述要解决什么问题、为什么需要这个项目、人们需要哪些知识才可以评估这个项目,以及它与技术战略、产品战略或团队的季度目标之间的关系。
  目标和非目标
  目标部分应该包括:
  描述项目对用户的影响——你的用户可能是另一个工程团队或另一个系统。
  指定如何使用指标来度量项目的成功——如果可以链接到指标仪表盘那就更好了。
  非目标也同样重要,用于描述项目不会解决哪些问题,让每个人都达成共识。
  里程碑
  一系列可衡量的检查点,你的 PM 和上司可以借助它们大致了解项目的每个部分将在什么时间完成。如果项目时间超过 1 个月,我建议你将项目分解为面向用户的里程碑。
  在设定里程碑时可以使用日历日期,把延期、假期、会议等因素都考虑进去。例如:
  开始日期:2018 年 6 月 7 日
  里程碑 1——以暗模式运行新系统 MVP:2018 年 6 月 28 日
  里程碑 2——弃用旧系统:2018 年 7 月 4 日
  结束日期:在新系统中添加新特性 X、Y、Z:2018 年 7 月 14 日
  如果其中一些里程碑的 ETA 发生变化,需要在此处添加 [更新],相关人员可以很容易看到更新的内容。
  当前的方案
  除了描述当前的实现之外,还应该通过示例来说明用户如何与系统发生交互以及数据是如何流经系统的。
  这个时候可以使用用户故事。请记住,你的系统可能拥有不同类型的用户,他们的使用场景也不尽相同。
  提议的方案
  有人把这部分称为技术架构。这部分也可以通过用户故事来进行具体化,可以包含多个子部分和图表。
  先从大处着手,然后填充细节。你要做到即使你在某个荒岛上度假,团队的其他工程师也能按照你的描述来实现解决方案。
  其他替代方案
  在提出上述解决方案的同时,你还考虑了其他的方案了吗?替代方案的优点和缺点是什么?你是否考虑使用第三方解决方案——或使用开源解决方案——来解决问题,而不是自己构建解决方案?
  监控和警报
  人们经常把这部分视为马后炮,甚至直接忽略掉。而在发生问题后,他们就手忙脚乱,却不知道该怎么办,也不知道为什么会发生这些问题。
  跨团队影响
  这样会增加轮班待命和 DevOps 的负担吗?
  它的成本是多少?
  它会增加系统延迟吗?
  它会暴露系统安全漏洞吗?
  它会带来哪些负面后果和副作用?
  支持团队该如何与客户沟通?
  讨论
  这部分可以包含任何你不确定的问题、你想让阅读文档的人一起权衡的有争议的决定、对未来工作的建议,等等。
  详细的范围和时间表
  这一部分的主要阅读对象是参与该项目的工程师、技术主管和经理。因此,这部分放在文档的最后。
  从本质上讲,这是项目计划的实施方式和时间细分,可以包含很多内容。
  我倾向于将这一部分视为项目任务跟踪器,因此每当范围估计发生变化时,我都会更新它。但这更像是个人偏好。
  怎样才能写好文档
  在讲完优秀的设计文档应该包含哪些内容之后,现在让我们来谈谈写作风格。
  尽可能保持简单
  不要把设计文档写成你曾经读过的学术论文。论文是为了给期刊评论家留下深刻印象,而编写设计文档是为了描述你的解决方案,并从其他人那里获得反馈。你可以通过以下方式让文档变得更清晰:
  用词简单
  使用短句
  使用符号列表和编号列表
  提供具体的示例
  添加图表
  图表便于对几种选项进行比较,而且通常比文本更容易理解。我经常用 Google Drawing 来创建图表。
  请记得在截图下方添加一个指向图表源文件的链接,以便在发生变更时可以更新图表。
  包含数字
  问题的规模通常决定了解决方案的规模。为了更好地帮助评审人员了解情况,请在文档中使用实际的数字,例如数据库行数、用户错误数、延迟,以及这些数据与使用量之间的关系。(还记得大 O 表示法吗?)
  加入趣味性
  记住,技术规范不是学术论文。另外,人们喜欢阅读有趣的东西,但也不要为了趣味性而偏离了核心思想。
  自审
  在将设计文档发给其他人评审之前,自己先假装是评审人员。你对这份设计文档有什么疑问?然后在发出文档之前把这些问题解决掉。
  假期测试
  如果你在独家,无法访问网络,那么团队中的其他人是否可以读懂这份文档,并按照你的意图实现文档中的内容?
  设计文档的主要目的不是为了知识共享,但这是一种评估清晰度的好办法,让其他人可以为你提供有用的反馈。
  流程
  设计文档可以帮你在浪费大量时间实现错误的解决方案或解决错误的问题之前获得反馈。获得良好反馈是一门艺术,但那是后话了。现在,让我们来讨论下如何为设计文档获取反馈。
  首先,参与项目的每个人都应该参与设计过程。即使有很多决定是由技术主管做出的,那也没关系,至少每个人都应该参与讨论,并接收他们的设计。
  其次,设计的过程并不一定是盯着白板,在上面画出各种想法。你可以动起手来,建立各种可能的解决方案原型。这与在写好设计文档之前就开始写代码是不一样的。你完全可以随意写一些一次性的代码来验证你的想法。为了确保你的代码只是用于概念验证,原型代码都不能合并到 master 上。
  在你了解了如何进行项目之后,请执行以下步骤:
  请你团队中经验丰富的工程师或技术负责人来评审你的文档。理想情况下,评审人员应该是一个受到尊重并且对问题边缘情况已经很熟悉的人。
  在有白板的会议室里进行评审。
  向评审人员描述你正在解决的问题(这是非常重要的一步,不要跳过它!)。
  然后向评审人员解释你想要怎样实现你的想法,并说服他们这是正确的解决方案。
  在开始正式编写设计文档之前完成所有这些步骤,可以让你在投入更多时间并敲定解决方案之前尽快获得反馈。通常情况下,即使实现方式可以保持不变,评审人员仍然会指出一些需要你覆盖到的极端情况,或者指潜在的不明确的地方,并预测你以后可能会遇到的困难。
  然后,在你为设计文档写了粗稿之后,让之前的评审人员再次阅读它,并在设计文档的"标题和人物"部分写下他们的名字,作为对评审人员的鼓励,也表示他们是有责任对自己的评审行为负责的。
  在添加评审人员名字时,可以考虑为特定的问题添加不同的评审人员(例如 SRE 和安全工程师)。
  在完成评审之后,请将设计文档发给你的团队,以便获得额外的反馈。我建议把这个时间限制在 1 周左右,以避免延期。尽量在一周内解决他们留下的问题。
  最后,如果你和评审人员及其他阅读该文档的工程师之间存在争议,我强烈建议你将这些争议放在文档的"讨论"部分。然后,与各方召开会议讨论这些分歧。
  如果一个主题超过了 5 条评论,那么进行面对面讨论往往会更有效率。请记住,即使无法让每个人都达成共识,你仍然可以拍板。
  在最近与 Shrey Banga 谈论此事时,我了解到 Quip 有一个类似的过程,只是除了让团队中经验丰富的工程师或技术负责人来充当评审人员之外,他们还建议让不同团队的工程师评审设计文档。我没有尝试过这个,但可以肯定的是,这样有助于从拥有不同视角的人那里获得反馈,从而进一步提高文档的质量。
  在完成上述所有步骤之后,接下来就可以开始实现了!在实现设计的过程中,可以将设计文档视为活动的文档。在对实现方案做出调整时,也一并更新文档,这样你就不需要向所有利益相关者反复解释这些变化。
  那么,我们如何评估一份设计文档成功与否?
  我的同事 Kent Rakip 对这个问题的回答是:如果能够获得正确的投资回报率(ROI),那么设计文档就是成功的。也就是说,一份成功的设计文档可能会导致:
  你花了 5 天时间编写设计文档,迫使你对技术架构的不同部分进行了充分的思考。
  你从评审人员那里获得反馈,知道架构中某些部分具有较高的风险。
  你决定先解决这些问题,以便降低项目的风险。
  3 天后,你发现这些问题要么不可能发生,要么比你原先想象的要困难得多。
  你决定停止这个项目去做其他工作。
  在本文开头,我们说设计文档的目的是确保正确地完成工作。在上述的示例中,因为有了设计文档,你只花了 8 天时间而不是浪费了几个月才决定要中止项目。在我看来,这似乎也是一个非常成功的结果。

员工管理培训(企业员工岗位培训管理制度)员工管理培训(企业员工岗位培训管理制度)为规范公司员工岗位培训,制定本培训制度。一新员工入厂教育新员工入厂要进行厂级分厂班组三级教育,厂级教育48课时(其中安全教育24课时),分厂美容眼部护理手法(正确的眼部护理手法你知道吗?)美容眼部护理手法(正确的眼部护理手法你知道吗?)大家好,欢迎来到美致时分美容护肤知识分享课堂。眼睛是心灵的窗口,一双明亮的双眼可是电死人不偿命的。但是当眼睛开始出现细纹眼袋黑眼圈,国外新颖创业项目(国外稀奇创业点子有哪些?)国外新颖创业项目(国外稀奇创业点子有哪些?)都知道国外的人脑洞都比较大,他们总能有一些奇奇怪怪的想法,所以我们都说他们有创造力,所以在创业的点子上,外国人也想出不少稀奇的创业点子,致富找项目(农村致富种植项目)致富找项目(农村致富种植项目)1高钙菜高钙菜又叫养心菜,是一种适应能力极强的蔬菜,对于零下的低温都能忍受,给很多地方受低温度限制地方提供了一条出路。其次高钙菜营养及其丰富,既能入药第一部兵书(世界十大最顶级兵书)第一部兵书(世界十大最顶级兵书)世界十大兵书一孙子兵法孙子兵法,又称为孙武兵法吴孙子兵法孙子兵书孙武兵书等,是中国现存最早的兵书,也是世界上最早的军事著作,被誉为兵学圣典。共有六千先天性巨细胞包涵体病(小儿巨细胞病毒感染是什么?)先天性巨细胞包涵体病(小儿巨细胞病毒感染是什么?)在老家的一位姐姐,最近给我打电话说,她家的宝贝黄疸很长时间都不退,到了医院检查说是巨细胞病毒感染。因为之前从来没有听说过这种病,他仙侠小说(4本仙侠无限流小说)仙侠小说(4本仙侠无限流小说)大家好,我是小马哥,本期分享4本仙侠无限流小说,主角一路各种穿越,最终成就无上地位与实力第一本明尊作者辰一十一字数269万已完本短评仙侠无限流,主角人好莱坞四小花旦(好莱坞四小花旦之一阿曼达塞弗里德)好莱坞四小花旦(好莱坞四小花旦之一阿曼达塞弗里德)好莱坞四小花旦之一阿曼达塞弗里德好莱坞四小花旦之一阿曼达塞弗里德好莱坞四小花旦之一阿曼达塞弗里德好莱坞四小花旦之一阿曼达塞弗里德好中国淮南(淮南市中医院迁址最新进展)中国淮南(淮南市中医院迁址最新进展)淮南市中医院迁址新建项目环境影响评价公众参与信息二次公示根据中华人民共和国环境影响评价法和建设项目环境保护管理条例,淮南市中医院特委托安徽国恩环粟怎么读(儒怎么读)光明书话作者窦桂梅(清华大学附属小学校长语文特级教师)国无辞书,无文化可言。因为有了字典里的字,重要的东西才留在我们心里。1950年,中华人民共和国成立第二年就启动新华字典编纂的浩世界足球俱乐部排名(全球俱乐部价值排行榜)世界足球俱乐部排名(全球俱乐部价值排行榜)哪家球会是这个世界上市场价值最高的俱乐部?市值最高有多少?下面是直接来自德转官网的数据,截图了世界上市场价值最高的前二十五家俱乐部,分析如
玛莎拉蒂事件全过程(醉驾玛莎拉蒂撞宝马现场图全过程)玛莎拉蒂事件全过程(醉驾玛莎拉蒂撞宝马现场图全过程)7月3日晚,谭某明醉酒驾驶玛莎拉蒂发生车祸,致使一辆宝马后排两名乘客当场死亡,谭某明等4人受伤。次日,谭某明等三人因涉嫌危害公共谭明明案判决结果(玛莎拉蒂撞宝马案宣判)谭明明案判决结果(玛莎拉蒂撞宝马案宣判)河南玛莎拉蒂撞宝马致死案宣判,涉事女司机谭明明犯以危险方法危害公共安全罪,被判无期。车内另两人获刑3年,缓刑3年,3人共计赔偿千万。据悉,宝06超女冠军(最惨超女冠军)06超女冠军(最惨超女冠军)安又琪的学历水平不高,初中毕业就不再念书。不过这不是她混不动娱乐圈的原因,毕竟圈里学历低但人红的也不少。不再上学的安又琪决定北漂,到北京去实现自己的音乐超级女声2006(06届过气超女重聚)超级女声2006(06届过气超女重聚)作为中国内地的选秀鼻祖,超级女声曾是无数女孩心中难忘的回忆,从2004年以来,一举捧红了许多偶像。十余年后,那些当初站在同一起跑线的女孩们,情花西子老板(花西子品牌公关案例分析)花西子老板(花西子品牌公关案例分析)花西子品牌于2017年3月8日诞生于中国杭州,是一个以东方彩妆,以花养妆为理念的彩妆品牌。花西子探索中国千年古方养颜智慧,针对东方女性的复制特点米奇和朋友找字母(乐高正式公布米奇与朋友系列五款新套装)米奇和朋友找字母(乐高正式公布米奇与朋友系列五款新套装)乐高正式发布了米奇和朋友系列新套装,让我们一起来看下这些套装的官方图片吧。有一些看起来还是蛮有趣的。这些套装已经在乐高在线商斯柯达速派德系车性价比之王(德系性价比之王全新速派)斯柯达速派德系车性价比之王(德系性价比之王全新速派)外形方面,新款速派采用了家族化的设计语言。这款车上的每一处变化都能感受到设计师的匠心用心,比如纤细的前大灯设计。前大灯与L型尾灯越南中国(中国广州对越南水产品的进口需求大增)越南中国(中国广州对越南水产品的进口需求大增)诸多中国广州企业和商人有意采购越南的水产品。在当前新冠肺炎疫情在多个省市扩散蔓延,给越南供应链货运等方面造成重大影响的背景下,这对越南去越南要签证吗(越南签证种类,如何办理,如何避开坑)去越南要签证吗(越南签证种类,如何办理,如何避开坑)大家好,我是百万哥,一人闯越南三年了。今天我们聊一下越南签证,希望你把这篇文章看完,因为对你应该有用来越南,一共有21种签证,但爱德华八世(爱德华八世和辛普森夫人的传奇爱情故事)爱德华八世(爱德华八世和辛普森夫人的传奇爱情故事)德德华八世和辛普森夫人的传奇爱情故事,直到现在在欧洲还被广为流传。在不列颠近千年的历史当中,有一位国王主动退位,退位的原因竟然是为腾邦全球商品交易中心(选择腾邦全球商品交易中心的十大理由)腾邦全球商品交易中心(选择腾邦全球商品交易中心的十大理由)特邀嘉宾云团超级投资俱乐部团长陈伟先生开始前,先做一下本人自我介绍我是云团超级投资俱乐部的创始人我做这个行业大概从16年开