本环节后交给下一环节就了事了,而应该继续与下一环节的人员共同作战、相互影响、不断进行同步完善,及时地解释和调整上一阶段的成果。如果上一阶段与下一阶段的负责人是同一个人,就没有这方面的问题,但是在实际工作汇报时要考虑到在某个阶段可能进行着前一个阶段或后一个阶段的工作。
8、资源需求没有经过较为周密的估算
软件开发项目的资源因为因为其自身的特点和受到各种因素的影响,很难做到“精确”。尽管如此,还是应该尽可能地做到“周密”。需要重点考虑的软件开发项目的资源主要是人力资源,没有尽可能足够详细精确地估计整个项目的每个阶段所需要的人时(或人日、人月)数;这是因为对软件开发的工作量没有进行精确的估算。为了估算软件开发项目的工作量和完成期限,首先需要根据较为完整的需求来预测软件规模。度量软件规模的常用方法有、代码行估算法和功能点估算法。这两种方法各有优缺点,应该根据软件项目的特点选择适用的软件规模度量方法。根据项目的规模可以估算出完成项目所需的工作量,我们可以使用一种或多种技术进行估算,这些技术主要分为两大类分解和经验建模。分解技术需要划分出主要的软件功能,接着估算实现每一个功能所需的程序规模或人月数。经验技术的使用是根据经验导出的公式来预测工作量和时间。可以使用自动工具来实现某一特定的经验模型。精确的项目估算一般至少会用到上述技术中的两种。通过比较和协调使用不同技术导出的估算值,我们可能得到更精确的估算。软件项目估算永远不会是一门精确的科学,但将良好的历史数据与系统化的技术结合起来能够提高估算的精确度。
9、遗漏重要的假设或约束条件
如一些政府机关的管理信息系统软件开发项目隐含的需求是必须遵守一系列的国家和行业标准,但由于没有考虑到这些要求,致使项目计划失败,开发出某些功能、性能或数据不符合国家和行业标准的软件,造成返工。所以应当尽可能地将将任何设想和约束编入文档。做项目计划时应该尽可能地把假设条件和约束条件考虑清楚,这些假设和约束可以是乐观的、悲观的或者是最可能的估计。例如,可以假设能够及时获得应用程序服务器的新发行版,或可以得到熟悉项目正在采用的技术和技巧的开发人员;还可以假设,项目能在一些约束下工作,如影响计划的强制截止期限或资源限制等等。应该把这些假设和约束条件编入计划文档中,在项目的实施过程中,当项目计划需要细化和调整时,就应该考虑到这些约束条件,而不是以一种“无限资源”的方式做计划。一般来说,假设、约束和风险的区别是假设、约束是一些比较明显、明确、已经发生或肯定会发生的情况,而风险这是不一定会发生的,具有不确定性。
10、项目计划没有突出重点
软件开发涉及到方方面面的工作,有些是主要的,有些是次要的,项目计划应当反映有价值的工作任务、环境条件。项目计划不能写成一个大杂烩,也不能写成一个包罗万象的百科全书。在项目计划中要简洁精确地反映对项目有价值的事情、任务和活动,避免罗嗦。项目管理的理论方法、成功的项目管理经验都是在实施项目时应该参考的。但是,每个项目是特殊的,具有“唯一性”的,一次需要为每个项目做专门的计划,选择适合的项目,适合的团队的方式和方法。
11、工作任务的分解不便于人员分工
在确定了系统构架之前应该考虑在编写文档的同时是否有些其他基础性的工作可以先做,如是否在需求分析的同时进行部分的系统概要设计;是否可以先进性技术预研,环境架构搭建、后台数据库框架搭建、软件系统框架搭建等等。迭代法使得在上一阶段的部分任务完成后,下一阶段的对应工作就可以投入进行。在确定了系统构架之前之后