项目预期时间难以估计在《梦断代码》第一章得到体现。“死定了”赤裸裸地展示了开发人员的无奈与绝望。
从这本书中我了解到“软件缺陷列表”是伴随他们工作,无法甩掉的苦恼,软件缺陷列表存在于一个叫做Bugzilla的程序中,每位程序员都必须将自己的列表输入Bugzilla,并且说明每个任务预计花费时间。这让我联想到过去我们使用的敏捷开发流程,将每人每个任务以及完成时间都记录下来,提醒成员自己该做的事情。
有时有些任务根本无法估计预期完成时间。而我在初次编程的期间也屡次过少的估计自己所花时间,那是对自己的程序思路不清晰所致。而软件作为程序的升级版,它所牵扯到的问题更加复杂。像安德森所记录的软件缺陷,仅仅是一个窗口闪烁的小问题,但只是“看起来”是个小问题,实际上“问题棘手超乎自己想象”。不过在这种情况下,安德森还是表现得很平静:“这跟寻宝差不多。你要找个入手点。在开工前,要找到线索,而且你不知道花多长时间才能找到。”我们把这种缺陷叫做“黑洞式的缺陷”——即无法确定修正所需时长的缺陷。
窗口闪烁也许在我们现在做程序不会过多在意,在实际项目中,却是不得不解决的一个难题,因为它不符合安德森的审美观。在长达六个月后,他仍然没有将其修正。
软件难,也许就难在此处吧。