设计评审(Design Review),即在真正开始开发之前,组织一次或多次会议,先评审设计,以降低日后返工甚至项目失败的风险。相信工作过一段时间,开始主导一个功能模块甚至整个系统的同学,都对设计评审不会陌生。今天偶然看到了一篇亚马逊VP及Distinguished工程师Brad Porter的一篇博客,讲述了设计评审容易陷入的问题以及他主张的一些最佳实践。也许并不适用于所有公司和项目组,但不妨一听,借鉴其中对自己有用的部分。

先放上英文原文供感兴趣的同学阅读,标题就是:《Why Design Reviews so Painful & How Fix》,为什么Design Review如此痛苦,如何改善它。


1.典型的设计评审

典型的设计评审是什么样呢?召集一群项目相关人员,主要是经理和工程师们。工程师又主要由比较有经验的架构师、高级工程师等组成,当然也会有其他工程师旁听。会议开始后,一般有经验的工程师会更主动表达自己的想法。这点是可以预料到的,因为他们的宝贵经验会给予他们多个视角来看到你要解决的问题。但问题是,每个人可能都会有好几种想法,假设#想法=3,如果5个人发言的话,去掉相近的,可能就产生了10-15种视角。于是设计评审会议就开始失控。最终的结果就是:评审人觉得自己很聪明,表达了很好的观点,而你最后发现没有几条具体的建议可以采纳。于是,一次低效的设计评审就结束了。


2.如何提高效率

作者在文章里提出了一套设计评审的流程供大家参考:

  1. 阅读时间:即便提前在会议邀请邮件中附上了设计文档,可能也很少有人会仔细看。所以,会议一开始就是大家一起安静看文档的时间。出于这个原因,至少第一次在会议,大家都不熟悉背景的情况下,设计文档不能过长。作者主张最多6页,包括附录。
  2. 提问时间:接下来就是提问时间,把大家的问题记到墙上的白板。这一步是关键,作者的秘诀就是:不要回答!不要回答!不要回答!
  3. 回答时间:收集完问题后,可以让大家休息五分钟,同时设计者你开始思考设计文档中哪一部分可以解答这些问题。等休息结束后,就对这些问题一一解答。这样每个人都有机会表达自己的观点,即便之后的讨论再次失控,最坏情况下你得到了一份有价值的问题列表。

3.个人的一点经验

前面的内容基本是对原文最精华部分的总结。这里再加上一点个人的建议,结合在一起基本上可以很好地应付多数评审:

  • 明确要解决的问题:在开始介绍你的技术方案前,我们技术人员最容易忽视的一点就是要解决什么问题(Problem Statement),是不是对我们或者客户有价值。这个价值取向的动机才是你设计的立足之本。
  • 明确问题空间:就像刷题时要考虑输入数据的Domain一样,项目设计的问题空间(Problem Space)或者范围(Scope)也很重要。因为本质上不管是小算法题还是大项目设计,都是要解决一个问题。在设计文档中一上来就应该写清楚哪些问题你已经考虑过了,但是因为什么原因不准备在这一期项目中实现。明确了之后,听众们后续也就不会再提无关的问题(Out of Scope)。
  • 明确设计评审的要达到目的:设计评审不是让大家读一遍你的文档,而是对于一些关键的设计决策(Design Option & Decision),收集大家的建议,这才是评审最有价值的部分。对于每个点,你自己都应该列出你能想到的方案及trade-off,而不是抛出来让其他人帮你在会议当场去想方案。
  • 像节目主持人一样把控节奏:即便精心准备,做好前面说到的每一点,也肯定有意想不到的情况发生。关于节奏的把控,要像电视节目主持人一样,控制好每个问题讨论的时间,确实没有想过的问题就先记下来,最后发会议纪要和下一轮会议时再解答。关于这一点,只有不断练习才能提高,可能第一次主导评审时多数人都会被问的焦头烂额,时间长了就会游刃有余,没有什么秘诀。

如何高效地做设计评审相关推荐

  1. 如何高效地做竞品分析,并找到工作灵感?

    http://mp.weixin.qq.com/s?__biz=MjM5OTEwNjI2MA==&mid=401347650&idx=1&sn=ef28356db8320ba8 ...

  2. php 提交的数据覆盖,如何高效的做数据覆盖操作

    我有一批数据是通过第三方接口更新的,那个接口是按分类获取的,同一个分类的下的数据每次获取玩要要进行覆盖处理, 比如图书这次获取的是1,2,3这三个id的数据三本书 过10秒我还按图书分类获取 获取的是 ...

  3. 产品经理如何高效的做用户调研?

    本文有PMCAFF 原创作者  justinlam 原创发布于pmcaff.com 用户调研作为产品人员最常用的工作方式,相信各位一定不会陌生.但如何提高用户调研的有效性却是一直困扰大家的问题,网上有 ...

  4. 软件测试为什么评审,为什么要做设计评审和测试用例评审

    设计评审和测试用例评审我们都是迭代的第二天做,一般会给开发人员半天的时间思考一下他自己故事的设计,然后抽出1-2个小时进行设计评审,设计评审完后就做测试用例评审. 设计评审就是让团队帮你查遗补漏完善你 ...

  5. 跨境电商:如何高效地做海外网红营销?

    2022年跨境市场的从业者基本都感受到了市场给予的机会,也正是因为处于风口之上,越来越多的独立站.DTC品牌希望抓住网红营销这个时间窗口,成为头部品牌. 为什么做网红营销? 效果价值:低成本.迅速.大 ...

  6. 如何高效地做游戏测试?

    我们都希望作品从一开始就给大家带来完美的体验,不需要运行一系列乏味的beta测试.但事实却是花费大量的时间与精力投入到工作中,不能保持对全局的掌控.这使我们的目光远比想象的短浅. 去年,我为一款游戏做 ...

  7. 如何高效的做机器学习项目

    2020-02-07 08:01:00 作者:Radek Osmulski 编译:ronghuaiyang 导读 这篇文章比较早,但是内容很好,从实践中来到实践中去.确实是作者的经验之谈. 我刚完成一 ...

  8. 华为数字化转型之道 实践篇 第八章 数字化交易:让做生意简单、高效

    第八章 数字化交易:让做生意简单.高效 交易流对于大多数To B企业而言都是核心业务流之一.交易流既包括信息流,它即关乎客户的满意度,又直接影响企业经营业绩的好坏. To C场景的挑战在于简单的事情如 ...

  9. 谷歌是如何高效做AB实验的

    本人微信公众号为"推荐算法学习笔记",定期推出经典推荐算法文章,欢迎关注. 我们知道互联网公司经常要上线各种各样的实验,例如修改UI界面的某个按钮,上线一个新的算法等等.通过实验的 ...

最新文章

  1. 人脸识别登上Nature封面!看脸的世界,AI却心怀偏见
  2. 【Python】轻量级分布式任务调度系统-RQ
  3. 实战:将静态路由发布到动态路由
  4. [RN] 全国城市列表选择 (包含定位城市、热门城市、全国城市)
  5. linux 查询线程是否结束_批量随机键值查询测试
  6. ElasticSearch中文分词器-IK分词器的使用
  7. 程序员基本功03常见JAVA集合的实现细节
  8. Deep GSP : 面向多目标优化的工业界广告智能拍卖机制
  9. 学生成绩查询java版_学生成绩查询系统,基于ssm的JAVA系统
  10. 在CentOS 6上搭建LNMP环境
  11. 灵感分享| 实例UI组件的设计风格
  12. 华硕笔记本r414u怎么安装键盘_华硕笔记本键盘灯怎么开
  13. 查看现有运行的linux服务器有多少内存条
  14. win10系统如何解除端口占用
  15. 外星人绝对不会入侵地球,看不上
  16. latex 定理环境,引理,定义,自定义 proof 环境
  17. web app 中如何调用支付宝app 进行支付
  18. 竟然可以在Windows下用Nvim写代码?1.基础配置环境与安装nvim
  19. 报错:启动apache服务时出现报错
  20. 用友优普孙永军:制造业的三座“大山”

热门文章

  1. python在医学中的应用_如何应用Python处理医学影像学中的DICOM信息
  2. 跳转到QQ聊天界面和QQ群界面
  3. 网上打印店可以急速打印东西吗?
  4. scrollTop记录滚动位置
  5. 解决 Chrome 浏览器地址栏字体发虚模糊
  6. 纯代码告诉你:我的原弈非常(Yanj Future)是怎么下棋的
  7. python常见ubr前缀的使用与作用
  8. LOESS局部加权非参数回归
  9. 【转载】吉安,被遗忘的才子之乡
  10. 【轮子1】造一个炫酷的DEBUG输出