软件开发中的时间估算有个很大的问题,那就是看似正确,却往往并不准确。
确实,同一个项目可能有3周的版本,6周的版本,4个月的版本,甚至12个月的版本。理论上这些都成立。
但问题是,无论你选择哪个时间估算,最后很可能都会出错。因为估算并不像墙那样坚固,而更像窗户。它太容易打开,你很快就会跳到下一个时间段。
3周的计划很容易变成6周,再变成12周。你一眼就能预见到这种拖延。
那些让你去估算项目时间的软件工具,反而加重了这个问题。它们也是问题的一部分。你应该知道我指的是哪些软件。
那么该怎么办呢?
答案是:设定一个“限时目标”。
“限时目标”类似于预算。不是说“我们估计这个项目要4周完成”,而是说“我们只会给这个项目4周时间。”这就是我们为它预留的全部时间。接下来,团队必须动脑筋,找到能在4周内完成这个功能的方案。既然只给了4周,就不会有6周、8周、10周或者12周的版本。就像你只能支付2500元的度假费用时,不可能去规划一个7000元的奢华假期。如果你超出预算,结果会很糟糕。
当然,有时候你可能需要多给项目一周,甚至两周。这是可以的,但这种情况只能在每个项目中发生一次,且增加的时间比例不能太大。比如,你可能最多会多给10%的时间来修正错误和应对现实的挑战。这不是绝对主义,也不是死板的规则。
同时,也有一些项目在预定时间内完成不了,哪怕再多给一点时间也无法收尾。在这种情况下,项目就会终止,团队吸取教训,争取下次不再犯错。它带来的回报巨大,风险却很有限——这是我们可以接受的权衡。