那些从艰难的道路中学到了一些建议。
要求不清楚。没有人对所有含义进行深入分析。
此时不要做估算。没有人估计不知道敌方人数就能赢得一场战斗的人数。估算是在侦查之后做出的。除非您已经与这个敌人作战。
新功能可能会破坏您在代码中所做的一些假设,并且您立即开始考虑可能需要重构的所有内容。
这是您的责任,除非您希望其他人对此领域有专门知识。
您从过去的工作中还有其他事情要做,您将不得不做出一个将其他工作考虑在内的估算。
与上述相同,即使是由旁边的slob团队伙伴通过几乎不存在的测试过程创建的意外工作,也会导致您的代码出现故障,导致您无法提前完美预测。这是天气预报。
“完成”的定义可能尚不清楚:何时完成?就像刚刚完成编码一样是“完成”,还是像“用户正在使用它”那样是“完成”?
在这里了解用户端要求,像用户一样思考。不要做,如果他们估计的东西被“做”,只是因为与准系统的工作流程使用户无法忍受可能一些基本的功能是他们认为什么是你的同龄人做什么“完成”。从用户的角度考虑它,因为这就是您通常估算的所有客户。估算完整的用户端需求,而不是准系统技术需求。并意识到,您的客户要求估计的价格在他们如何表达事物以及理解您所说的技术方面方面是完全不准确的。
无论您对所有这些事情有多有意识,有时您的“程序员的自尊心”都会使您付出/接受的时间比您最初预期的要短。特别是当您感受到截止日期和管理层期望的压力时。
不要这样!您听起来像是一个有上进心的勤奋工作的人,也许是一个容易屈服于胁迫的人。
这里的问题是这样的:假设您和Joe为同一任务进行了时间估计(但是在两个单独的员工之间,一次都没有意识到这两个估计)。您英勇地估计“一个星期”。您认为可以,您每周工作超过100个小时以上,无偿加班。现在您迟到了三天。
同时,乔估计需要5个月的时间。您认为这很荒谬,您认为可以在一星期内完成。乔工作多少?一周10个小时?...除了他准时完成5个月。
猜猜谁被认为是公驴?是的,你。乔看起来像是一位伟大的工作者,您现在似乎不可靠。没关系,您可以在乔大约7%的时间内获得甚至更好的结果。重要的是您比一周的估计时间少了3天。
切勿在更严格的估算方面出错。更宽松的估算结果有误。在您的公司中有一种声誉,它不会基于估计的长度而几乎不取决于估计的准确性。估计时间太长,很容易就很准确,您将有更多的时间来解决问题并更好地解决问题。估计值太短了,根本没有呼吸空间,您要么拼命遇到它,要么就被搞砸了。