成功项目和失败项目的大不同在于管理,而项目管理很重要的工作是对各种问题的解决。本文所介绍的这个项目,对于客户,是新开展的业务;对于集成商,大部分技术是未曾使用过的。通常说来,这样的项目存在极大的风险,那么,请看看其中的问题是如何被解决的……
一次,B计算机公司(以下简称B公司)了解到A企业要建设一个客户服务中心,向客户提供有关本企业产品的咨询、查询、委托、投诉等服务,并希望能够尽可能采用各种计算机和通信技术,为客户提供快速、准确和渠道多样(包括电话、传真、WEB、邮件等)的服务。
当时,客户服务中心技术的发展在国内属于萌芽状态。A企业的原有业务运作只有一小部分采用计算机处理,而且原来并不存在客户服务中心这样的机构。B公司擅长的领域是典型的基于UNIX与TCP/IP的交易处理系统,对于建立客户服务中心所需要的CTI知识知之甚少,WEB开发也从来没有尝试过。对B公司而言,这是个新领域,在机会存在的同时,项目的风险也非常大。
这个项目的执行过程中碰到了许多问题。那么到底有哪些问题?又是怎么样解决的呢?案例中遇到的主要问题分成三类:客户需求变化、资源需求、成员冲突。
客户需求变化
客户需求变化的实际情况主要有这样几类:
◆界面样式:这是在大部分项目中比较常见的变化。客户的技术人员或操作人员站在自己的角度,提出对界面的布局、颜色、字体等的不同看法。开发人员为了搞好和他们的关系,一开始都有求必应,但几天下来发现不对了,经常出现因为不同人的喜好不同,进行多次修改,甚至是来回修改。再比如输入输出形式:增加某种输入或输出方式;比如对A企业用户的来函咨询或投诉,要求采用扫描仪转换成图形形式存入系统。
◆数据结构:数据结构的变化有几种,一种是长度的变化,一种是增加内容,还有一种是减少内容。它对应用软件的影响要看变化内容与其它数据的相关程度。
◆功能增加:增加对某些事件的响应,如增加对某种产品的查询。
项目成员把变化根据系统开发的需要从业务的角度进行分类:功能类,即能否执行某项业务功能;性能类,即某项业务功能的处理速度;界面接口类,即某项业务功能的表现形式,既包括界面,也包括输入输出手段。
对于不同的改变,对应的策略是:功能类的变化是第一优先响应,其后依次是性能类、界面接口类。
对照合同规定,发现有些变化是合同规定范围内的,在需求分析和设计阶段因疏忽造成的遗漏或者错误;有些变化是合同之外的,而这些变化又可以分成两种,一种会影响系统开通,另一种可以在系统开通之后再开发。针对这些分析,采用的策略是:合同范围之内的要求坚决修改;合同范围之外的、但影响系统开通的,也进行修改,但要知会客户;合同范围之外的可延后开发,要和客户商量并达成一致,在系统开通之后再进行。
同时,项目成员也对客户提出的需求变化的形式和来源进行分析,发现从形式看,有相当一部分属于“拍脑袋”的产品,而很少经过客户的内部讨论以及双方的详细讨论,尤其在界面样式方面;而从来源看,发现其中一部分需求是因为技术人员不了解业务,或者操作人员不理解管理人员的想法而导致的。鉴于此,项目组首先补足各种分析设计文档,包括界面方面。一方面是和客户高层沟通,需求变化提出的形式达成一致,即请客户将变化以书面形式提交,这样使得客户在提交变化请求之前也会进行慎重的思考;另一方面在内部对开发人员提出明确要求,不可私自答应客户人员的需求变化要求。
通过实施这些有针对性的措施后,客户方提出的需求变化变得慎重了,结果需求变更数量少了很多,而且也规范许多。以后的系统开发工作也比以前顺利了。
资源需求
俗话说:兵马未动,粮草先行。在项目中,人属于“兵马”范畴,其它的资源属于“粮草”范畴。资源可以分成两种,一种是内部资源,一种是外部资源,处理这两种资源的方法有所区别。
内部资源主要包括开发场所、办公设备、开发设备等。这些资源主要依赖两个部门,一个是行政部门,一个是商务部门。工作方法是首先通过公司领导,使这两个部门知道近期有项目需要他们的配合;其次做好沟通,对他们的工作表示尊重,同时也了解他们的工作方式,即一般需要多长时间完成某种任务;接着是要明确项目的需要,资源应该在什么时间到位;然后以书面的形式,把项目需要清楚准确地传送给这两个部门。
外部资源主要是项目中需要的特定设备。有的直接采购,有的需要预先借用,这些都需要向供货商或者厂商描述项目情况、项目潜力、公司实力,说明双方的共同利益和长期合作前景,一方面建立良好的合作关系,一方面尽可能获得好价格。但麻烦的问题在于设备的安装调试,尤其是在安装调试之后突然发生的故障,这种问题的解决要以合同为基准,然后一起协商共同寻找解决办法,制定实施计划,而不是把问题直接甩给对方。
但是也碰到过其它问题。比如原定资源因为种种原因不能到位,这时要寻找变通的办法,比如说采用同种数据库,但操作系统平台更换;比如说在功能不变的情况下,先采用性能较差的设备顶替,如网络交换设备。
成员冲突
有部电影有这样的对白:“有人的地方有江湖”,换在项目中变成“有人的地方有冲突”。冲突是非常正常的,重要的是面对冲突的态度和办法。
解决这类冲突有两个很重要的原则:一是不能全部采用正式、生硬的方式去解决,应该多寻求一些非正式渠道来沟通;二是要理解和尊重,在项目中倡导互相的理解尊重,“求异存同”。“求异”有两方面含义:一是尊重个人工作风格,这样会使项目色彩更丰富;一是项目工作中,每个成员的职责都是不同的。类似的,“存同”也有两方面含义:发掘共同的爱好和话题,缩短彼此距离;对于工作中的共享部分,一定要有严格的相同标准。根据不同问题采用不同方式加以解决。
在这个项目中,成员冲突有这样几种:
角色冲突:组员不服组长的权威,组长对组员工作不满意。针对角色之间:了解为什么组员对组长不服——认为组长有很多方面不如自己;为什么组长对组员工作不满意——因为有些工作不能完成。在了解这些原因后,以非正式方式使成员明白:一个团队是由具有各种特长的成员组成的,“尺有所短,寸有所长”,领导角色的人并不是在所有方面都比成员们强,他的目标是对资源、时间的安排以保证任务的完成;向组长说明:作为应该想办法帮助成员解决问题,而不是简单指责。同时项目经理在正式的场合做了两件事:一件是尽可能帮助组长树立权威;一件是在项目工作以及团队活动中尽可能让所有成员体验其它角色,明白各自的区别和难处。
生活习惯:由于是在外地开发,成员们需要共同住宿,一些生活习惯在成员之间引起冲突,比如睡眠时间和个人爱好的不同等。生活习惯纯属个人空间范畴,应该在项目成员之间强调互相尊重;其次是把睡眠时间相近的成员调整在一起,避免互相干扰作息;把个人爱好相同的调整在一起,使得他们在工作之余有共同的话题,也是一种放松。
还有如编程规范、工作习惯等问题,项目组尽量都以类似的思路解决。
项目管理的过程,其实也是解决各种各样问题的过程。总的说来,解决问题的基本步骤是:明确问题、分析问题、分析解决办法、执行解决办法。把握住解决问题的办法,问题可迎刃而解了。
成功的管理使得项目取得了良好成果。B公司在项目中采用多种从未使用过的技术和产品:Browser / Web Server / Database Server结构、CTI技术、排队机,并独立开发语音传真服务器,后按时完成项目。该项目的完成为后续合作奠定基础,很快在第二年签署二期合同。
后,无论是客户还是公司,都对项目的结果表示满意;项目成员也对能参与这个项目表示高兴。