sungubbi 发表于 2007-11-21 9:23:58
做为接包方,我还是希望首先能控制住需求的范围,必须得到明确的界定,并排定优先级。
同时形成比较明细的计划,得到分包方的确认。
在实施过程中,进行每周至少一次的用户沟通。
我甚至希望能够将该项目的过程定义结果提供给用户进行确认,避免在开发中,用户提出其它的要求。
另外,做为承包方,是否应该争取让用户多参与项目的活动呢?这样做的目的是为了获取用户对项目的认同感。
tyrone 发表于 2007-11-21 18:06:28
您的问题我有些小困惑,我想应该是:
您是承揽方(合同的乙方),所称分包方,应该是委托方(合同的甲方),是用户的外包、或者委外(outsourcing)案的合同执行管理单位。
首先要说的是,这种项目的管理与组织内部项目(如产品开发及维护)并无二致,但是有些问题可能需要特别注意。
1. 合同内容应包括变更处理的策略、方法与程序,哪些层级的问题需要修改合同,哪些直接修在需求规格里就成了。建议凡会影响到产品架构、对时程成本有重要冲击的变更应该要修订合同,例如某个需求变更会使成本或时程增加10%时,这个增加与变动最好区分产品来列计,如果您的项目里有三个系统要交付,其中一个架构变动达10%以上、或成本或时程增加达到10%以上时,就要修订合同。
2. 合同里的权利义务划分很重要,例如,客户要配合实施的评审或对于问题的裁决,要明订处理的期程(duration),因为客户评审或裁决使用的时间,或者根本悬而未决,所造成的时程延误或产品开发困难的情况,是不能全数由乙方来承担的。另外将权责明订在合同当中,也可以敦促一下甲方要配合相关的活动。不能因为甲方相关人员的逃避与不作为,而造成项目难以进行。当然甲方要驳回送审文件时,也不能是以笼统的「不符合需求」来拖延,有任何问题就要直接指出问题所在及其严重性,然后以充分的理由驳回。
3. 需求管理很重要,但是如果需求不是很明确宁可采用演进式开发方式,不要采用瀑布式或是渐增式(或者迭代式)开发方法,否则将使需求不断蔓延,最后项目会很难收拾。
4. 避免程序员直接面对客户或使用者代表。你可以相信客户或使用者代表的参与具有重要意义。但是,如果是因为需求不明确,客户弄不清自己要什么,所以让程序员到第一线面对客户,直接coding,这种项目是必死无疑的。也许项目能得完,但是项目肯定是失败的。因为项目成功的定义是—如期、如质、如预算完成。让程序员到第一线面对客户,会发生的问题第一个就是需求失控,然后时程与成本接着失控,最后产品的质量失控(至少产品可能因为不断修修改改,废码太多,体型变得很庞大,执行起来没有效率,另外也可能潜藏许多未能及时发现的逻辑问题)。应该面对客户的,不是项目经理、商务经理、要不然就是系统分析师。遇到问题带回公司解决,千万不要当场解决。尤其是复杂的问题,当场解决可能很花时间、而且也不见得能够很全面地处理,会不会衍生出其它的问题也不知道,有的问题弄不好会让整个系统Crash掉,所以还是把问题带回公司再研究解决。
5. 有关于文件的模板与格式的问题,这个也常常会遇到。项目里要使用的文件模板是什么,首先可以请甲方来决定,甲方如果没有,那么乙方可以先提供自己公司制度中的文件模板,在甲方的同意下采用,或者经甲方的修改后采用。但是无论如何,一个重点,这些事情都要在合同议订阶段,要不然就是在项目规划阶段全部谈定,项目经理在项目规划阶段,就要把这些项目里要产出的文件与使用的模板,放在项目管理计划的数据管理计划中。在项目的前期就把这类的问题搞定,以免在后期因为文件的格式、风格等问题,造成验收上的困难。
6. 让客户或用户的代表参与项目开发的工作是有益的作法,但必须在项目启动阶段就要建立参与人员,项目之成败大家荣辱与共的共识,否则,客户或用户代表的参与就会造成需求蔓延的问题,从而使得项目的时程、成本与质量失控。因此,除了在项目启动阶段建立任务说明(Mission Statement)、共同愿景(Shared Vision)之外(这些其实就是一份文件,让所有参与项目的人员(含客户或用户的代表)大家签署,给出承诺),在项目的每个评审会议(含验收测试活动)中,由评审会议主席,不断重复提及,或者在乙方向甲方索取合约中已列示、或开发期间甲方允诺提供,对于项目开发成败有重要影响的数据与信息时,列于索取数据及信息的公文中,提醒甲方配合,以免客户或用户代表,因为小枝节的问题,而一直抗拒合作。开发工作是需要甲乙双方共同合作方能完成的。
7. 在项目执行当中,所有的活动应该都要预留一些buffer,或者做好有效的工期规划,这可由工作事项的前置时间(lead time)去考虑,千万不要变成,像是,在项目计划中预计于11月20日需求规格要订为基准,但需求规格却是一直等到11月20日才定稿,使得基准订定所需要的评审活动(Peer Review一周的时间)与提交给客户核准的时间(可能需要两周的作业时间)通通没有预留,这样的话,只是让项目的期程一延再延而已(以上面例子而言,实等于项目进度已经落后三周了),这个时候,乙方是不可以怪甲方没有及时核准需求规格订为基准的。
8. 项目的实行,要采用工程与项目管理的最佳实践,包括风险管理、人力资源管理、配置管理、质量管理、量测与分析。在产品交付客户之前,务必先在内部完成所有的测试与评审工作,不要以为客户或用户会测试,所以内部的测试工作就省免了。这常常会是公司商誉受损的首要原因。
9. 项目经理应随时带着合同、WBS、工作条款(Statement of Work)、项目管理计划、需求追溯表。尤其是在举行联合评审、项目管理评审(project management review, PMR)时,务必带着前述的文件,项目经理也应该多抽空详读合同,尤其是罚则,要先知道如何保障自己公司的权益,当然,理解罚则不是要去设法钻合同的漏洞,而是要知道所有可能的后果,以便进一步做好风险管理。
10. 可以的话,项目经理要根据项目管理计划,做出项目的月工作计划及周工作计划,以便有效管理项目。这些工作计划可以只简略提列工作事项的起迄时间、本月或本周应达成的状态、负责人员。项目的工作很繁忙,提列工作项目及负责人员,有助于你依据负责人员的特质,去管理每个人的工作及产出。有些人是比较被动的,或者对于时间没有什么概念,您就得对TA施予严密地控制,千万别到预计完成时间的当下才问完成了没有,我可以百分之百地告诉您,一定没有完成。再者,您也可以对技术能力水平不是很高的工作人员,投予关注,适时找人协助,以免因为TA遇到工作瓶颈不敢说,而使得项目进度受到影响。
11. 与客户或用户的代表讨论需求变更时,一定要控制在合同的范围(时程与成本)内。项目经理可以在权责范围之内,允许变更,但要让客户明白,合同原来是怎么写的,您同意的变更,可能让项目时程延误及系统integrity上的可能的风险,这是您所要的承担,您尽可能排除问题,以达成客户的「期望」。设法让客户或用户代表知道,从合同的角度,TA们欠您一份情。藉此建立双方的互信基础,要给TA们的讯息是:您很希望尽可能满足TA们的要求,只是合同上是有限制的。请记得,需求变更超出合同范围,实质上是一种违约的行为,也会造成后面验收的困难(验收失据)。就算客户或用户代表认为出钱的是老大,TA们说了就算,但是您也应该让TA们知道,有一天超出合同的范围部份发生问题时,是没有办法救济的,除非变更时一并把合同给修了。但通常客户是不会愿意修约的。而走上修约一途时,项目经理就可以把变更的问题提升给管理部(法务、财务等人员)或公司管理层级去处理了。
sungubbi 发表于 2007-11-22 13:12:41
哇,好像有些绕了。
其实无非是我们接了一个外包的项目,甲方相对比较成熟,管理比较严格。针对这样的甲方,我们在通常的项目管理的基础上,额外还要注意一些什么方法、技巧。
通过tyrone的回答,可以总结出对项目经理的要求还是很高的,这个要求包括技能方面、沟通能力和管理能力,重点在需求、进度、用户沟通方面做好控制,任何工作都要尽量做到有据可依.
Tyrone发表于 2007-11-23 6:26:51
To Sungubbi,
不知道那个项目的形式是怎样的,您们是「成熟甲方」的外包,还是下包?我的意思是,所谓下包指您的甲方还有一个甲方,而外包是指那是甲方的一个内部项目,两种情况的风险是不太一样的。我深信外包的情况下,甲方可以采用较高成熟度的供货商管理做法,来要求贵公司;但是,如果是下包的情况下,而甲方的甲方是不成熟的acquirer,则另当别论了。但不论如何,前面提到的那些都还是适用的,至少可以保护自家公司的权益。如果甲方的甲方不是很成熟的话,可能需要建议您的甲方,多与甲方的甲方多多交流,沟通观念与建立共识。
之于项目管理,PMI的PMBOK离实务有很大的距离,不论是硬件或软件产品的开发都是一样,因为PMI的PMBOK的原始架构基于建筑业的Context。可以使用PMI为美国国防部所做的PMBOK Extension for DoD,里面谈到与系统工程的一些连结与注意事项。
sungubbi 发表于 2007-12-11 16:08:26
林老师,您好。
我们这是一个外包的项目,不是下包,甲方没有另一个甲方了。
现在我们已经签下了这个合同,您之前提到的那些建议,我也已经进行了反馈,目前还是很受用的。项目马上就要正式立项啦,如果有新的进展和实践心得,再来跟与您汇报。
谢谢~~ |