二、项目计划制定的原则
1、 目的性。任何项目计划的制定应当围绕项目目标的实现展开。制订计划的第一步就是必须分析目标、进而找出为了完成目标所要完成的所有任务。
2、 系统相关性。项目计划由一系列子计划组成,如范围计划、人力资源计划、进度计划、资源计划、质量管理计划、风险管理计划等等。各个子计划不是孤立存在的,彼此之间相对独立,又紧密相关,应当形成一个有机的整体。构成项目计划的任何子计划的变化都会影响到其它子计划的制定和执行,进而影响到项目计划的正常实施。
3、 经济性。项目不仅要有较高的效率,而且要有较高的效益,因此计划过程是对多种选择权衡、优化的过程。
4、 动态性。由于项目环境一般处在变化之中,特别是软件开发先把棺木的多变性,经常使计划的实施偏离项目的基准计划,因此项目计划要随作环境和条件的变化不断调整和修改,以保证项目目标的完成。如何防止项目计划多变,对出现的问题及时加以处理以保证进度按原计划实现,在一定的意义上说甚至是更为重要的。防止项目计划多变,就要改进计划的编制工作,提高计划的质量,这首先要求项目经理和项目计划制定人员应当较好地掌握项目的环境条件,对各种条件进行深入的调查落实并做出有根据的预测,据以制定实施方案,适当留有余地,以使编制的项目计划切实而可行。其次就是要使这种计划能够得到贯彻执行,因为再好的计划,如果不能认真执行,也不过是毫无意义的一纸空文。根据各方面的经验,实行各种不同形式的责、权、利机制是保证计划实现的关键。
三、软件开发项目的特点
与其他类型项目的共同点:项目成功与否不仅取决于项目过程中所采用的技术方法工具,还取决于项目管理的水平,特别是计划与控制的水平。了解软件开发项目的特点对于项目的计划制定和管理控制非常必要的。
与其他类型项目的不同点:
1、 软件产品和其他产品不同,软件产品是一种“逻辑”产品,是无形的,没有物理属性的,看不见、摸不着、难以理解;
2、 需求难以明确且频繁变更:由于用户的成熟度或责任心的原因。用户已开始无法给出明确的需求。在开发过程中,需求可能要经常及修改,因此需要经常地修改程序与文档;
3、 难以在早期发现问题:需求不明确,加上后期修改可能没有进行全局性的考虑,产生的问题难以从早期的文档中直观地发现,需要等系统设计出来后才会发现。
4、 项目成员对文档的重视不够。符合用户需求的高质量软件需要依赖于大量准确规范的文档编辑工作,但项目组成员对他并不感兴趣,很少愿意认真去做,因而直接影响了软件的质量。
5、 劳动密集型+智力密集型:软件开发过程需要大量高强度的脑力劳动,并且都是手工劳动,这些劳动非常细致、高度复杂、容易出错,质量那一用简单的度量来衡量,使得软件的正确性难以保证。对于不深入找掌握软件工程知识或缺乏软件开发实践经验的人员,是难以做好软件开发项目管理工作的。