防呆即减少对人的注意力、能力和经验的依赖,通过设计提炼为模式或方法避免犯错或最大限度地降低犯错概率的发生。生活和工作中随处可见防呆设计的例子:
防呆设计给工作和生活带来的好处是显而易见的,举几个没有防呆的例子你就知道防呆有多重要了,比如:
因为软件开发的复杂度以及开发人员能力经验参差不齐,在开发过程中开发人员犯错是常有的事情。轻则几乎没有影响,比如大多数代码层面的错误;重则影响项目进度、项目质量甚至是产品口碑,比如流程机制或关键节点方案决策上的错误。不管是个人或团队,犯错不可怕,但一直犯错才可怕。作为团队负责人,有必要基于过往经验和团队实际情况总结提炼出模式或方法,固化下来防呆,避免或降低错误的发生,就像设计模式一样,使用了设计模式就能在一定程度上保证代码的质量。
结合在实际工作中的实践,分享一下在软件开发过程中的防呆设计。
通过自动化实现流程上的防呆:
通过将Gitlab、Jenkins和企业微信打通,实现提交代码后即可通过企业微信接收构建错误的结果通知,避免提交代码后忘记构建、或者构建错误没有及时修正的问题。具体做法是通过Gitlab的Webhook实现提交代码自动触发Jenkins项目的构建,通过对企业微信做二次开发,实现Jenkins构建后将构建结果推送到企业微信。更进一步还可以打通自动化测试平台、线上异常采集平台、运维平台和企业微信,实现测试报告、异常报告、运维告警的自动推送。
通过模板化实现规范化和技术方案设计上的防呆:
团队规范的落地是一件头疼的事情,比如编码、命名、公共技术使用规范:
通过将技术方案设计文档模板化,避免因为人员能力、经验的差异,导致不同人做出来的技术方案质量相差太大、考虑不周全。尤其是需要团队或上级决策的文档,通过模板化可以让你考虑得更为周全,减少对人的依赖。不要指望你没意识到的问题团队其他成员或上级能够发现,他们也是人,并且对项目的理解还没有你深入,总有考虑不周全的情况。
通过CheckList实现项目发布版本时的防呆:
有本书叫《清单革命》,全书的主题就是讲清单的重要性,尤其是对于复杂的工作,通过梳理清单可以降低对人的依赖,避免或降低错误的发生。在软件版本发布时,也很有必要梳理清单,将每一项需要做的事情作为检查项,形成版本发布的CheckList。比如埋点、自更新、切换正式服务器、专项测试是否通过、依赖最稳定的公共技术组件、修改版本号和版本名等和软件功能不相关但影响发布质量的事项。每次发布版本前必须逐一Check确认CheckList中的每一项,都通过了才允许发布版本,避免了很多影响发布质量问题的出现。
下面是对这篇文章的总结: