在APP开发过程中,最为让人头疼和烦恼的,大概就是开发需求的变更了,在开发过程中,客户往往一个新的想法,就会把原来的想法覆盖掉,或者改变掉,正常情况下,可能不是大改,也有会需要大改的情况发生,而软件开发过程中是渐进式的,是产品到UI到开发,是一个项目落地的过程,一个较长的过程,在这个过程中,客户的想法发生新的碰撞,产生新的火花,其实也是再正常不过了,有新想法,需要变更,也是软件开发过程中的家常便饭。
一、什么叫软件需求
软件需求是(1)用户解决问题或达到目标所需条件或权能。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 (3)一种反映上面(1)或(2)所述条件或权能的文档说明。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制。
软件需求分为三个层次,业务需求、用户需求和功能需求—也包括非功能需求。
业务需求反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
用户需求 文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。
功能需求)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。
二、作为APP软件开发公司,该如何应对开发需求变更
1、对软件需求进行有效管理
在项目签订之前,通过思维导图、功能列表等多种方式帮助客户进行功能梳理,最大限度的减少将来可能存在的需求变更。并将功能情况列入合同内,作为依据;
在项目开发过程中,对需求变更进行有效控制,一方面,在产品原型设计阶段,与客户反复确认,以免进入后期开发再有新的变更。第二,减少过滤不合理的需求,从产品的功能和用户的角度给客户合理的建议;第三,对于UE开发过程中,实在需要修改的需求,较小的需求变更,可以接受的需求,可以帮助客户实现,提高客户满意度;对于较大的变更,对整体开发有较大影响的需求,需要对软件进行重新评估,看客户是否接受在下一期开发,或者本次需要开发的话,需要对新功能的情况进行评估。第四,一旦UE确定后,UE将无法再次变更,因为后续开发都会以此为依据。
2、在系统开发完成后,客户再次提出新的需求
这种情况下,基本上考虑是约定之外的新的开发需求,要分析客户要改变的具体的是什么内容,如果是一些小需求,可以在下次版本迭代时进行开发,在原来基础上增加一些小的修改。如果是较大的基本的核心功能都需要更改的话,那么可以在二期项目中,需要进行大的升级或者重构时,重新评估来满足客户的需求。而且要防止客户滥用提需求的权力,对于一些不合理的需求,还要去引导客户,让他们理解这个功能的不合理的地方,从而重新修改需求或者放弃。
总的来说,软件需求变更并不可怕,最重要的是需要合理的控制和应对,小修改,满足客户,提升客户满意度,大修改,重新评估,客户也是可以理解自己的需求变更的。最无法把控的就是前期需求不清晰,或者客户不认可需求的内容为新增需求的情况,所以,文档化管理、前期约定,对双方都是更好的保障。