乐观的估计工作量

2023-05-10 ⏳5.6分钟(2.3千字)

4月初上线的一个重构项目由于过于乐观的估计了工作量,导致项目节奏阻塞在了我这边, 最后临到上线了还有一坨边边角角的 TODO ,靠同事帮忙分担了一下才得以顺利上线。

最近又来了一个对接广告系统的活,只对接一个接口,上线时间比较宽裕。这之前看了一些单元测试的书,书中提到了一种测试驱动开发的方式。打算借着这个机会实践一下。

当时主要的想法是:

不断的重复上述过程,最终完成开发。通过 git 提交,或者文本记录的方式记录这个过程, 最后总结下实践经验。原计划 5.1 加班两天搞完了,实际上耗费工时 2(加班)+3(节后回来)+1(新的一周 两个半天) 才把代码逻辑完成了 90% 的逻辑,想写的文章散落在 git 提交记录,与 md 文档中。预计完全把 mr 提出来 , 文章准备好,要这周五结束了。 总耗时在加 3 天。预计工时 2,实际工时 9。 4.5 倍的差距。

晚上和老婆聊天,说到了这个事,我也意识到自己的工作量评估的方式确实有问题。老婆也是做研发的,她的工作量评估基本都很准确。她说在评估工作量的时候,她都会很仔细的看下代码,这个功能需要改动哪些地方,然后预计自己1天完成的报一个2天左右的时间,因为要给自己留下容错的空间,除了 coding 还有其他的会议,处理工单之类的问题。这听起来是很普遍的做法,但我发现自己从未这样思考过问题。

我是一个爱抢活的人,这种性格让我想起了印象里比较深刻的三段经历:

我总是在以一种很急迫的心态,希望尽快把这个事情搞完,拿到奖励(像他人证明自己的能力)。然而这种方式是不可持续的发展的,现在社会的合作模式也并不是计件模式,需要你不断的积累经验,能够解决更复杂的问题。

当做一些耗时比较长的工作时,这种心态会导致我脑子里一直想的是这个工作中主要的事情,忽略了很多细节问题,我认为这些细节问题是很容易的,但恰恰相反,这些细节问题耗时也是很长的。我的工作量估计大约只覆盖到了我脑子里主要工作的70%,这也许是我经常乐观估计的原因。而这种习惯下,更大的威胁是,自己变得更粗心了,更浮躁了,把一个工作想的很简单,把简单的事情想的更简单。

公司旁边有很多工地在盖楼,看着外面工地上高楼大厦的拔地而起,国家的基建真的很强,盖几十层的楼,就像搭积木一样的,钢架,基础模块一点点拼接起来。很羞愧于自己工作这十年就没做过什么严丝合缝的事情,如果这楼让我来盖,用现在的工作模式,我一定会冲在最前搞最难的,熬夜加班焊骨架,最后发现这合不上,那对不上。变成一个烂尾楼。

如何改变这种问题呢?

以后每次的总结都会记录在下面,看看自己能不能变得好一点。