很多项目在快速完成业务调研和基本配置之后,就好象进入了一个平淡期,业务已经似乎清楚了,配置也按要求完成了,但用户好象就是没有什么用,大部分人也没有积极性,项目进入了一个僵持期,为了推动项目企业项目组或信息化负责人不断催促我们实施人员进入现场,推动项目。
而我们的实施人员也非常努力地在现场推动,推动,再推动,直到推不动,项目成为一个胡子工程或者是拉面工程。
项目现场推广时间无限延长对用户,对软件商,对实施人员都是一种极大的伤害和折磨,我们认为项目推广时间无法确定或者确定后无法结束恰恰是一个项目失控的症状。
泡现场其实是典型的项目失控特征之一。
我们可以分析为什么经常出现用户要求实施人员来泡现场?
从实施的角度来看,无非是以下几种原因或原因的综合。
8.2.1软件总是出问题
很多项目从一开始到现场推广是一段痛苦的经历,在推广过程中简直就是软件捉虫记。不断往前进一步,不断发现新的严重影响使用的BUG,导致项目停滞,去解决BUG,往往要耗费大量时间,然后再费尽力气再进一步,再发现BUG,再暂停,再去解决BUG,如此形成一个恶性循环,项目走走停停,周期不断延长,用户失去信心,而且觉得我们工作质量太低,慢慢不相信我们,对我们充满抱怨。
软件存在问题是客观的,没有不存在BUG的软件,无非是多少严重程度的问题。这应该是一个理智实施人员开始工作的限定条件:用可能存在BUG的系统解决问题。
但是我们往往犯的一个错误,人总是有意识无意识假定软件就应该是没有问题的。无论是用户还是实施人员都有这样的心态。
如果软件总是存在BUG,规划在干什么?开发在干什么?测试在干什么?那么多管理流程和制度为什么不能保障?在我们的宣传往往又是稳定可靠的情况下很多人对这些事情就有了一种反感和抵触的情绪,进而认为自己现场工作不顺利,都是公司的错,都是软件的问题,我是无能为力的,出现这样的心态才是最大的问题。
其实我们现在已经明确了,软件发现BUG是肯定,这是我们可以预见的项目风险。我们作为一个实际项目控制者,必须采取主动的项目控制对策,才能有效管理项目。
这个时候最有效的方法就是加强对软件的验证,根据自己项目业务过程,不断测试,发现是否存在严重问题,并采取相应的对策解决。
如果不是严重问题,可以先寻求替代方案(寻求替代方案可以是群策群力的过程),不影响项目实施进度,然后让公司规划部门将其纳入可接受的版本规划时间,如果公司响应能力不足,我们将要把其作为项目风险提前和用户沟通,寻求支持和理解。
如果存在严重问题,肯定影响项目进展,就应该全力在公司推动解决BUG,然后再去现场更合适。
否则到了现场问题响应不及时,被用户指责之下非常容易被动,失去对项目的控制权。这个时候实施人员要么只好无原则承诺我们开发会解决来转移自己的压力,然后让公司承担大量开发响应申请,要么只好表示我们一定来解决问题,大量时间在现场推动一些无关重要的细节。
真正明智的实施人员一定会自觉花费大量时间做业务流验证,确保项目功能可用够用,能够支撑一个或几个完整业务流,没有重大程序隐患才会去现场推广。
在软件某些业务存在极大问题的时候项目团队不应该去现场,而是推动这些问题解决完成才能去现场,去现场时间多少不会成为用户是否认同我们的标准,去了能否解决问题才是用户是否认同我们的最后标准。
可以少去不去,但是每次去之前一定很清楚自己能解决什么问题,哪怕是很小的一个问题,解决问题完成培训,落实用户自我计划就可以回来。
如果软件发现还有问题却一定要去现场,前提就是你还有其它可选择的业务方案或管理行为要去解决,这些问题可以和发现的问题独立存在,无关紧要。
有的实施人员可能抱怨,为什么一定要我在公司推动这些事情,其实这倒未必,一个好的实施人员发现一个项目存在问题,可以及时反应到公司,通过软件配置管理和开发流程解决,但一定要按照配置管理要求把项目情况反映到位,如果反映不清楚才需要到公司协助,多出来的时间就可以多响应一些项目,这样一个实施人员同时响应两到三个项目是很容易做到的。
8.2.2要推广的业务流不完整(连载五十一)
很多项目也做了一些验证工作,到了现场随着业务的展开,还是不断发现BUG。这就说明我们并没有建立一套可独立推广的完整的业务流,只能说在项目实施过程中我们只就部分业务流进行了验证,到了现场才发现实际业务情况并非如此,因而又陷入困局。
而能否拿出完整的可操作业务流推广方案是项目调研质量紧密结合在一起的,项目调研完成后,一定要可以拿出完整实现的业务流实施思路和方案,这也是自我评判实施调研工作是否完成的一个尺度。如果调研完成了,只有一堆细节信息,却没有完整的业务流框架,这个调研对实施而言就不能算成功,这个阶段工作也就不能算结束,还要花时间搞清楚为止。
但我们在调研过程中未必一定要搞清楚所有业务流和实现方案才能往下走,我们可以先解决完一个业务环节再往下走,把企业复杂的业务流程化整为零,形成相对完整的部分,用一个清晰效益目标牵引或做为愿景,促成企业一个业务流程一个业务流程不断前进。
但对于单个业务流程而言,配置一定要完整,一定可以看到用这个系统把企业实际中哪一件事情真正走完了,然后还比较方便,甚至是前期不方便,但可以完整实现。
如果实施不能得到这样的几个业务流方案,并反复站在用户的角度推想可能存在哪些问题,验证的质量就不会高,也不可能在现场顺利推广。
如果每个项目都能做成一个完整业务流,只要有10个成功的项目,软件在很多方面就会达到非常优化好用的状态,再进行推广经验的移植效益将极大发挥。
8.2.3和用户就推广实施方案没有达成一致
有的时候,实施工程师也拿出来一些业务实施方案,但一进入推广,用户并不认可,要求按自己的思路来,这样经常是边推广,边争论,然后不断调整推广目标,下面的人就等待观望,我们不得不调整部署,重新开始实施过程,甚至是软件配置和功能验证过程。
这样看来有清晰的业务实施方案也未必就能顺利推广,业务推广还必须和用户项目组达成一致意见。要和用户达成一致,并非是某个业务可用不可用,而是我们是否可以找准用户也可以认可的价值点。
举一个例子,我们很多项目要求用户入库数据,以方便今后图档的管理和查询。很多用户一实施就不认同,反而要我们上工作流或项目管理。这样就项目推广目标没有达成一致,结果就容易反复,反复后用户可能发现没有基础数据工作流和项目管理也跑不好,最后还是搞基础数据录入,但一上一下的折腾过程中,大部分用户可能已经不看好项目实施。
为了让用户认可推广目标对应的业务流,我们往往要想好关于业务价值的说辞,这个说辞推导要有力,而且有数据事实证明,而且有可清晰看到的价值,这样的业务才可能有人跟着走。
换句话说,你想让别人做什么事情,一定要有一个可以看得到或者想象得到的效益可期待,否则业务推广目标很难达成一致,即使用户同意按你的思路去做,最终也一定反悔。
就以我们说图纸是否可以方便查询是很重要价值点为例,如果仅仅强调这一点用户开始可能还不觉得,一旦录入数据开始就觉得怎么信息化尽是干苦力活?积极性很快就会演变成阻力。
所以要推广自己的业务流一定要和用户项目组就推广目标达成一致,达成一致才能快速推广。
事实上我们要先和用户分析如果图纸不好找有什么后果?能举几个真实的事例吗?如果好找真的有效益吗?为了这些效益值得我们投入这么大成本去做吗?如果遇到阻力领导会支持我们吗?
这些效益和目标经过反复设身处地的换位思考,和用户项目组达成一致了,才能成为项目推广顺利进行创造条件。
目标明确了只能说是大方向的事情落实了,和用户项目组要达成一致的事情还包括具体的策略,如何做才能保障这个目标实现?这个思路也要达成一致。
还以图档管理为例子,原来的图纸不好找,需要解决,这个目标认同了,不等于事情可以启动了,还要和用户组就如何管理的方案达成一致。
那么在系统如何管理图纸呢?我们可以以产品结构建立树状视图,我们可以根据各种特征建立分类视图,我们可以根据阶段建立项目阶段输入输出视图,我们可以根据文件类型建立关联视图等等,这些思路也要先和用户项目组达成一致,让他们觉得这些思路和方案不但能够解决问题,而且以往管理上的一些优点也可以被继承,这样的方案才比较有推动力。
管理的思路明确了,如何去做也要考虑清楚,而不是走一步看一步。
我们是安排专人录入数据,大家去利用,还是安排每个人都录入一些数据,逐步积累,我们是从新产品开始积累,还是把老产品数据也立即录入系统,我们每个人每天可分配工作时间大概是多少,这个时间段经过培训可以录入的数据量是多少,这样按一周数据录入量计算全部图纸录入完成大概需要多长时间,能否在系统实施可接受周期内,如何保障每个人的数据录入时间,如何组织培训,确保每个人都可以掌握操作。
这些工作细节都需要沟通确认,而且计划分解得越详细,执行力越强。因为所有最复杂的事情都变成了很简单很小的独立工作,每个工作完成需要的技能都很单纯、时间很小,在落实时阻力就小。
如果思路得到确认,我们就可以和用户项目组一起建立一个计划,落实我们的设想,再发动大家按计划运行。
一旦计划确定,要立即行动,我们应按计划高质量完成工作,然后就是催促用户项目组按照计划完成他们的任务,并提供技术支持,这个阶段我们要明确技术支持阶段我们就不需要大面积现场工作,除非有系统不能解决的问题
如果用户按计划在执行,我们还需要不断主动了解进度,形成一种进度反馈,根据进度快慢采取适当措施保障项目目标在实施周期内实现。
实际上通过和用户就实施方案达成一致,我们也就传授了一个很重要的项目管理套路:认同目标,明确策略,建立计划,立即行动,不断反馈。可以说任何事情只要这样做,就很难失败。
8.2.4没有激发用户的主动性(连载五十二)
一般情况下现场推广很多用户认为主要是靠软件公司来落实,的确在很多企业由于体制观念的原因,在这些方面需要软件公司多做很多工作。
但实际上一个项目大量依赖软件公司人员推动,这个项目失败概率会比较高,越是成功的项目,用户主动性越强,用户才应该是项目实施的主体。用户自己的项目不是用户自己实施,却要依赖我们实施,这样的项目我们如何成功?
我们之所以推广失败往往是我们把自己思路给用户一描述,甚至没有什么描述,就闷头大干,用户不知道如何参与我们工作,只好去监督我们,成为项目的监工,而他们又不清楚系统的思路和实施套路,只能按照领导意图来给我们施加压力,而不是和软件公司一起分担压力,这样进行的项目自然难以受控。所以我们这样做的都是事倍功半的工作。
把用户,至少是用户项目组变成可实施的力量,并帮助他们推广实施项目,而不是依赖个人力量推动实施,把他们由项目监工变成项目执行者,我们成为监工和顾问,这样的实施才轻松有趣。
让用户真正参与项目实施工作,虽然用户累一些,但大家有了团队的感觉,心情反而更愉快,说个套话:往往在这个阶段和用户建立了战斗的情谊,为今后验收回款参观都奠定了牢固的基础。
所以我们在项目推广方案中要反复强调和贯彻这一思路,并得到用户认可,在实际工作中落实,而且用户掌握的技能要清晰写进备忘录,这样就可以请他们中具有相关技能的人去解决问题。
例如软件安装,我们可以和用户约定,我只示范装3台,然后安排用户方面的人装3台,我们在旁边看,如果连续三次都成功,我们认为基本上问题不大,其它的都可以交给用户处理,我们只需要处理意外问题。
又例如进行某个业务操作培训,我们先要经过讲解示范,确定用户项目组明白,立即请用户项目组操作,确定他们掌握了操作,那么后面的培训可以主动邀请用户项目组成员讲解,我们提供技术咨询,今后培训工作策划组织都可以逐步传授给用户项目成员负责,最后一般问题基本不需要我们出马,大面积基层用户都习惯和自己人交流解决问题,我们只负责解决软件的疑难杂症,而且某个业务被大部分人熟练掌握后,我们的工作主要就是新的业务流推广方案验证设计规划,还有保障项目进度的相关管理活动。
这样一轮轮循环,就可以让用户项目组慢慢成为实施的主体,而且在这个过程中用户项目组成员可以得到极大能力成长和进步,他们也会感谢我们的帮助。
一到现场工作,任何时候都要确定这个游戏规则:
实施推广以项目组为主,我们负责技术支持,负责推广实施能力的传帮带;
一旦实施能力转移了,我们并不需要经常来现场工作,因为我们来现场工作成本极高;
一般情况下我们只需要在现场解决问题,培训技能,达成后续工作计划,完成本次业务目标就必须返回。
我们不能解决问题的时候,我们会全力促成问题解决,一旦解决我们第一时间安排现场响应,但如果我们解决不及时不顺利我们会第一时间通报,也请用户理解支持。
不过坦率的说,很多实施工程师本身也不知道如何做这件事情,思路也是乱的,也不会做计划,这样的话去激发用户就缺少个人魅力和行动能力,就只好亲力亲为,被动响应,这个时候为自己能力不足付出代价也是没有办法的事情。
8.2.5光打雷不下雨,缺少高管支持
很多时候仅仅和用户项目组达成一致意见还不够,还要和用户高管达成一致。否则在项目遇到阻力的时候,得不到更多资源响应。
达成一致的实施方案要给用户高管汇报,汇报要点不在软件功能实现和配置细节,而在于目标是否认同,资源投入计划是否可行,可能会有哪些风险,采取了哪些措施保障,如果出现一些项目阻力,需要提前得到领导哪些授权或政策支持。
特别是要向领导汇报取得认同的工作就是,将和信息化相关的基础工作(例如数据录入,业务执行)变成有制度保证的岗位要求和流程要求,这样信息化工作推进才有制度保障。
取得高管支持最有效手段是建立和高管的汇报机制,这样才能够让高管清楚知道项目进展和需要给予的支持,项目组成员也会因为可以经常得到高管授权和肯定而努力推动项目。
给高管汇报要注意的是,每次汇报应该准备一些积极的内容,值得肯定的内容,的确有进步的内容为好,否则仅仅是诉苦汇报,是不用指望高管对一个无能的团队给予更多的支持的。
8.2.6边界总在变更(连载五十三)
有的项目实施过程中,用户不断提出一些新的要求,希望我们能够给予解决。
这个时候我们有的实施人员顶不住用户的压力,被迫承诺答应解决,结果就导致项目的边界总在变更,项目目标在一次次变更中不断变形偏离游离,最终模糊不清,项目也就陷入不断开发,不断提出新问题的循环之中。
用户提出需求要进行分析,一般用户需求有三种情况:
第一种的确是软件规划没有合理解决的问题,而且无法绕过去,或者绕过去对用户项目就没有什么合理的价值了。
这类需求在业务调研阶段就要主动思考和确认,在功能内部验证配置业务流时就要发现,并向公司反馈,强力推动解决,不要等到现场推广时让用户去发现,然后再去改,这样可能浪费了好几个月宝贵的时间。
第二种是软件易用性和稳定性或者性能方面的问题,但的确有替代方案或者暂时可以接受。
对于这些需求我们应该给予解决,但要和用户解释这些需求必须纳入统一版本规划实现,不可能今天提出要求,明天就改好,这样开发管理快是快,但长远可维护性一定很差,所以在功能验证阶段要主动和用户项目组提出项目推广过程中哪些功能可能会产生问题,需要大家提前做好沟通工作和说辞,一旦出现应用者不满意的情况,我们还可以想办法提前打预防针,心里有数的处理疑问,不至于被动响应,甚至自己都没有发现用户提出的缺陷或者种种问题。
如果处理得好,在一个长周期项目内(例如半年或者一年),如果能够提前识别这些需求,纳入规划开发响应,那么最终项目验收的时候这些问题也就比较顺利地得到解决。
第三种是用户应用后产生一些新的业务思想,希望也通过计算机加以解决,这些业务需求可能包含很有预见的需求,也可能是灵光一现,也可能是将其它系统需求要求我们系统也加以实现。
这类需求对内我们可以反馈给公司相关规划人员去合理讨论,但坚决不能给用户任何承诺,超出合同边界的需求在一个项目中是绝对不可以轻易响应的,否则开个一个口子,就无法拒绝用户各种合理不合理,但都不在本项目边界内的需求,项目也就越做越长,无法收场。
这种需求最简单的方法是以合同为准,按合同办事。
比较好的处理流程如下:
a) 先要详细搞清楚用户业务需求到底是什么,核心要解决的问题是什么?很多用户表达的问题和要解决的手段往往是分离的,我们不要把解决问题的手段和问题混淆在一起,另外有时候要解决的问题是因为另一个问题不方便造成的,要先分析清楚;
b) 和用户项目组沟通协调,确定问题的确存在,且需要解决,且能确定解决的需求;
c) 和项目经理沟通,判断该问题是否在方案价值点覆盖范围内,而且影响主导业务正常运行,如果是提交需求建议和缺陷报告给公司规划评审;如果不是先要和用户沟通,看其是否愿意作为后续合作内容,或者另外追加费用解决,不和本项目目标混淆在一起;
d) 如果用户坚持要开发,要及时向公司汇报,并坚决执行公司意志。
8.2.7做人不好
有的项目存在严重人员沟通问题,用户对我们不放心,宁可把我们关在现场不回来,生怕我们走了不再来了。
这种原因就是实施人员没有建立足够诚信,往往是一个阶段工作没有做完,没有确定到应完成的里程碑点,就不得不做其它工作,甚至就是不够认真负责,敷衍了事。
用户听信实施人员下次来解决问题的承诺回家,结果实施人员在多个项目现场奔波中并没有投入精力解决软件问题,或者促进公司解决问题,下次不得不被迫过来又没有真正解决问题,用户并不满意。
有的时候调度周转不灵,版本发布推迟,用户不能看到我们按计划兑现承诺,也会不相信我们的工作,采取要求派人现场长期遵点解决的要求。
其实如果问题不能解决,遵点是没有用的,如果问题能够解决,往往是双方沟通协调后在软件公司先解决然后再到现场解决的,软件公司资源一般都很紧张,将人压在现场,几乎让自己问题陷入无人催动的境地。
所以我们一定要做好最坏的打算,和用户慎重承诺,说到做到,有问题全力保障问题及时解决,给用户两个印象,第一我们很认真守信,第二我们时间珍贵,我们每次只能解决关键问题,实施还是靠用户自己解决。