1、 客户需求不清
此类客户往往只知道自己要做一个什么软件和其中的几个核心功能,对软件考虑不够全面。比如客户常常会说我想要一个类似美发店发卡的软件,可以充值消费就行。但是客户对会员的录入、管理、充值满减、积分体系、老带新等等基础/周边模块并没有考虑,后面再需求沟通或者实施的时候再进行细化,往往会导致交付期延后。
2、 客户频繁修改需求
因为软件大部分不是标准产品交付,开发到一半的时候客户可能觉得这个模块名称不太好、或者那个按钮位置不对希望修改一下。可能在客户眼里觉得改一个按钮不是分分钟就可以搞定吗?我花钱买软件提这点要求你们都不能满足?但是这个在软件开发这里是个很头疼的问题,改个按钮看起来很简单,但是会涉及到接口、涉及到其他类问题等。
3、 客户和项目交付团队缺乏沟通
大部分客户会觉得,我已经把我知道的信息和想要的软件都告诉你们,你们按照需求开发就行了,不用总是过来跟我交流,但是往往最后开发出来的软件不符合客户的要求,甚至远远低于客户的预期,但是服务商已经投入了人力物力,觉得我就是按照您之前的需求开发的,最后就是导致项目产生纠纷。
4、 项目核心团队常被其他项目拉去救火
公司是以周为单位做计划,往往一些突发情况就会打乱计划,使得公司的员工一直处于救火状态,领导临时安排的活马上就要去完成,往往重要不紧急的事情都变成了重要紧急的事情。最后导致所有项目都处于吃紧状态。
5、 供应商能力层次不齐,管理困难。
因为每个公司的主营业务和员工的能力方向都有限,很难避免会接触到一些自己不擅长的软件项目或者是部分模块是自己从来没有做过的。那么如果接到这些项目软件公司往往会选择部分拆包或分包,这里就会存在供应商的管理和配合问题。这类供应商一般都是领导或者采购通过朋友关系介绍找到的企业,能力层次不齐,最终可能就是因为这部分内容没有按时交付或者交付不达标导致整个项目的失败。
针对以上问题,我总结了几点想法和建议(欢迎大家提出宝贵的意见)
1、 针对需求不清的客户前期进行充分的引导和介绍,让客户充分了解自己要做的到底是什么样的软件。
2、 在项目交付过程中不依赖于一次/二次的需求确认文档进行开发,采用敏捷开发的模式,每开发一点就跟客户沟通确认下,如果与客户预期存在偏移及时修正。
3、 针对项目进行优先级排序,优先将重要紧急的项目交付完成,如果人力不足及时向公司反映申请资源。
4、 保持项目核心成员的稳定,项目经理、研发负责人、质量负责人应及时同步需求和解决方案的进度情况,如果团队内部有任何人发现问题,均应该在项目站会中提出来,必要时需要邀请客户参加问题解决讨论,保证团队内部&团队外部对项目情况认知是一致的;
5、 对于供应商可以选择一些靠谱的平台进行推荐,例如猪八戒、解放号之类的软件平台汇聚了大量的软件供应商,他们已经对服务商能力进行了核实,另外还有交付保障和服务商历史交易评价数据。可以在平台上多选择几家进行比较后选择。