(3) 项目中的资源是否充分利用
由于存在关键路径和岗位角色矩阵,所以项目中人力资源往往并不能充分利用起来。在中小型项目中为了充分利用相关资源,项目更应该采用敏捷和迭代的开发方法,需求阶段开发人员可以先熟悉需求和进行公有组件的开发,而测试阶段我们的需求人员也可以介入测试。所以对一个软件项目而言,需要保证到项目成员的整体利用程度在70%以上,否则就应该考虑采用新的开发模式和生命周期模型。 2.团队和人的问题
软件项目跟其它工程项目最大的不同就是人和团队的因素对项目影响很大,软件项目中的编码人员也是重复的创造性的非简单重复的劳动。软件工厂在短时间内是无法实现的,所以更必须承认项目中各个成员的价值。工程建设中走了一个泥水工可能马上就能找到替代人手,而软件项目中人员流失及时很快找到了新成员,也需要花费不定长的培训和学习时间,新成员才可能真正达到项目要求的生产率。对于这方面影响因素主要分析如下: (1)人员技能未达到要求
在项目开始之初我们假设项目成员都能够达到组织级的要求,但往往并不是每个成员都能够达到要求。而且项目中每个成员的生产率差异可能很大,也给项目进度安排造成影响。所以在项目开始之初应该对项目成员的技能进行一次总体的评估,对于大家都欠缺的技能应该安排统一的培训,后续还需要对培训的效果进行跟踪;对于个别人员技能欠缺的应该单独预留自我学习时间或通过以师带徒的方式进行培养,使其技能能够尽快达到要求;对于项目新员工的工作和任务应该加强评审和Review,保证输出不出现大的偏差而导致后续大量的返工。 (2)项目成员责任心不强
态度决定一切,细节决定成败。对于项目过程中的各项任务,经常出现由于项目成员责任心不强而敷衍了事,导致产出的工件质量较差,引起大量返工的情况。在这种情况下项目更应该加强项目规范的建设,项目经理应加强同这些成员的单独沟通,加强项目的团队建设和集体荣誉感。让项目成员感觉到做的系统是他们自己的产品,而不是公司的项目,项目经理的项目。 (3)项目沟通问题
在软件项目中,保证项目各种角色和成员中的高效沟通是很重要的,如何建立起
3
快捷顺畅的沟通渠道,采用最佳的沟通方式来解决问题必须在项目中经常强调。一周的项目任务花在实际做事情上只有2天,而花在沟通上占有了3天,如果出现这种情况必须及时分析和总结原因。沟通最重要的就是要在最短的时间里面,采用可以采用的各种方法或工具使交流双方或多方达成一致。 (4)项目人员流失
项目人员特别是项目关键成员在项目进行过程中的流失对项目影响很大,对于这种情况应该在项目开始之初中就做为专门的风险进行跟踪,并考虑具体的应对措施。
3.质量因素的制约
时间和质量是项目中两个重要因素,在保证项目进度的情况下我们往往会牺牲了项目的质量。而由于软件项目中测试环节的引入,项目的最终产出又需要保证我们的最终产品满足一定的质量规范。所有项目中经常出现项目后期测试问题太多,BUG修改和回归测试等花费了大量的时间而导致项目的延迟。对于项目质量因素的制约主要分析为: 磨刀误了砍柴工
由于项目本身进度紧张,往往在项目进行过程中忽略了对项目各阶段产出物的质量的评审和Review。导致到项目后期测试时候问题全部暴露出来,而这时候如果是需求引起的缺陷则往往会耗费到前期评审的5-20倍的工作量来进行弥补。所以在软件项目中应该注重项目各阶段的评审和Review工作,提早发现问题并解决问题,避免项目后期大量返工。 4.项目的风险管理工作没有做好
项目管理就是对项目中各种风险和突发事件的管理,管理住了项目的风险项目就成功了一半。如果项目经理没有风险管理意识,对项目可能发生的问题或潜在的不利因素都不能预测到,也没有提前采取相关的应急措施,则在项目进行过程中风险真正转化为问题后就会导致项目很被动。如前期没有分析出项目核心成员流失的风险,而在项目进行过程中该核心成员要离职,项目短期无法招到合适新成员,项目中也没有合适的技能替代成员,这样对项目的打击将是致命的 另外项目还应该形成一套突发事件的应对机制,保证有突发事件时候能够通过积累的各种方法,工具,预备的资源余量进行跟踪和处理。
4
5.项目范围出现大变动
项目范围出现大变动,新增加了大量功能的时候往往会直接导致项目延期,在这个时候特别已经是在项目后期时候增加人员往往会使项目进度变的更糟糕。在这种时候往往没有很好的应对办法,加班赶进度往往成为了最常用的措施。 需求变更多也往往导致项目范围的变动而影响项目进度,因此在项目管理过程中应该对变更的管理形成一套完善的管理,分析和控制机制,成立变更控制委员会专门对变更进行分析,调查和处理。 6.项目开发模式和选用工具技术是否有问题
这个时候做这个分析已经不可能对当前项目有任何作用,而更多的会总结为相关的经验教训避免重犯错误。项目开发模式,生命周期选择,选择的开发语言,开发环境,相关工具和技术都直接或间接的影响到项目成员的生产率,这些我们在项目估算中可能会做相关考虑,但可能并不能从根本上解决问题,当我们预知客户的进度要求的时候,更应该通过进度要求去约束我们工具和技术的选择和使用。
7.系统架构的原因
对于大中型系统总统设计和架构设计更显重要。架构设计不仅仅要考虑满足业务的功能性需求,而进行子系统,接口,组件等的设计和划分;同时架构设计更需要考虑满足系统的健壮性,可扩展性,性能,安全性,可维护性等非功能性需求。架构人员应该通过架构设计屏蔽整个系统的复杂性,而向模块设计和开发人员提供一套简单,高效的开发规程和模式,这样才能够真正提高后续设计开发的效率和质量。
问题3:如果你是这个项目的负责人应该如何更好的把握这个项目进度?
答:
在当前的软件项目开发的过程中,无论是开发人员还是管理人员都越来越注意到项目进度的重要性。那么如何控制项目进度。我下面根据个人的几点建议来谈以下:
1、项目组长或项目经理,一定对整个项目的开发周期有一个清楚的了解,把任务的划分一定要一天为单位,不要一模块为单位,而每天无论是开发人员还是测试人员,都要对自己的工作有一个大致的估计。即每天下午,有项目组长组织开发人员进行系统的了解,并且作好相应的记录。对已经解决的问题一定要一个详细的记录。而对没有解决的问题一定要重视起来。不要向后退。找到根本的原因
5
所在。
2、沟通和交流,作为项目组长一定要多多与开发人员进行交流,要调动其的积极性,让他们学会问题该如何解决,不要让他等待问题的解决。了解其实际的进展以及对开发工具的熟练程度,这对以后的任务的重新安排有重要的借鉴意义。
3、把一些难点提出,让大家共同克服,或者有一些技术比较精通的人来解决。解决完以后一定,让大家都熟悉其编程思路。而对经常用的知识点,一定有详细的说明。这样实现资源的共享。
4、做好项目的总结,无论是难点还是不难,只要有问题,一定要提出,并且解决完以后一定让大家都熟悉,这样有助于大家的技术水平的提高。
5、做到日清日结,是保证项目进度的关键所在。
案例二 西安标准工业股份有限公司新产品研制项目
进度管理
问题1:试分析此项目工期分析不准确的原因?
答:本质上来讲,有些问题的产生其实是一种主观努力不够,对自己的主体意识认识不足产生的。不想按程序办事,依赖监理代替检查,不能主动积极地发现问题,规范施工工序控制效果,结果往往也控制不力,出现问题的机会越大,产生的时间浪费越多。最后,对工期的影响越大。
工期控制是一个系统问题,涉及质量的控制,也涉及成本的控制。对于项目部来说,一个很重要的工作就是科学地布置所在项目的总体安排,把工程项目进行分解,每个项目的时间安排进行一个编排。这是一个大的方向问题。接下来,
6

