对日本软件外包项目失败原因分析?
这是一个针对日本的软件外包项目。客户是日本的一家著名的大企业,全球500强之一。
客户要求的内容很多,也很严格,不仅要求使用指定的技术和工具,而且还自主开发了一个平台,要求在该平台上进行开发、测试;还有各种文档格式要求和技术要求;最重要的是要保证工期,一定要在2个半月内提供高质量的、完整的产品。
中国数家企业参与了该外包项目。D企业是其中之一,主要负责该项目40本程序(本是实现一个完整功能的程序单位。一本程序也就是一个程序。这与我们国产软件的设定不一样。)的详细设计、编码以及单体测试工作。
成立项目组
项目立项后,D公司成立了项目小组。项目经理是一名在对日软件项目方面有多年开发经验的开发人员,但是,他是第一次带项目。项目经理下设三个小组:负责详细设计的DS小组(6名成员),负责编程的PG小组(5名成员)以及负责测试的PT小组(5名成员)。每一小组设置一名小组长,配备若干组员。
同时,D公司在日方派驻了一名SE(高级分析设计人员),主要负责分析、设计以及中日两方的协调工作。DS人员具有丰富编程经验,提前1周进入了项目组工作。
之后,PG和PT小组成员开始进入项目。项目经理安排PG和PT小组1周内熟悉这个复杂的平台。
项目正式开始了。经过分析,项目组决定将40本程序分为A、B、C三类,分别包括10本,12本,18本程序。其中,A类的难度看起来似乎不高,是一些数据库表的维护工作,和业务没有太大关系,工作量也很少。B类和C类难度预计差不多,但是,分别属于不同的业务领域。
一个星期后,部分程序的详细设计出来了。为了保证工期,项目小组决定三个小组同时进行,并行工作。详细设计人员继续做详细设计,编码人员投入编码,而测试组成员同时编制测试设计书,并设计测试数据。
初试成功
项目经理决定PG小组首先从难度最小的A类程序入手,这样不仅可以看到成功的曙光,而且可以鼓舞大家的士气。于是,5名PG小组成员开始分别着手A类程序。一切都很顺利。1本程序差不多在2天内完成了。
一周后,A类程序全部编码完成,PT组开始测试,完成了一半的测试工作。随后,测试修改完毕后的5本程序交给日方确认,顺利通过,客户评价也极高。
于是,项目经理信心百倍,项目组成员也信心十足。经过仔细分析,剩下的B类和C类程序,可以根据处理侧重点的不同划分为入力系、Batch系、账票系三类,比例大致相当。项目经理也更新了进度计划。新的进度计划中,每名PG成员分别负责2本入力系、2本Batch系、2本账票程序。DS小组的工作也进展顺利。
遭遇难题
正当大家怀着胜利的喜悦继续前进的时候,PG小组遇到了很大的难题。日方提供的开发平台太复杂了。此时,项目小组才发现,已经开发完成的A类程序其实只是一种2层结构的程序,而B类、C类程序是复杂的3层结构,要搞清楚如何开发这些程序不只需要时间,更需要充足的经验和高超的技能。PG小组成员纷纷卡壳,不知道该在哪儿赋值,不知道该在哪儿取值,与以前接触的编程截然不同,似乎每本程序都有一个无穷的长链,只有龙头,没有龙尾,无法理清。
一周过去了,原定很顺利就编写完的程序的实际进度却是5%,或者10%,这并不是说,已经开发了5%或者10%,而是为了表明这些程序的开发工作已经开始,而向客户展现一种开发中的姿态(因为每日都要给客户发送进度报告)。于是,项目经理开始要求大家加班。
两周过去了,技术最好、经验最丰富的一名PG人员—小G的进度率达到了40%,而其他成员仍然在原地踏步。大家纷纷去请教小G,小G不耐烦地回答:“去看日方发过来的资料吧”。
烦躁,焦虑,疲劳,一名PG成员病倒了,打了个电话要请假。过了几天,又一名PG成员也来电话请假,说是感冒。三周后,也就是1个月后,除了10本C类程序全部开发完成,通过验证外,只有一本程序的进度率达到了80%。5名PG成员中的2名病倒了。大家都忙着从数百页的日文开发手册中寻找答案。
于是,项目经理开始要求PT组有经验的成员加入PG组以填补空白。
小G的程序完成了,可是运行后什么也没有。又经过一周,小G的程序基本可以运行了,但是还有很多的技术问题,测试结果极不理想。
紧急救“火”
工期已经非常逼近,不能再等了,于是项目小组开始向公司反映情况。公司立即从其他项目组中抽调了2名经验丰富的“技术高手”来协助。鉴于绝大部分程序的详细设计已经完成,召回了在日本的窗口SE—“业务高手”,同时安排大家都加班。
为了很好地运用小组中的知识财富,D公司安排小G不再继续开发工作,而是做技术总把关,做专职的问题解决能手。后来,集中大家的智慧,解决了入力系的入力难题,解决了Batch系的没有界面而有极多数据复杂处理问题,以及账票系的账票出力问题。
快到截止日期时,原有的PG成员中有2名开始长期请病假。
经过大家的齐心协力,加班加点,在预定截止日期的当天,所有程序都开发完毕,测试完毕,只是还有很多问题和错误需要修正。
为了保证工期,项目经理决定暂时将问题和错误隐蔽,将所有的测试报告中的“再确认”一栏填写上“OK”。项目经理提交所有预定提交的成果物。同时,PG和PT人员仍在继续奋战。
一周后,日方发过来大量问题,绝大部分是单本程序的问题。项目小组继续修正。一个月后,项目终于结束了,项目小组才得以解散。
项目虽然在规定的日期内完成,但从管理的角度来讲,这是一个失败的项目管理,在管理过程中仍存在着许多隐患,请大家分析一下:
<--我的疑问-->
1、该项目在项目计划上是否存在问题?
2、项目经理在任务分配上是否合理,有哪些需要改进的地方?
3、项目经理在项目后期的团队成员管理上,是否存在问题?


按赞排序
按时间排序
-
0
A项目作为开发的头一仗,已经预知到其工作内容相对简单之后。应该留有余力的让技术大牛,在其他组员推进A项目时,对BC进行探路。
A项目获得好评后,不能过于乐观。反而需要根据技术大牛对BC的探路,进行进一步安排规划。当发现是三个不同业务场景的开后,需要我们集中讨论,集中攻克。仍然可以采取技术大牛牵头,为其他队员做赋能。等到该业务场景平稳推进后,继续拓荒下一个业务场景。以此循环。
当内部研发同学已经处于极端压力的情绪状态下,一方面要进行心理疏导,另一方面要进行人力资源的调动。例如将具有相关经验的测试调动过来,并安排其他测试深入了解整个平台特性以作不时之需。
其次,存在明显的延期风险时。需要尽早向总部申请资源。这样一个巨大的外包团队,也从侧面展示出该项目拥有足够的预算成本。
最后,当项目组出现了技术表现亮眼的人员。一定要加以使用,不是单纯的去增加用户量而是通过安排其拓荒、技术辅导等工作。1个月以前回复
-
0
想项目经理的资源是有限的,搞好沟通管理,调动人力资源支持要有上层的授权
1个月以前回复
-
0
1、存在问题,PM原来是技术人员,第一次带项目,缺乏管理经验,管理层有责任;
2、任务分配不合理,没有统筹;项目经理还是技术人员思维模式;
3、对公司知识经验库没有有效利用1个月以前回复
-
0
我觉得主要是技术问题,这个问题不解决往下不好走
1个月以前回复
-
0
感觉主要是前期的技术分析不到位。
其他方面还是做的不错的。1个月以前回复
-
当项目遇到困难时没有及时安排攻关人员,或与日方交流。等项目4/10的时间浪费了后,才在公司的帮助下,集中大家的智慧,任命技术攻关人员,反应也太慢了。
整个团队的协作不够。当大家纷纷去请教小G时,小G给与的不是帮助,而是拒绝,显然浪费了大家不少时间。项目经理应该在此时组织大家学习,由小G分享经验及心得,同时肯定小G的能力及贡献。
在对开发平台不熟悉,程序怎么运行的都不了解的情况下开发出来的程序没有bug基本是不可能的。作为国内的软件外包公司,有一个比较共性的毛病,就是太注重语言,而相对的轻视技术。在文中提到“DS人员具有丰富编程经验”,但是在项目的攻关时却没有看到DS的身影。很显然,本项目的详细设计是不到位的。该在哪儿赋值,该在哪儿取值,详细设计都不写,详细设计都写了啥?代码编写不下去就是DS的问题。1个月以前回复
-
从难度最小的A类程序开始固然可以鼓舞士气,但是应该按照每种技术类型,一般就是入力系、Batch系、账票系三类,各选较典型的一本,派最强的人员作出样板来。之后大队人马才开始行动,由于都有了参考的样板,效率会高很多。一下子铺开,出了问题代价非常高。尤其对新接触的flamework,只有2个半月的开发时间,个人经验根本就是个风险很高的项目,对最早作为pilot的程序,一定要确保包括所有类型。
1个月以前回复
-
1、项目拿到手后才成立项目组,说明投标环节有隐患。项目组应该尽早成立,参与投标管理,比如技术要求不清楚,工期紧等等因素。
2、对外方提供的开发平台没有提前做好技术准备,说明本项目计划存在瑕疵。
3、出现“救火”情况,项目经理固然有责任,但也说明公司项目管理体系存在一定问题。作为高级项目经理,或企业PMO,计划工作没有做好。
4、大概看看,人力资源管理也没有计划好。我想项目经理的资源是有限的,搞好沟通管理,调动人力资源支持要有上层的授权。
总之,个人感觉从管理层层面(PMO)着重总结经验。1个月以前回复
-
我做了多年的对日开发,我觉得在开发过程中有不少问题。
1 程序难度分类后,开发顺序制定的不好。B、C类程序难度大,和基盘的关联也密切,应该优先进入开发,最好分出几个优秀且有经验的PG分别针对入力、batch、帐票做出程序sample。对日开发时,同类程序的结构基本是一致的,有sample再推广比较容易几十个人同时开发。
2 B、C类程序大规模推进时,PG的任务分配方针完全错误。入力、batch、帐票的基盘是不同的,batch、帐票还相近点,帐票是种特殊batch。在工期紧、大家都对基盘不熟悉的情况下,最好的分配方式是指定PG专门开发某一类程序,第一本会慢点,但第二本开始速度就会加快。要把这3种类型全都搞懂弄熟,没有相当的时间及开发量是不可能的。
3 项目经理、小组骨干在情绪控制上没有做好。大家都不懂,项目组更应该保有一个互助互利的气氛,而不是将经验私藏,只知道逃避。定期开经验交流会,把不好的情绪发泄出来,也是件很重要的事。1个月以前回复