软件开发项目管理中我们常遇见的问题是需求的不断变化,相信大家都遇到这样的情况:
  1、功能还在开中,需求发生了变化,无论来自客户还是来自内部的产品人员;
  2、突然要增加数据库表的字段,看来很简单,可以是要修改大量的代码
  3、刚开发完产品人员提出功能修改,原来的版本废弃掉了;
  4、客户的需求总是不明确,即使签署了需求确认;
  总之各种各样的情况,引起的结果只有是不断的修改代码,重构系统,开发人员不断的加班,疲惫的赶工,毫无成感,士气降低、效率降低、开始产生怀疑,人员开始离失,一切陷入一团糟,开始周而复始的恶性循环。
  是不是我们只能被动接受呢?当然,肯定有解决办法。
  首先,我们确定这样一个意识,需求是变化的,肯定是变化的,有时候变化是不需要理由的,技术是服务于业务,技术只是实现的手段。
  有了这样的准备,我们在开始设计和开发一个系统的时候应该开始准备如何应对需求变化,系统的设计不是为了完美,而是实用,为了满足需求的变化,我们应该话费少的代价去应对需求变化,而不是非要重构。
  其次,面对需求经常变化的项目,我们要采取适当的开发模式,敏捷是其一,阶段性的成果展示,便于修正接下来的功能,将迭代小的周期化,比如目前的网站开发中,需求基本上天天变,我们不可能要求产品人员一次性的将产品设计好。
  再之,在系统设计时,足够灵活,不要想象一次将系统设计完美,以后不会修改,很多系统都要经过几次的重构,才能逐步成熟,要在适当的阶段做正确的事。另外,适应需求变化,系统足够灵活,对开发人员技术有很高的要求,要求尽量做成可配置的平台化系统,增加大量配置,不要重复性的执行大量任务,能让电脑做的让它做。
  后,我们还是要有明确的意识,需求肯定是变化的,技术是服务于业务的,适当的求完美,实用更有用。