《清单革命》、日报与程序员的一天


“本月写点啥呢~ ”,我边想边翻找书柜。“咦!”,发现一份名字带劲的书——《清单革命》,这是老婆学习项目管理时读的书。
刚好我在工作中也是有列清单的习惯,不知此书缘何带有“革命”这样的字眼呢?便趁此机会读读吧。
——清单的价值——

《清单革命》的作者是一位美国的医生,他尝试在外科手术中引入清单来帮助减少“无能知错”,从而提高手术成功率并在小范围实验后发现清单的确能够实现这一点。
为了能够普及清单作者调研了两个已经使用清单管理日常工作的行业——航空业与建筑业。
航空业清单的应用集中体现在飞行员的驾驶工作上。首先是日常飞行的起飞、降落等流程固化为操作清单,严格按照清单操作,即可避免事故。再者是应对意外上,飞行中一旦发生意外其后果非常严重且供给飞行员解决问题的时间非常少,此时就需要有简洁高效的执行清单助力。
现代建筑极其复杂,建筑业需要大量掌握不同技能的人长时间通力合作,但失败率却极低。其依靠的便是计划清单和沟通清单。前者用于在设计阶段排查问题和管理进度,后者用于在出现问题后用团队的力量找到解决方案,避免犯错。
——日报与工作——

当我提交日报时,本质上提交的是一个清单,其描述了今日完成的工作1、2、3条。
以我的习惯,对今日工作的安排是在前一天晚上或当天早上就是已经做好的——列好清单一条条执行,紧急任务就插入一条。到晚上就能根据“划掉”的条目来输出日报。
一定意义上可以讲,日报是先于执行的;用日报指导工作而不是完成工作后再输出日报。
——具体实践——
接下来从几个具体场景说明清单在程序员的工作中是如何发挥作用、指导完成工作的。
场景1,项目从0~1的第一天

项目背景:
此时已立项,产品初步描述项目蓝图,美术开始定风格,技术侧此时也需要启动对底层架构的搭建
人力背景:
前端研发一名,一般为中高级
执行:
在这个阶段最需要的是程序员的“产品思维”,也就是能够抽象出组成完整项目的技术模块,并组合它们搭建框架。这需要程序员经历过多款项目,拥有丰富的经验,并对产品研发已经形成自己的理解。所以至少需要中级程序,最好由高级程序员执行。
在这一步我会先输出两个清单——调研清单,架构清单
调研清单:

新项目一般会采用最新版的引擎,但新版本带来新特性的同时也带来新问题,所以调研是必须的。
首先调研项目最需要的功能是否支持,这个一般问题不大,但也有意外。比如迭代了N代的tiledMap功能,偏偏在最新的3.6版本下有致命缺陷——地图稍大时会加载不出。还好技术论坛官方给出了解决方案,否则是无法采用此版本引擎的。
再者是必需的插件在新版本也可能出现不兼容的情况。此时就要考虑是否有替代方案或者有时间可以等待插件升级。否则就不能使用最新版。
最后要用新引擎在目标发布平台出个包,这一步是为了走通完整的工作流,确保无致命的阻塞问题。
以上步骤做完,引擎版本就确定下来,接下来需要启动技术架构搭建
架构清单

在第一天,列出架构清单比实际编码重要的多。
在上面清单列出后,会一条条进行推演,思考它们在架构中的作用,互相之间的配合方式,应该提供的核心接口——初步绘制类图和时序图。
这样不只能对研发进度准确把控,更重要的是可以推演架构做到“胸有成竹”。
总结:
这一天使用清单来避免“无能之错”,做好研发计划,拆分具体任务。
场景2,日常研发阶段

项目背景:
架构清单已出,需要编码实现
人力背景:
前端研发一名,一般为中高级
执行:
对今天要执行的工作会先有个安排,也就是“日报”,如下
完成项目目录结构,启动流等的设计和实现
引入跨引擎组件,包括状态机,命令模式,Buff系统等
完成初版的场景和UI管理器,实现极简版的从登录页到游戏场景的Demo
软件产品研发有很重要的思想叫做“敏捷开发”和“迭代”。通过小步快跑不断输出小版本,让产品快速“可见”,促进产品质量的提升。
所以虽然架构搭建阶段多是纯编码工作,但仍然需要产出“可见”的进展。这天的核心目标树就是“实现极简版的从登录页到游戏场景的Demo”,前2.5条日报都是为了这个目标服务的。
总结:
“日报”其实就是“执行清单”,它可以给到当天工作清晰的目标和执行路径。
场景3,发现问题

在建筑业,相信“团队犯错的概率比单个人要小”的思想。当遇到问题时,会排个时间,各方面的专家聚在一起讨论输出一个达成共识的解决方案。
这点在游戏行业,在技术研发测,在日常研发中是没有那么“重度”的,如下
项目背景:
拿到需求案和美术资源,进行研发
人力背景:
技术团队一员
执行:
在研发的工程中发现问题,比如需求案描述不清晰,美术资源格式/切图不对,当前不支持实现等等。
这个时候通常不需要排到“沟通清单”中——直接在业务群中@产品/美术抛出问题,讨论解决就行。
总结:
在软件研发业也应该相信“团队犯错的概率比单个人要小”的思想,遇到问题多与各方讨论,得出最优解。
——大总结——
想清楚要做什么比具体执行更耗费精力,所以在项目初期,在一天之始就应该列出“执行清单”,以便做到胸有成竹,更好的完成工作。

伙伴,都看到这了~ 右下角点个“赞”和“在看”呗
到顶部