你有多少次参加活动时迟到了?也许是临时有事。也许你遇到了道路施工。又或者,你只是没有提前考虑。有时一切都会顺利。但有时你会错过一些重要的事情--比如你姐姐的婚礼誓言或你孩子的大型演出。
在前一篇文章中,我们谈到了项目规划和管理的重要性。虽然成功有很多方面,但接下来的几分钟,让我们把注意力集中在完成日期上。一个在决策之后才产生结果的项目价值不大。而一个因拖延而超出预算的项目,可能会在完成之前就被取消。要想取得成功,就必须适当关注完工日期。
在所有类型的软件开发中,项目延期都是一个长期存在的问题。让我们先来探讨一下造成延迟的一些原因。
在软件开发中,日期、资源、功能和质量 是众所周知的约束条件。你可以指定或强制要求其中的任何一个、两个甚至三个因素,但如果你试图强制要求所有四个因素,你几乎肯定会失败。例如,我可以说我希望在 90 天内高质量地完成所有功能,但我必须做好必要的资源分配准备。或者,如果我希望最多 3 个人就能完成,那么我就必须准备好修改日期或其他限制条件。这些方面同样适用于大多数模拟项目--也许可以用 "全面性 "来代替 "功能",用 "验证/确认 "来代替 "质量"。
由于许多项目一开始就处于紧急、预算紧张的状态,因此管理层往往会试图强制规定所有四个约束条件。但是,我真的能规定所有四项约束条件(例如,在 90 天内高质量地完成所有功能,最多只能由 3 个人完成)吗?不能--除非我一开始就制定了非常宽松的时间表(对于紧急项目来说不太可能)。我通常会发现,如果试图这样做,就意味着直到接近尾声时,我才会知道每个约束条件会错过多少。注意,我说的是 "多少",而不是 "是否"。随着预计错过日期的临近,各个层面 "偷工减料 "的压力都会增加。然后,为了挽救项目的可行性,往往会在最后一刻尝试增加资源以 "挽救日期",但这种尝试通常为时已晚,不会产生太大影响。
假定我们事先有合理的预期,那么还有哪些问题会影响进度呢?
目标 --正如我们上周所讨论的,项目目标不明确是一个巨大的潜在问题。如果一开始就缺少或没有足够的功能说明,而且对项目理解不深,那么就不可能制定出切实可行的项目计划。
乐观主义 --我喜欢以墨菲的格言 "任何可能出错的事情都会出错"为指导。许多人认为,将项目估算建立在 "合理 "的工作量估算基础上是安全的。但 "合理 "往往会在现实情况的调整下变得非常乐观。
利益相关者的参与--首先,你需要知道谁是你的 "客户"。如果你为一家大型企业工作,可能很难确定谁是与你的项目有利害关系的所有人。如果你是一名顾问,这可能会容易一些。但在确定他们之后,利益相关者必须参与进来。如果他们不参与,那么你可能会错过重要的资源和信息,项目的优先级可能会受到影响。
技能 --我们都是聪明机智的人。我们都愿意相信,我们知道或能够快速学会完成项目所需的任何知识。但往往有很多事情我们并不知道。更危险的是,有些事情连我们自己都不知道。
当然,还有很多其他方面可能会出错--我会在以后的博客中讨论。现在,也许你可以考虑一下这些概念,在以后的博客中,我们将讨论如何处理这第一组陷阱。
建模愉快
戴夫-斯特罗克
产品副总裁 -Simio 有限责任公司