在软件工程实施的过程中,我们的团队除了会遇到软件工程技术方面的问题还会遇到很多跨学科的问题,如:团队建设的问题,如何提高团队绩效?干系人的问题,如何获得客户的理解,我们又是否已经理解我们的客户?如何控制我们的工作范围的问题?如何控制我们的成本的问题等等。这些问题,在软件工程学科都没有得到很好的回答。事实上,
项目管理学恰恰回答了软件工程学科没能回答的问题。人们考虑在软件工程实施时引入
项目管理,把软件工程看作一个项目来运作,并应用
项目管理理论对软件工程进行全面管理。把软件工程遇到的问题归类为软件
项目管理问题,通盘考虑软件项目管理的问题。
另外受项目特点多样性的制约,实际的项目管理方法也各有不同,本文通过实际案例的分析,结合自身的项目管理经验,针对保守类项目的管理阐述一下自己的观点以及措施,作为以后项目管理过程中的借鉴。
在这个案例中,主要的作业分为两个部分:维持保守作业和机能追加作业。维持保守作业主要是针对现在系统进行维护,故障的改修等;机能追加作业主要是针对客户的新需求,进行新的开发。
一.项目范围管理
项目范围管理包括确保项目做且只做成功完成项目所需的全部工作的各过程。管理项目范围主要在于定义和控制哪些工作应该包括在项目内,哪些不应该包括项目内。只有明确了作业的内容和范围,才能准确的对项目整体状况进行评估以及对项目的监控。
项目范围管理的各过程有:收集需求,定义范围,创建工作分解结构,核实范围以及控制范围五大方面的内容。
在这个案例中,针对改修做的都是详细的估算,如果规模出现偏差,很容易就导致进度的延迟。
1、前期的开发中,由于估算的时候只是考虑了客户概要设计里要求改修的处理,没有做影响调查,导致有些处理没有改修。
2、由于对现有系统的不熟悉,做详细估算的时候,有些功能点的考虑不足,或者说技术实现方面考虑的不足,导致规模和时间的估算不足。
针对上述问题,我们在项目中实施以下的对策来进行了改善。
1、在做估算之前,要针对改修内容洗出影响调查观点,在经过客户确认影响调查观点没有问题后,进行影响调查。这样可以保证不会有改修漏的地方。
2、针对机能点,参照现有系统,进行实现在方面的检讨,做成了自我检查项目一览。这样可以保证机能点不会漏掉,也可以保证功能的实现性。
二.项目时间管理
项目时间管理包括保证项目按时完成的各过程。包括:定义活动,排列活动顺序,估算活动资源,估算活动持续时间,制定进度计划,控制进度。
针对维持保守项目,个人觉得项目时间管理是仅次于项目质量管理的一项,因为对于故障的改修,有可能要求是二十四小内对应完的,所以时间管理尤其重要。
在这个案例中,针对每次的改修,虽然产品交付的期限是固定的,但是各个阶段(设计,制造,单体,结合)的期限一般是可以调整的。针对进度延迟时,在保证质理的前提下,我们做了以下的两种改善策。
1、通过调整各阶段的期限来赶回进度。
2、通过并行作业来赶回进度。例如:担当者A在制造的时候发生了延迟,那么就把A担当的测试项目票做成让担当者B来做,这样就可以让担当者A有更多的时间来进行制造。
三.项目成本管理
项目成本管理包括对成本管理的估算,预算和控制的各过程,从而确保项目在批准的预算内完工。项目成本管理的各过程,包括:估算成本,制定预算,控制成本。
成本的控制,不是简单的成本压缩,而是要和质量、进度一同达到一个合理的平衡点,才能最终以最低的成本,按时按质完成项目,并最大程度的赢得利润。项目管理论坛
在这个案例中,虽然维持保守作业也有估算,但是客户不是按作业量来支付,而是按每月固定人数来支付,所以这里只对机能追加作业的成本进行说明。机能追加作业主要是根据详细估算的人月来支付,所以这就要求我们的详细估算要很准确。然而我们做详细估算的资料是客户的BI资料,所以到真正做开发的时候,客户的需求有可能已经发生了变更。
针对成本控制问题,我们做了以下几点改善策。
1、在做详细估算的时候,针对客户的需求,细化成多个功能点,针对每个功能点,估算出具体的规模。在开发的时候,针对开发时客户需求的变更,要对变更点再做影响调查和详细估算,向客户再请求。
2、详细估算过程中,关于生产性的设定,要按照当前项目中的平均水平来设定。
3、在开发的时候,要考虑当担当者的能力以及工作效率来做出合理的线表,不能按详细估算中时间直接做成线表。
4、在开发期间许可的情况下,让担当者做跨业务领域的开发,这样做在短期内可能会增加成本,但是从长远来看,一方面可以扩展担当者的对应领域,另一方面也可以提高总体的生产性,从而降低成本。
四.项目质量管理
项目质量管理包括只需组织确定质量策略,目标与职责的各过程和活动,从而使项目满足其预定的需求。项目质量管理的各过程包括:质量计划,质量保证,质量控制。
在这个案例中,因为是维持保守开发,所以客户对产品的质量要求是十分严格的。因此在我们的开发过程中,就一直把产品的质量放在最首要的位置。
对于瀑布型的开发方式来说,质量问题发现的越晚,所付出的对应成本也越高,而且引起其他不良的风险也越大。事前对全员进行教育,并时时强调,加强担当者的品质意识。
1、在作业的过程中,尽可能的减少故障的做入。因此各个阶段都整理出了自我检查一览,使担当者在做完作业之后,自己要进行一次检查。
2、加强评审,严格控制质量标准。在进入下一阶段之前,都要进行阶段性的品质评价。从定量以及定性的角度,对该阶段的品质进行分析,判断是否可以进入下一阶段的作业。
3、对发生的问题点以及故障,及时进行分析,采取应对措施。在实际的作业过程,时时关注发生的问题点,深入分析直接原因和根本原因。根据分析结果判断是否需要追加共通测试观点及进行横展开作业。
4、DD阶段,UT2测试阶段以及SI测试阶段的成果物都要提交客户确认。包括测试项目票的抽出,都要经过客户最终的确认。
对我们这一行来说,质量是赢得客户信任,企业赖以生存的根本。所以在实际的作业过程中一定要时刻谨记质量至上的意识,通过规范作业流程最大程度的预防质量问题的发生,尤其是交付后品质问题的发生。
五.人力资源管理
项目
人力资源管理包括组织,管理与领导项目团队的各个过程。项目团队由为完成项目而承担不同角色的人员组成。随着项目的进展,项目团队成员的类型和数量可能频繁变化。项目
人力资源管理的各过程,包括:制定
人力资源计划,组建项目团队,建设项目团队,管理项目团队。项目管理
培训
针对人力资源管理,结合自己项目管理的实际经验,认为应该采取如下的人员管理。
1、根据作业内容,合理安排各个角色的任务分担。只有充分了解项目组成员的特点及擅长的内容,给大家各施所长才能最大程度的发挥其主管能动性,给项目展开带来最大的助力。
2、及时跟踪并调整作业分担。在任务分担阶段,由于难易度等因素考虑不足,任务分配难免不平衡。为了避免个别人负担过重造成的消极影响,管理人员应该及时跟踪担当者的作业状态,并根据实际作业状态进行调整,以免一次挫败大家的积极性和能动性。
3、也不能因为某位担当者能力比较强,就分给其太多的工作,要充分考虑项目组的作业情况,如果时间允许的情况下,也应该让其他人多些学习的机会,常说“熟能生巧”嘛。
4、合理安排加班,避免过度的疲劳作业。进度延迟的情况下,应该分析造成进度延迟的原因,然后对症下药的采取针对性的对策。
5、条件允许的情况下,可以多与担当沟通进行换位思考。通过换位思考,让担当者更好的融入项目里,了解项目管理的特点,更好的调动担当者的情绪,激发其主动性。
六.项目沟通管理
项目沟通管理包括为确保项目信息及时且恰当地生成,收集,发布,存储,调用并最终处置所需的各个过程。项目经理的大多数时间用在与团队成员和其他干系人的沟通上,无论这些成员的干系人是来自组织内部还是组织外部。项目沟通管理的各过程,包括:识别干系人,规划沟通,发布信息,管理干系人期望,报告绩效。
在这个案例中,针对沟通管理,做了以下几点对策。
1、我们这个项目有自己的专用开发间和电视会议室,和客户使用专线连接,首先从硬件上保证了沟通的便利性。项目管理论坛
2、对于稍大一点的改修,事前都要经过电视会议来引继,充分理解客户的需求。减少作业的返工。
3、每周与客户进行一次进度会议,报告一下当周的作业进度以及发生的课题等等。
4、由于这个项目有多少业务领域,所以每个业务都有一名TL来负责。在每周与客户开的进度会议前,内部先开一次TL会议,把握一下各组内的作业进度等。项目经理圈子
5、每周会有一次全体的会议,在会议上说明一下共通事项以及展开一些事情等。并做成议事录,由大家回览签字。确保大家都已经知道并明白展开事项。
6、内部有紧急展开事项的情况下,也会及时召开会议通知大家,避免问题的积压。
七.项目风险管理
项目风险管理的目标在于提高项目积极事件的概率和影响,降低项目消极事件的概率和影响。项目风险管理的各过程,包括:规划风险管理,识别风险,实施定性风险分析,实施定量风险分析,规划风险应对,监控风险。
以下是通过对本案例的分析,本人判定的项目风险及影响,并针对风险考虑的应对措施。项目经理博客
1.详细估算的担当者和实际开发的担当者不是同一人的时候,详细估算的担当者和客户确认的一些内容,有可能没有引继给开发的担当者。
应对措施:一些关键内容不要通过邮件,TEL等确认,最好以确认票的方式确认,即使是通过TEL确认的话,事后也要记入确认票中。
2.机能追加作业中,详细估算过程中,机能考虑不足的时候,造成线表的紧张。
应对措施:提高详细估算的准确度以及精度。在实际开发前,要确认一下客户的需求有无变更,有的情况下要及时与客户进行沟通,对时间做一下调整或者加人。
针对风险我们要保持足够的警惕性,通过预先判断、制定相应措施的方式,正视风险,做到有备无患,就完全可以将风险的影响降到最小。
综上所述,项目成功不是轻而易举的事,真正的项目成功,不仅仅是产品是否满足客户的要求,在规定的时间内,限定的成本内做出让客户满意的产品,这才是真正意义上的项目成功。