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

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

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

杜蕾斯惨败(反思杜蕾斯营销误区)杜蕾斯惨败(反思杜蕾斯营销误区)从微博到微信,从PC到手机,社交媒体在中国走了十多个年头,而微信和微博也成为互联网营销的基本配置。如何运营社交媒体,玩转私域流量,如何持续……一架印度战机被击落,边境哨所进入一级戒备,大批援军火速赶来一架印度战机被击落,边境哨所进入一级戒备,大批援军火速赶来如今印度又在对外购买大量的武器装备,想要把更多的武器装备都运往到边境地区,现在还在边境地区装备了大量的无人机,这……公式相声李宏烨为什么想要拜师马志明?他想拜马志明为师没有道理,因为用微积分不会算出来汉字,更不可能有马志明三个字了。再说了他如果送三本公式相声书马志明也看不懂啊。那有可能就是碰瓷马志明,因为他成功的碰瓷了姜昆,还……小霸王游戏机(618小霸王游戏机和Switch卖疯了!)小霸王游戏机(618小霸王游戏机和Switch卖疯了!)6月19日,随着今年618电商大促节的落幕,各大平台的消费数据相继公布。据媒体报道称,今年618期间游戏机销……谷雨是什么季节(二十四节气之谷雨)谷雨是什么季节(二十四节气之谷雨)朋友们,大家好!我是于丹。清明过去谷雨来了,春天的最后一个节气,在暮春时节告诉我们季节要交替了。谷雨是二十四节气里的第六个节气,所……尼古拉特斯拉(再多了解一些尼古拉特斯拉)尼古拉特斯拉(再多了解一些尼古拉特斯拉)我们中华民族有千古第一奇人鬼谷子;百家宗师,千古武圣姜子牙;还有谋取天下如烹小鲜的张良;以及神机妙算天地间的刘伯温。他们都有颇为传……悲伤逆流成河加了校园霸凌题材的青春片依然做作最近的院线影片跟商量好似的。除了《江湖儿女》其他几部都不及格,而且评分还不相上下。《江湖儿女》作为文艺片只有口碑而票房却不尽如人意。实时票房最高的竟然是郭敬明……什么时候中考(今天距离222年中考还有几天)全市的家长和考生们:6月17日,我们将共同迎来一年一度苏州市初中毕业暨升学考试(以下简称中考)。2021年苏州市中考时间为6月1719日,今年我市有八万多名考生参加……黄山3日游(游黄山,探宏村)黄山3日游(游黄山,探宏村)线路简介线路总里程:约434公里行程节点Day1合肥大通古镇黄山(280公里)Day2黄山Day3黄山宏村西递(……黄山宏村旅游(宏村一日游)黄山宏村旅游(宏村一日游)舒放身心意自闲,饱餐徽韵醉宏村。早就想去宏村了,一直不得闲,刚好有个新入职的同事老公是宏村的,借着这股东风,三三两两携伴而行,美其名曰拓展……长春中考(2021长春中考成绩出炉)长春中考(2021长春中考成绩出炉)2021长春中考成绩出炉,先来看一下今年长春中考最高分集合(分数来源:网络汇总):师大明珠:640、吉大附中:638、108中:……放线菌病(家畜放线杆菌病的诊治方法)放线菌病(家畜放线杆菌病的诊治方法)放线杆菌是一种特异性传染病,在牛其特征是舌部发炎,咽淋巴结和食道沟的炎症较少见。在绵羊,损害局限于头部和颈部的软组织,偶见于鼻腔,舌部……
脱口秀大会黄希退赛,李诞请他为新人抬轿子?周奇墨名利双收《脱口秀大会》黄希退赛,李诞请他为新人抬轿子?周奇墨名利双收!黄西是公认优秀的脱口秀演员,可以说他是脱口秀的引进者,也是一位引领者,为人目光敏锐,眼界比较宽广,而且个人实力不容……windows7万能激活码(Windows7系统激活序列号大windows7万能激活码(Windows7系统激活序列号大全)虽然微软大力推广Win10系统,但就目前来说,依旧有非常多的用户还是使用Win7系统。对于Win10系统对……放射卫生(放射卫生安全)放射卫生(放射卫生安全)近日,在浙江省衢州市龙游县,卫生监督执法人员对辖区内一家民营医院进行监督检查时,发现该院有多名从事放射工作的人员未按规定进行职业健康检查。卫生监督……张雨绮怒了!手撕芒果台恶意剪辑退出恋综,这是恋爱脑上头了?8月22日,《女儿们的恋爱》节目放出一段预告内容,其中张雨绮与男友之间的一段对话引发热议。主要内容是男友李柄熹,在节目中与张雨绮讨论演戏相关问题,表示自己最近想演戏了;……集团公司管理制度(某集团公司采购管理制度)集团公司管理制度(某集团公司采购管理制度)第一章总则第一条为规范集团公司及下属分公司、子公司采购行为,加强对物资、工程和服务采购的管理与监督,依据《中华人民共和国招……gmail电脑客户端(配置邮箱客户端Gmail)gmail电脑客户端(配置邮箱客户端Gmail)公司的游戏的找回密码功能发邮件是走GMail渠道来实现的。之前在做这一部分的时候,受到QQ邮箱的影响,以为没什么大问题(之……广州博物馆(广州艺术博物院今天恢复对外开放)广州博物馆(广州艺术博物院今天恢复对外开放)广州艺术博物院今晨发布通告,宣布将于今日下午恢复对外开放。据艺博院通告称:广州艺术博物院将于2021年6月23日(周三)……妻子的浪漫旅行蒋勤勤素颜青筋明显,秦海璐被吐槽像广场舞大妈妻子的浪漫旅行:蒋勤勤素颜青筋明显,秦海璐被吐槽像广场舞大妈《妻子的浪漫旅行》这档综艺节目如今已经播出到第五季了,从这档节目播出到现在收视率一直都很好!新一季的节目中,嘉……回锅肉配菜(肥而不腻的小炒回锅肉!)回锅肉配菜(肥而不腻的小炒回锅肉!)肥而不腻的小炒回锅肉,鲜香味浓超下饭,一周三次都吃不够如果觉得还不错不要忘了关注我哦,每一个关注都是一份鼓励。我会更加努力更新优……重看还珠格格第二部,为什么弹幕里那么多人讨厌小燕子?重温《还珠格格》第二部,发现画风有些变,那个人见人爱的小燕子,怎么变成了弹幕吐槽的对象?无奈剧本这么写,演员只能这么演。赵薇的演技在线,但是小燕子的人设确实崩了。重……广州出游(广州新添海心沙人行景观桥)广州出游(广州新添海心沙人行景观桥)古往今来,桥一直是文人墨客笔下的重要元素。桥,不仅承载着交通功能,更是城市景观以及市民情感寄托。最近走进广州新建的海心桥一探究竟……pose大全(7个必须学会的通用拍照姿势)pose大全(7个必须学会的通用拍照姿势)女生都喜欢拍照,但是能拍得很好看的人不多,毕竟拍照姿势这个东西不会天生就会的。所以,一定要在平时的生活中多拍照,多学一些拍照姿势……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网