我想也许你早就听说过“Deadline是第一生产力”这句话,哪怕以前没听说过,我相信看完本文后,再也不会忘记这句话,甚至时不时还要感慨一句:“Deadline是第一生产力!”。

在日常生活中,Deadline倒逼生产力的例子比比皆是,比如说:

  • 上学时,临近到要交作业的Deadline了,游戏都顾不上玩了,急急忙忙赶作业。

  • 工作中,项目发布的Deadline临近了,大家加班加点,热火朝天赶着开发功能和修复bug。

  • 生活中,快到了要报税的Deadline了,每个人都急急忙忙赶在Deadline前把税给报了。

不管多拖延的人,快到了Deadline的时候,总能爆发出惊人的生产力。这就是为什么我们总是说:Deadline 是第一生产力。

与之相反的例子也很多,一些没有Deadline的事情,总会能拖则拖,直到不能拖为止,或者干脆不了了之。比如说:

  • 程序员常有一些绝妙的想法,比如写一个开源项目,做一个App或者网站,结果因为没有Deadline,结果总是开了个头,就再没结果了。

  • 工作中很多项目,虽然有计划,但是没有强Deadline,结果需求一改再改,计划总是在跟着调整延迟,一直不能上线。

  • 比如说我这篇文章,打算写很久了,但因为没有Deadline一直拖着,最近终于给自己定了一个Deadline是这周末要写出来,这才开始动笔。

这些失败的例子,归根结底,一个很重要的原因就是没有Deadline,导致不能发挥出生产力,或者生产力没有用在正确的地方。

Deadline为什么能创造出巨大的生产力?

为什么Deadline这么神奇,能创造出巨大的生产力?

无论是个人的事情还是项目,生产力低下,不能按时完成的原因,总结下来不外乎三种:

  1. 想太多

  2. 过于追求完美、关注细节

  3. 不够专注

想太多

回想一下你做过的事或者项目,是不是会有“想太多”的情况。这并不是说在动手做之前先思考不好,而是有时候,因为停留在想的时间太长,迟迟没有动手,导致想的太多对于做成一件事反而会成为一种阻碍。

比如说想写一篇文章,打腹稿打的太久,最后都模糊了当初要写的观点,真下笔的时候,很多思考完全用不上;想写一个程序,设计了太久,不仅花了太多的时间在不必要的设计上,最后留给写程序的时间就不多了;做一个项目,在需求上想太多,迟迟不能确定,最后留给后面设计和开发的时间很短。

当有了明确的Deadline,想太多的问题就会有明显的改善,该写的文章就动手写起来了,程序差不多时间也就动手编码起来了,需求也能早点明确下来。

过于追求完美、关注细节

追求完美、关注细节不是坏事,像乔布斯就以关注细节而闻名,但对一个项目来说,有时候过于追求完美、关注细节反而会导致项目失败。

比如说想打造“完美”的产品,导致产品一改再改,迟迟无法上线;程序设计时考虑各种未来可能的需求,导致设计非常复杂,很难实现。

想象一下,如果你本来想做一个完美的产品、设计一个完美的架构设计,但是有个很严格的Deadline,必须要保证在Deadline前交付,那么你是不是就不会那么追求完美和细节,而是抓住最核心最主要的功能和设计,先保证能交付。

不够专注

当一件事没有明确的deadline时,就很容易被其他事情分心,比如说上上网、玩玩游戏,只有在deadline临近时,才能专注在要做的事情上,不再被那些无关紧要的事所分心。

借用时间四象限的理论,有了Deadline,你要做的事情就变成了“重要并且紧急”,否则就会变成“重要不紧急”甚至是“不重要不紧急”,以至于一拖再拖。

结合项目管理金三角来分析

我曾经在《怎样平衡软件质量与时间成本范围的关系?》一文中提到了项目管理金三角的理论,也就是软件质量和时间成本范围三者之间是相互制约的关系。

结合前面的分析:

  • “想太多”的问题本质上是在压缩了你的有效时间和扩大了范围,导致失控;

  • “过于追求完美、关注细节”的问题本质上是扩大了范围,导致失控;

  • “不够专注”则是一些不重要的事情挤压了你的时间。

而当你的项目有强Deadline的时候,说明金三角的三条边中,时间这条边是固定住的,只能少不能多,那你就只能去调整范围和成本另两条边。而成本很多时候也是不能动的,最终结果就是缩小范围和有效利用时间。

所以说,Deadline之所以能提升生产力,归根结底,是由于利用Deadline,倒逼着你缩小“范围”,做当前最重要最有价值的事情;利用Deadline,让你专注,不浪费时间在不重要的事情上。从而可以把Deadline,变成第一生产力。

如何在项目中应用好“Deadline 是第一生产力”?

既然Deadline是第一生产力,那是不是只要凡事设置一个Deadline,就万事大吉,自然就可以把事情做好?把项目完成好?

显然也不是那么简单的事情!并不是随便把一个时间点设成Deadline,就可以马上激发生产力。

首先你的Deadline是否有一定的强制性?

Deadline之所以能成为Deadline,就是因为它具有一定的强制性,Deadline到了之后没能完成会有一定后果。比如说你作业没能按时交,那么分数就会受影响;项目没能按时交付,绩效就会受影响。

很多优秀的程序员,在公司的项目中能高效的完成任务,相反自己在做Side Project的时候却各种拖延,难以交付,就是因为无法给自己定一个Deadline,就算定了时间点,到时间没能完成也不用承担什么后果,自然就难以将Deadline变成生产力。

有时候如果自己真的难以执行,可以让家人朋友帮助监督,或者可以学学亚马逊的逆向工作法(Working backwards)

在打造一个新产品前,不是按传统的需求、设计、开发、测试和发布流程,而是先写新闻稿,然后开新闻发布会告诉大众要打造一个什么样的产品,以及什么时间发布,再去设计开发。

这样在写新闻稿的时候就想清楚你的产品要交付的最核心的功能是什么,以及你的Deadline是什么。

当你把要做的事情和Deadline当作牛逼吹出去了,要想不被人笑话,就要考虑为你吹过的牛逼奋斗,保证在Deadline之前有所交付了。

然后你的Deadline是否具有可操作性?

成功的Deadline一定都是以科学的计划为基础的,否则不切实际的Deadline就会闹出像“两个女人5个月生孩子”这样的笑话。

怎么样的Deadline才算具有可操作性呢?

首先Deadline的时间点不宜太遥远。

当你的Deadline定的太过遥远,只有在Deadline临近的时候,才能发挥出作用,但可能已经太迟了。

传统的瀑布模型开发软件就是典型的例子。使用瀑布模型开发软件项目,也会有一个项目发布的Deadline,但是这个Deadline通常在几个月甚至一年之后,结果通常就是开发过程前松后紧,刚开始不忙,临到上线时加班加点。

后来针对这种情况,一个改善的方案就是设置里程碑,里程碑本质上就是把一个长的Deadline拆分成几个短的Deadline,比如说需求分析完成是一个里程碑、开发完成是一个里程碑。这样的借助一个个里程碑,让Deadline贯穿项目始终,持续的激发生产力。

然后Deadline到了必须要有交付。

很多人有追求完美的情结,即使Deadline到了,因为觉得产品不完美而不愿意交付,所以宁可将Deadline不断调整,一直延期,最终导致Deadline形同虚设。

完美是没有止境的,在你眼里不完美的东西也许在其他人而言,已经可以满足需求了。Deadline的一个意义也在于通过Deadline,让你在有限的时间内必须要有交付,倒逼着你放弃完美清洁,想清楚什么是你应该交付的最重要的东西。

交付,也不意味着交付一个漏洞百出半成品给大众,而是通过缩小范围,交付一个完成的最小可用的版本。

另外软件的交付也分两种,一种是内部的可供测试的版本,一种是外部的正式发布的版本。

比如像Chrome (Chrome Release Cycle) 的开发,会交付不同的版本给不同的用户,比如每天交付的开发版本,但是只是内部人员使用。还有Beta版本,只是给一部分测试用户,最终交付给用户的,已经是一个经过反复测试完善的稳定版本了。

再有就是Deadline到了必须要有完整的交付。

前面说的里程碑的方案可以很好的解决Deadline太长的问题,但也有问题,那就是在里程碑的Deadline到了的时候,虽然有交付,但交付的产物并不是十分清晰。比如说需求设计里程碑到了,只是一些模糊不清的需求文档。

结果就只能是基于这种模糊不清的需求文档,边开发边修改,导致后续因为需求修改而产生很多不必要的浪费。

所以Deadline到了的时候,不能交付一个半成品或者模棱两可的结果,而必须是一个完整的结果,否则这样的Deadline,生产力是大打折扣的。

最后再给你看一个在软件项目中,应用好“Deadline 是第一生产力”的经典例子。

敏捷开发的时间盒子

可能你已经知道敏捷开发,每天都在用敏捷开发管理软件项目,也许你还不知道什么是敏捷开发,在这里我并展开多讲,只讲其中的时间盒子(Time Boxing)概念。

在敏捷开发中,一个软件项目的开发,是采用的迭代开发的模式,并不是一次交付完整的产品,而是通过一个个的迭代,每次交付一部分可以运行的产品,最终交付完整的交付。

每一个迭代都是一个固定时长的时间盒子,时间通常不会太长,1-4周左右,但每个迭代结束,都要求要交付可执行的产品。

这个时间盒子本质上就是一个个的Deadline,每次时间盒子的结束点就是一个Deadline。那这样做有什么意义呢?

首先,每次迭代前,你要计划好:当前迭代要做哪些事情?deadline到了的时候能交付什么?

因为有Deadline的压力,每次迭代时间是有限的,而你又必须要交付,那么就会倒逼着你在计划的时候,会优先选择当前优先级最高的任务,专注在重要的事情上。

然后,在迭代的过程中,你要尽可能的提升效率,保证在Deadline之前能交付。

如果你想要在Deadline之前尽可能的交付更多的东西,那就会倒逼着你去提升效率。

所以你在设计的时候,只会做刚刚好的设计;所以你会写自动化测试,从而提升测试的效率;所以你会采用像CI/CD这样的工具,帮助你将很多工作自动化,提升效率。

最后,在迭代完成的时候,Deadline到了,你一定要有完整的交付。

前面说到了:在Deadline到了后,有交付、有完整的交付非常重要。这也会倒逼着你去思考如果提升发布版本的质量。

要保证你有一个稳定的可交付的版本,在敏捷开发中有很多很好的实践:

  • 首先是要有充分的测试,完全人工测试显然是跟不上快速迭代的节奏的,所以要有大量自动化测试来辅助,保证可以同自动化的方式覆盖各种测试用例;

  • 然后需求不能频繁变更,这就意味着在一个迭代中,通常不会接受需求的变更;

  • 还有就是采用分支的方式来开发新功能或开发bug,只有代码审查和测试通过才能合并,这样你就有一个稳定的随时可以发布的分支。

敏捷开发的时间盒子,就是一个借助Deadline来提升生产力的经典应用。借助Deadline,倒逼着你专注于重要的事,倒逼着你提升效率,倒逼着你按时交付可执行的内容。

即使你不是采用的敏捷开发的时间盒子来开发项目,其中很多借助Deadline激发生产力的思想和方法,都可以借鉴到你的项目开发甚至是日常生活中。

Deadline就是第一生产力,希望你能理解和应用好Deadline,帮助你提升生产力。

精彩回顾

♡ 程序员究竟能干多少年?

♡ 互联网公司各岗位真实工作内容起底

♡ 一次尴尬的采访和程序员的传奇脑洞!

♡ 天一冷,程序员都穿上格子衫

♡ 史上最真实的行业鄙视链曝光

♡ IT公司老板落水,各部门员工怎么救

♡ 宿命之战:程序员VS产品经理

♡ 作为一个前端,可以如何机智地弄坏一台电脑?

♡ 程序员跟产品经理打起来了,这是一个需求引发的血案...

♡ 后端说,你个前端不会用 headers吧,我怒了!

♡ 有个厉害的程序员女朋友是什么体验?

♡ 多年来,程序员经常加班的真相终于揭开了…

项目一再跳票?试试这一招:用 Deadline 倒逼生产力相关推荐

  1. 鸿蒙手机 跳票,不会跳票!华为官宣:鸿蒙手机系统马上就来,对标苹果安卓!...

    在9月10日的开发者大会上,华为终端CEO余承东正式发布了自主研发的鸿蒙2.0系统,该系统相比去年发布的1.0版本增加了大量的新特性和功能,并且修复了很多BUG.但这些不算啥,最重要的是,经过1年的努 ...

  2. 网上下载文档需要付费?试试这几招,老师傅一般都会使用

    平时在上网找资料时候,当发现下载时候需要付费,我们一般该怎么办呢?扎心啦老铁,难道你就甘心放弃现在找到的文档资料? 其实不用的啦!这里为大家汇总了几个下载文档的方法,大家如果有什么需要下载的文档可以来 ...

  3. P3项目轶事之一票否决的新员工培训

    P3项目轶事之一票否决的新员工培训 做过SAP咨询行业乙方的都知道,进入客户现场的外部顾问都只是客户的供应商,不是客户的正式员工的,不可能享受客户正式员工一样的待遇的. 加入P3项目后我发现,客户的杭 ...

  4. 英特尔10纳米处理器再度跳票,或收缩芯片代工业务

    来源:腾讯科技 摘要:在全球半导体行业,线宽(N纳米)是制造厂商进行激烈竞争的指标. 在全球半导体行业,线宽(N纳米)是制造厂商进行激烈竞争的指标.据报道,英特尔将延期到2019年四季度才能够推出10 ...

  5. 台式电脑不拉网线上网_在家里想不拉宽带用无线上网,试试这几招?

    玩游戏.看电视手机流量不够用,又不想拉宽带?现在教你如何不拉宽带连无线网. 可通过下列方法实现不拉宽带不拉宽带连无线网: 1.购买大流量卡.无线网卡 可以通过购买无线网卡,安装台式电脑搜索手机热点.也 ...

  6. atlas单机模式代码_游戏日报:3DS源码遭泄露,COD吃鸡更新经典模式,重装机兵再跳票...

    每天一篇游戏资讯汇总,为你带来最新鲜,最劲爆的游戏资讯.足不出户看尽圈内大事小事,成为游戏圈中的"百事通".新的一年所长会继续努力把优质的内容带给大家! 游戏·主机|任天堂3DS系 ...

  7. a标签跳转后关闭当前页面_微信小程序2020-day-2 导航项目(跳转三种形态)

    day-2 导航项目(跳转三种形态) 转发跳转:保留当前页面,跳转新页面,可返回 重定向跳转:关闭当前页面,跳转,不可返回,不能指定标签导航页面 跳转标签导航:跳转到标签导航页面,标签导航跟随选中 a ...

  8. 不小心把桌面进程结束了怎么办_微信不小心把天聊死怎么办?试试这3招,分分钟结束“尬聊”...

    微信不小心把天"聊死"怎么办?试试这3招,分分钟结束"尬聊"! 我现在坐的各位小伙伴们应该都会有以下这种经历吧,那就是你明明和一个人好好的在聊天,但突然不小心把 ...

  9. DNN(DotNetNuke)注册用户终于突破10万人了,其3.0也终于跳票了...

    是的,尽管我很不愿意,但的确是跳票了,或许跳票是软件开发的惯例了.据说会在圣诞节那天发布,也可能是月底,没有人知道:http://www.asp.net/Forums/ShowPost.aspx?ta ...

最新文章

  1. 人工智能案例TOP50,AI是干出来的,不是吹出来的
  2. 2021年春季学期-信号与系统-第四次作业参考答案-第十二小题
  3. 查看linux java home_查看Linux中自带的jdk,设置JAVA_HOME
  4. 处理时间_2_计算两个时间列的差值
  5. 上海交通大学计算机应用基础答案,西安交通大学17年3月课程考试《计算机应用基础》作业考核试题答案...
  6. 2013第39周一Web打印
  7. 自定义jQuery 跨域请求 callback 函数名
  8. 学者:比特币暴涨有合理性但仍应警惕其风险
  9. 爬虫 selenium
  10. 【学习笔记】Creo如何创建钣金件(利用骨架)
  11. 利用51单片机输出PWM波
  12. OpenRefine安装使用
  13. C语言课设——电影院选票系统
  14. PHP 实现身份证号实名认证功能
  15. altium Designer使用方法大总结
  16. ArcGIS切片生成工具-ArcGIS缓存管理
  17. kafka中彻底删除topics
  18. 终于搞懂了el-dialog属性modal-append-to-body,append-to-body的作用【图解】
  19. C# 打印预览 PrintDocument打印、打印预览
  20. 比较了几种编程语言后,我终于get到了少儿编程的真谛

热门文章

  1. 云计算实训总结_云计算·实训报告书.doc
  2. 又一“刚需”经济崛起,“Artas们”能否成为秃头人群的心头好?
  3. mac上的新型的影视后期编辑合成软件
  4. 医院内外网隔离后 U盘拷贝数据容易中毒怎么办?
  5. 腾讯云轻量应用服务器配置表汇总(2核2G/2核4G/4核8G/8核16G)
  6. 微信聊天记录怎么彻底删除无法恢复?如何避免数据泄露
  7. 计算机平面设计论文范,计算机平面设计论文
  8. context mysql,MySql-创建DbContext
  9. 大学外语电台自动播控系统方案
  10. Http状态码大全(404、500、505等)