小时候互联网是一枚小小的船票我在这头Youtube在那头长大后互联网是一张窄窄的船票我在这头Twitter在那头后来啊互联网是一方矮矮的坟墓我在坟里头flickr在坟外头而现在互联网是一湾浅浅的海峡我在这头大陆在那头
本篇文章由Duan Lian翻译自Carlos Oliveira的What all programmers have in common? 转载请注明
软件开发我也做过,什么样的程序员都见过。有些程序员很有才,而且高产。也有些人水平就不行了,水平不高还不思进取。
程序员的生产率差距还是很大的。在大多数情况下,牛人开发的速度是一般人的十倍,不管用什么语言或者开发工具。所以别想着用什么动态或者高级的IDE就变成牛人。
不管水平怎么样,大家都有个一样的毛病。在估计项目大概要用的时间上,大家都太乐观了。可以说大多数的开发项目延期都是因为这个毛病。
水平越不行,这个毛病就越麻烦,因为水平不行的人开发速度都很慢,而且质量也很低。不过即使是牛人,这个问题也一样存在。这个毛病之所以会出现,是因为我们往往忽略了开发过程中的关键问题。
举例来说,做一个东西,我估计编程要花20小时。没问题,但是这20小时没包括你跟客户开会的时间,没包括优化数据库的时间,甚至也没包括你把bug提交到Issue Tracker的时间。这些事情当然占用你的工作时间,别忘了在估计时间的是也这些时间都考虑进去。
缩小差距
不管你水平怎么样,都可以做一些事来尝试改善一下时间管理,下面是几条我试过而且效果不错的方法:
给你花费的时间记流水账。我们通常根本不知道时间到底花到哪了。这笔糊涂账的结果就是,我们把大量的时间花费在了没有什么价值的鸡肋事情上。记个流水账,你就知道哪里你用的时间太多了,哪里还需要更多努力。
将你的时间估计乘以一个放大系数。 你对时间分配大概有数了之后,就可以估计有多少时间花费在了软件开发上,有多少时间花费在了开发相关活动上。不同情况下这个系数是不一样的。举例来说,如果你有很多会议要开,那这个系数就要大的多。根据你的情况确定一个系数,并将这个系数应用到开发估计上。
学会说No。 做的东西的时候,你会想增加一些新功能进来,你的时间不会凭空增加。在这种情况下,你需要明确表示,时间不够完成额外的计划。”说No“要比项目最后延期好的多。
结论
程序员都一样,估计要用到的时间常常少于需要的时间。这很自然,因为大家都没有考虑那些额外的任务。仔细了解自己的工作流程,学着对你不能做的事情说不,我们都能把学着把好钢用在刀刃上。
继续阅读