你好,我是郑晔。
“以终为始”这个主题模块已经全部更新完毕,相信通过对各种实践的深入讲解,你已经对“以终为始”这个原则有了更为全面和透彻的理解。
为了帮助你更好地回顾和复习,我为每个主题模块增设了“划重点”的加餐内容。现在,我就带你一起梳理一下“以终为始”主题的核心要点。
在这个模块中,我们学习到了一些行业最佳实践。
还学习到一些重要的思维转变。
在每一篇文章的结尾,我们还将全篇内容浓缩为“一句话”的实战指南,希望你可以迅速上手,把“以终为始”的原则运用在实际工作之中,我们一起来回顾一下这些实战指南。
遇到事情,倒着想。
——《02 | 以终为始:如何让你的努力不白费?》
在做任何事之前,先定义完成的标准。
——《03 | DoD的价值:你完成了工作,为什么他们还不满意?》
在做任何需求或任务之前,先定好验收标准。
——《04 | 接到需求任务,你要先做那件事?》
尽早提交代码去集成。
——《05 | 持续集成:集成本身就是写代码的一个环节》
默认所有需求都不做,直到弄清楚为什么要做这件事。
——《 06 | 精益创业:产品经理不靠谱,你该怎么办?》
扩大自己工作的上下文,别把自己局限在一个“程序员”的角色上。
——《07 | 解决了很多问题,为什么你依然在“坑”里?》
在动手做一件事之前,先推演一番。
——《08 | 为什么说做事之前要先进行推演?》
问一下自己,我的工作是不是可以用数字衡量。
——《09 | 你的工作可以用数字衡量吗?》
设计你的迭代0清单,给自己的项目做体检。
——《10 | 启动开发之前,你应该准备什么?》
在这个部分的最后,针对大家在学习过程中的热门问题,我也进行了回答,希望你懂得:
同学们的留言很踊跃,也很有价值。精彩的留言本身就是对文章内容的补充与丰富,在此我挑出一些优秀的留言与你分享。
在讲高效工作的思考框架时,张维元 同学提到:
思考框架是道,原则是演化下的术,我们从 A → B,有无穷无尽的路径,最有效的唯有那条直线。本质上,各个维度、原则(不限于作者提到的四项原则)都是帮助我们更好地定位 A 在哪里,B 在哪里,那条直线在哪里。
对于以终为始的原则,WTF 同学提到:
“以终为始”,最常见的一个实践就是计划倒排了。先定时间,然后看功能是不是做不过来得砍掉一些,人力是不是不够需要补充一些,提前预知规避风险。
对于用户故事的验收标准,liu 同学提到:
程序员的核心职责是如何实现产品功能,怎么实现功能;前提是理解产品功能,需要实现哪些功能。有些项目经理,产品经理与程序员角色混淆。你同他谈功能,他同你谈技术实现,你同他谈技术,他同你谈产品(需要实现哪些功能)。
大家对沙盘推演的话题很感兴趣。其中,西西弗与卡夫卡 同学提到:
推演可以发现达成目标会涉及到哪些部门、哪些利益相关者,需要哪些资源,以及他们需要何时怎样的配合。
ZackZeng 同学也针对这个话题留言:
项目上线之前,一般都会有一个launch plan, 数据库迁移这种项目,不去考虑上线回滚我认为是设计上的缺失。我们公司的launch plan一般是写成一步一步的checklist, 在上线之前会做同伴审查。
Scott 同学也提到:
我觉得领导说先跑通再说和事前推演是不矛盾的,很多时候,我们需要一个poc来证明这个项目是可行的,这其实也是事前推演的一部分。上线要事无巨细的检查推演,和快速跑通poc不矛盾,当然现实世界是,大家就急着把poc当正式产品上线了,这是无数个悲剧故事的序章。
休息一下马上回来 同学对推演过程进行了很好地补充:
上线前,哪些机器什么配置,应该有一个预期,甚至提前准备好。
adang 同学也分享了他在工作中的感悟:
想清楚了才能写清楚,这是我在编程工作非常认可的一句话,并且我也认为它是区分合格与不合格开发工程师的重要区别。软件开发过程中,最常见的例子就是拿到需求后不管三七二十一,上来就开始撸代码,但最后往往返工不断,质量问题层出不穷,而且加班没完没了,这里面一个根本原因就是没有系统地想清楚,但很多人都觉得前期澄清需求、分析设计是浪费时间,只有编码才是真正的创造价值,这就是差距。
在讲到工作要尽量用数字衡量时,西西弗与卡夫卡 同学提到:
比如开发常常关注的是产品经理提的功能有没有实现,实际上也应该了解做出来的有多少人使用,每个页面有多少人使用。此外,看开发是否努力勤奋,不要光听他说,而是要看看他提交git有多频繁、提交的时间段、代码量有多少。代码质量可以用bug数/代码量来衡量。当然,这些量化未必科学,甚至会被误用,但总胜过凭印象拍脑袋的判断。
大彬 同学也提到:
上周我把一个方案进行推迟了,让同事去搜集某项指标的数据,没数据,一切方案都是空谈。AB测试,留言量,阅读量,转发量一切数据都是下一步决策和改进的基础。
篇幅限制,就为大家分享这么多,感谢同学们的精彩留言。留言区还有很多同学提出了各种问题,其实都可以用任务分解的方式去解决。不着急,我们下一个主题的内容就是“任务分解”。
感谢阅读,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给你的朋友。
评论