几个月前,公司委派我负责一个难啃的骨头式软件开发项目。公司把我从一线开发设计组调到项目需求组,主要负责客户需求调研、确认和沟通的管理工作。对于此项工作我原来认为压力并不大,因为对于软件开发的需求调研我可谓轻车熟路,加之自己有一线开发和设计的经验,工作起来应该会是一帆风顺的。但没有想到的是才过了一个月左右,我却发现自己陷入了沟通管理的困境之中。
在我的多年开发经验中,我深知道沟通不当不仅会造成需求失真,而且还会给项目带来严重的成本损害,甚至会导致项目失败。例如,如果需求在一开始就不明确,项目将会无可避免的面临不断的变更,从而导致工期滞后和成本倍增,并最终可能导致项目失败。而且任何一个需求分析上的错误,都将会在以后的项目工作中要付出50-100倍的代价来补偿。因此,在项目的开始阶段时,我先在项目需求组内召开了2次头脑风暴会议,然后带着问题到该客户各部门进行实地调研需求。在经过艰苦的实地考察和了解后,总结出一份详细的需求调查报告。但是在开发组进行开发的一个月后,客户方又提出了对需求的重大更改。由于客户坚持更改,开发组只好调整了开发计划。在之后的6个月里,由于客户新的变更还是会不断的提出,频繁的需求变更最终使该软件开发项目不得不以宣布项目失败而收尾。
在总结和反思项目失败的原因时,我意识到自己在处理需求沟通管理时犯了一个很大的错误。按照一般的软件开发项目规律,客户方应该有一个项目统一的接口人,开发方的需求调研组只需要与该客户接口人交接和沟通就行。这样不但可以避免与客户方的多头沟通,而且可以保证开发方的根本利益。但是本项目的客户方根本就没有一个统一的项目接口人,使到我们项目需求组在涉及到需求确认或变更时,都需要和客户方的多个部门进行不断的沟通和确认。最惨的是这种多头沟通不但没有获得客户高层领导的认可,而且多头沟通的结果往往是相互重复或相互矛盾的。在我意识到是自己陷入了与客户沟通管理的泥潭之中时,但却已经回天无力了。
一. 什么是开发项目的沟通管理泥潭?
软件开发项目的失败有很多是由于需求混乱和沟通不良造成的。简单的说,就是沟通对于软件开发项目来说有着特殊意义。在成功的项目中人们可能感受不到沟通所起的重要作用,但在失败的项目反思中却往往提到沟通不畅的危害,而且也往往把沟通不良作为是项目成功路上的最大拦路虎。因此,在软件开发项目的需求调研中,有效的沟通管理显得尤为重要。这是因为项目需求混乱和多头沟通的原因也许有很多,但是这些问题往往是由于沟通管理不当所造成的。
(1)沟通接口管理不清晰,需求易呈现多样性
在这个失败的项目中,给我最大的经验教训是:如果项目的沟通接口管理不清晰,就会形成多头沟通和多头意见,导致许多该提出的需求反而未能得到有效提出,或提出了许多相互矛盾的需求。这里所说的沟通接口管理包括双方的沟通接口人员的责任管理,也包括双方不同层面接触时的沟通接口计划的管理。
对于需求简单的软件开发项目来说,相对的与项目需求有关的部门和人员也只有几个,直接沟通就很容易弄清楚真实需求。而对于相对复杂的开发项目来说,各部门和人员的需求也相对的复杂和繁多,而且可能都是紧密联系的,在流程上一环扣一环。当任何一个环节出现问题时都将影响到其它子项目需求的实现,也可能导致整个项目的失败。而且,子项目需求越多,需求的相互影响就越复杂。
(2)沟通传递层次太多,是深陷沟通泥潭的主因
在这个项目的需求调研中,客户方的组织结构对沟通效果影响之大也是我之前所没有想到的,这也是陷入需求沟通泥潭的重要原因