最近做一个APP开发项目,随着APP开发项目的进展客户对此APP软件的深入认识、本身企业管理环境的变动等多种因素使客户需求不断改变,此APP开发项目实施进度一再调整,APP开发项目交付日期也会随之一再拖延,此APP开发项目组成员士气越来越低落,更有导致此APP开发项目失败的危险。
需求变更本应是客户的权力,但也是软件公司的为难之处。如果确需变更当然要满足客户需要。问题是不能让变更权力滥用,把一些无关痛痒的变更宠惯养成堂而皇之的变更。如果对于客户提出的变更,无论大小都给予解决,客户对此非常满意,然而APP开发项目进度却拖得很长。
这种“谦虚型”做法,完全顺着客户的意见走,客户满意度就一定会高吗?其实也不一定。由于需求变更会带来工作量的大量增加,甚至可能会出现大量的无效劳动。而且,频繁变动的需求也会导致实施质量下降,留下许多隐患。因此,一味的迁就用户将会使进度一拖再拖,实施方案一改再改,变更越来越多,士气越来越疲,软件公司越来越不满意,用户越来越急。到最后,软件公司会发现这个APP开发项目已经成为了一个“不可能完成的任务”。
在APP开发项目实施过程中,软件公司所要面对的将是一系列和多方面的考验。经常发生而又最令人头疼的恐怕就是需求变更了。客户变更需求是APP开发项目与生俱来的特性,也是一个无法避免的事实。需求变更的表现形式是多方面的,如客户临时改变想法、APP开发项目预算增加或减少、客户对功能的需求改变等。它会导致APP开发项目实施过程中成本增加、进度拖延等风险,而且越往后的变更产生的风险将越大。
需求变更泛滥是非常可怕的事,尤其是到了APP开发项目实施后期,客户不断对产品提出修改意见,甚至有时刚刚重新完成的更改,客户又要求改回去或改成另一种模式。需求变更越来越多,软件公司只能疲于应付。“无底洞”是大部分软件公司进行APP开发项目的共同感觉。 软件公司作为APP开发项目的承担者,在规定时间内利用有限资源保质保量的完成APP开发项目,让客户和公司都满意是最终目标。但是让客户满意就是不断满足客户无穷无尽的需求吗?下面分析一下出现需求变更的根源。
(1)合同签订马虎,没有真正明白客户需求
签订合同时缺乏对客户需求认真对待,导致需求描述不清,为后期的实施工作带来困惑。销售人员为使客户能够快速的签订合同,往往草率决定和片面同意客户提出的需求。当客户提出新的需求时,往往是销售人员一看“应该”只是一个小小的修改,没有太大的影响,所以直接答应能变更。该问题的关键是没有把需求明确再签合同,而且也没有把需求变更的流程写入合同。如果在合同时把客户需求弄清楚,后期就根本不需要频繁的变更需求。签订合同时明确定义APP开发项目需求的范围,可以为以后各项实施工作的开展奠定深厚的基础。
(2)调研时没有深入理解客户需求
在APP开发前的需求调研分析阶段,销售人员和客户的深入交流是减少频繁需求变更的关键阶段之一。但是由于双方的误解通常使需求交流难以进行。更严重的是,软件公司只根据客户提出的描述性、总结性的短短几句话去制定实施方案,没有真正挖掘和按客户的需求去制定实施计划。当客户头脑一热或领导一拍脑袋提出新的需求时,软件公司往往也就不能区分客户真正需求。如果APP开发项目组对客户需求的细节了解不充分,双方对需求的理解就会产生差异,客户只能频繁的提出需求变更。
(3)没有明确的需求变更管理流程
没有明确的需求变更管理流程,就会使需求变更变得泛滥。并不是所有的变更都要修改,也不是所有变更都要立刻修改,需求变更管理的目的是为了决定什么类型的变更需要修改和什么时候修改。另外,对于核心模块的修改没有严格把关流程,有些小需求看起来工作量不大,但是实际上APP开发项目组要耗费比较长的时间去完成这些销售人员或者客户没有考虑到的细节问题。
(4)没有让客户知道需求变更的代价
对变更的影响没有评估是需求变更泛滥的根本原因。变更都是有代价的,应该要评估变更的代价和对APP开发项目的影响,要让客户了解需求变更的后果。如果客户不知道需求变更付出的代价,对APP开发项目组的辛苦就会难以体会。在评估代价过程中,可以请客户一起做判断:“我可以修改,但您能接受后果吗?”。
需求变更对APP开发项目成败有重要影响,既不能一概拒绝客户的变更要求,也不能一味地迁就客户,所以实施需求变更之前必须做好控制。例如授权、审核、评估和确认,在实施过程还要进行跟踪和验证。有句通俗的话说得非常好:“需求变更控制的目的不是控制变更的发生,而是对变更进行管理,确保变更有序进行。” 客户需求的变更总是不可避免的,所以我们要以积极的心态去接受和控制用户的需求,而不仅仅是埋怨。对待客户频繁的需求变更,应采取有效办法应对,避免事态蔓延,不让客户养成随意变更的毛病。
(1)前端客户需求确认
销售人员要根据与客户签订《客户需求确认单》,告知客户变更后可能带给客户的损失,如客户坚决变更,应与客户书面确认并启动变更流程;对于销售人员与客户签订《客户需求确认单》,在制度中应规定,销售人员如不按规定执行者,应承担相应责任与惩罚。
(2)合同约束
需求变更给APP开发项目实施带来的影响是有目共睹,所以在与用户签订合同时,可以增加一些相关条款,如限定用户提出需求变更的时间,规定何种情况的变更可以接受、拒绝或部分接受,还可以规定发生需求变更时必须执行变更管理流程。
(3)建立需求变更审批流程
要明确需求变更审批环节、审批人员、审批事项、审批流程等。目的有两个:一是将客户下达变更的流程尽可能地规范化,减少张嘴就来的非必要、非紧急、非合理、非高层领导意图的“无效变更”。二是留下书面依据,为今后可能的成本变更和索赔准备好“变更账”。凡未履行审批程序的“变更”,一律是无效变更不予受理。 有效的需求变更流程应该包括确认变更、评估变更的价值、分析变更对APP开发项目的影响,以及提交给双方高层进行评价以确定是否执行变更。变更请求必须有书面材料,当用户发现由于业务变化而引起的需求变更,需要提出书面申请。这样对所有的变更,双方的APP开发项目负责人都能做到心里有数。而且用户在递交书面变更申请时比较慎重,一般都在内部经过讨论后进行,这样减少了因用户内部看法不同导致的反复变更。
(4)对于零星变更,集中研究、批量处理
每周或每两周甚至每月召开一次需求变更专题会议,集中研究处理这些零碎变更事项,主动控制好工作节奏,尽量避免由于处理零碎变更而影响APP开发项目运行的总体进度。例如向客户正式提交一份各阶段需求变更的完成计划,注明变更引起的时间、成本、工期的代价和增加的工作量。要求客户配合需求变更计划,确定变更时限,控制变更规模,过时变更不候,离谱的变更不做,保大局弃小变。
(5)评估各种需求变更的影响
客户的需求是永远不会满足的,可能一天一个样,为了达到控制频繁的需求变更。需要将需求变更后产生的成本进行评估与量化,形成分析报告提交双方领导。否则,一味的妥协只会让APP开发项目进一步恶化,软件公司需要掌控客户及公司的进度成本,把客户的每一次需求变更进行成本分析。确认哪些需要收费变更,哪些可以免费配合客户。这样既可以维护客户关系,又不致造成公司无谓的损失。
(6)确认客户是否接受变更的代价
要让客户认识到变更都是有代价的,要和客户一起判断需求变更是否依然进行。例如,变更是没有问题的,但是要明确客户能否接受由此引起的如进度延迟、费用增加、效率下降等问题。一般来说,如果客户认为该变更是必须的(不是其上级领导拍脑袋提出的)就会接受这些后果,通过与客户的协商,APP开发项目组可能会得到回报或者即使没有回报也不会招致公司和客户双方的埋怨。
如果客户认为该变更虽然有必要但是可以暂缓,双方签署备忘录后留待以后解决。如果客户认为该变更可有可无,多数情况下会取消变更。这样即可防止频繁变更,也让客户认识到不是所有的需求都需要变更,更不是所有的需求变更都需要立刻修改。客户一般对APP软件不甚了解,他们认为很简单的事情,但可能解决起来会很复杂。以我的经验来看,一般来说客户的镀金需求可以延期解决甚至不考虑。用户的新增需求如果不是影响到核心业务的实现,也可以安排在现有功能的完善之后。
(7)每月变更记录上报双方领导
最后,软件公司要将有关变更措施和记录随时抄报双方最高层留档备案,可采取简报、文件、抄报、抄送、会议等多种形式。掌握主动权,逐步让不合理的随意频繁变更,成为客户不好意思开口的尴尬事件,尽快形成正常的APP开发项目执行氛围和良好的工作习惯,也为可能受到变更所带来的责任问题留下伏笔。
最后,要在APP开发项目开始就对APP开发项目组和客户进行宣传、培训、教育服务,让所有成员都理解变更控制的重要意义。
郑州知网计算机软件有限公司拥有雄厚的技术研发实力,致力于为客户提供完美的原生APP开发解决方案。把握市场动向,深耕O2O领域。您的电商大业,由知网软件守护