GiantHard
2022-12-06 11:09:02 +08:00
先凭感觉给出一个排期,然后报告的时候就乘 2 。例如,需要开发一个新的接口,你估计自己全身心投入需要 2 天完成,那么就报告要 4 天。
在工作中,尝试度量实际用掉的时间。可以用 wakatime (自动记录编程时长),或者间歇日志( interstitial journal ,手动记录每项工作的用时)。
定期回顾,例如每周、每月回顾一下自己做了些什么,这个过程需要自己有意识地去感知自己在哪些方面用了超出预期的时间,区分导致超期的因素——是必然还是偶然。类似自身技术能力、对项目技术的熟悉程度等可以被自己主观影响的因素,往往是导致必然超期的原因;类似临时加塞需求、开发过程中遭遇需求变更这些意料之外的情况,通常是导致“偶然”超期的原因。
根据上面的回顾制定改进项,例如,如果是因为自己对项目不够熟悉,造成超时,那么应该花点时间熟悉项目(或者下次评估的时候,多给自己一些时间);如果是因为自己身兼数职,开发过程需要反复切换工作上下文,那么可以尝试拒绝掉一些工作(或者下次评估的时候,多给自己一些切换工作状态的时间,也就是常说的 buffer )。因为必然因素是容易预测的,偶然因素的影响总是不可预测的,所以需要**降低必然因素的影响,减少偶然因素的数量**(或者根据这些因素调整最开始提到的工时预估时长)。
书籍的话没啥好推荐的,关于这方面的书籍好像更偏向项目管理了。面向个人开发者的内容,我推荐极客时间上的《 10x 程序员工作法》。