导航↓ 相册|收藏博客|加入友情链接|给博主留言
畅享博客 > 怀抱一叶舟 > 信息化 > [原创]零售企业软件外包后的需求管理
2008/7/1 16:27:34

[原创]零售企业软件外包后的需求管理

 

讨论背景

当前,在中国零售行业,特别是连锁零售企业,绝大部分都已经启用了POS系统、MIS和财务管理等零售应用软件。其中大部分企业的POS和MIS系统都采用外包开发的方式,基本的步骤如下:

1.公司IT部门与业务部门一起完成业务建模;

2.公司IT部门与外包商共同完成系统建模和概要设计;

3.外包商进行数据库设计、代码开发;

4.外包商负责单元测试和集成测试;

5.公司IT部门与业务部门一起进行验收测试;

6.公司IT部门负责新系统/模块的发布更新。

这是一个常规的软件开发过程。从用户需求的萌芽到成熟可能经历过一段很长的时间,IT部门了解并掌握需求的精髓也需要一定的时间,需求的维护、管理以及系统的开发测试都需要一定的时间。从用户正式提出需求到新系统发布的时间长短,决定了用户部门对IT部门的满意度。

大部分零售企业的业务涉及的地域、业态都很广,一直以来也没有形成以地域或者业态为主线的管理模式。中国零售市场和供应链的区域特征太强,导致了不同的业态、不同的区域都有不同的业务需求,这在客观上增加需求管理的难度。企业为了应付层出不穷的用户需求,难于采用定期更新系统的方式,不得不用“救火队”的方式(即用户提一个需求就处理一个需求,这种方式对系统的稳定性和安全性的威胁很大),这更助长了用户部门对实现需求的“迫切性”,而IT部门为了救火采取的措施和分配的资源无形中会影响到新系统的质量问题。随着时间的推移,需求缺陷、系统缺陷、系统功能与需求的不匹配等问题交叠在一起,系统的运行质量越来越低,用户对IT部门的服务越来越不满意…… 

变被动为主动

按照软件生命周期的定义,结合零售业管理软件的开发过程,软件系统的生命周期可以划分成4个阶段。

业务模型开发阶段,构建业务架构,定义业务模型和商业用例;系统模型开发阶段,构建应用架构,定义数据模型和功能模型;系统开发阶段,完成数据库设计、模块设计、编码、测试、发布等传统的系统开发工作;第四个阶段是持续优化阶段,完成业务功能提升及优化、系统性能扩展及优化等,直到系统的生命周期结束。这一阶段的开发工作不可小视,而且管理难度更大。

这四个阶段有严格的逻辑关系。传统的软件外包业务,第一个阶段是由企业用户完成的,第二阶段和第三阶段都由承包商完成(最后的发布应该是用户与承包商共同完成)。如果企业自己有较强的IT职能部门,那么第二阶段将由企业自己的IT部门完成,承包商可在本阶段后期介入。事实上,通过总结ERP或BPR的实施经验,我们可以发现单独由用户部门完成第一个阶段的工作是不可能的,IT部门必须以较强的资源参与进去,这样才可以定义出较完整的可实现的业务模型。

在开发一个完整的系统时基本上是由IT部门配合用户部门完成的,IT部门的工作重点是构建系统的技术架构和应用架构。

但是,随着业务的发展和市场竞争的加剧,用户的需求会不断的涌现,原来构建的系统不可能持续提供完整的支持,改造系统是必然的。这就是前面所说的第四个阶段,这个阶段其实是前面三个阶段的若干次小循环,但每一次小循环之间都可能存在一些关联关系而让这一阶段的需求管理工作变得异常复杂,从而产生了一些矛盾,例如需求的不确定性与系统的严谨性;用户对实现需求的时间要求与IT实现需求的时间要求等等。

笔者认为解决这些矛盾的有效的方法就是完善需求管理制度并制订科学的系统升级计划。而要制订出科学的系统升级计划,要求IT部门必须对用户的潜在需求有很强的敏感度和深入的探索,必须能够捕捉到业务发展方向,捕捉到大部分潜在的关键需求并预测可能的应用时间。否则,原来制订的升级计划将被越来越多、越来越迫切的用户需求打乱,重新回到“救火”时代。

经过多年的实践与探索,笔者认为IT部门只有主动出击“发现需求”,才能够变被动为主动,有效改善日趋下降的用户满意度。“发现需求”要求IT部门应该深入一线作业现场,争取在用户尚未形成定型的“需求”之前发现并实现,而不是坐在办公室里等待着用户来向IT部门提出需求。

 

三大要素发现需求

要成功实践“发现需求”的理论,需要具备三个要素:环境、人和方法。

“环境”包括四个层面,一是企业对IT部门的定位,二是IT部门对自己的定位,三是组织,四是工具。企业对IT部门的定位其实就是企业的IT战略和对IT部门的授权。发现需求要求企业有比较完整的IT战略规划,同时IT部门有比较高的地位。工具是执行需求管理的支撑环境,工欲善其事必先利于器,要想真正把需求管理工作做好,一个好的IT内部管理平台是必须的。

这里着重谈谈IT部门的定位问题。IT部门的定位主要是指IT部门基于企业IT战略基础上制订的执行计划,落实到需求管理就是对需求管理工作重要性的认识和执行思路。只有定好位,IT部门才能真正控制住并执行好预先制订的系统升级计划,才能够合理安排资源深入生产一线发现需求,而又不影响业务的正常发展。

在软件外包业务中,企业的IT部门不仅要构建一套“好用”的系统,还要帮助企业各部门“用好”这套系统。因此他们扮演着双重角色:在面对企业内部用户时,IT部门相是一个软件开发者,除了尽可能满足业务需求之外,还必须从系统的角度去保护系统;在面对承包商时,IT部门是一个标准的用户,必须尽最大可能保证用户需求正确及时实现。这两个角色本身是一对矛盾,企业的IT部门集这对矛盾于一身,为IT部门的决策和定位带来了巨大的挑战。IT部门的决策者必须将定位贯彻到部门的每一个员工,并要找到合理应对矛盾的指导方法。

对于“人”,关键是观念或者认识的问题,然后才是人的能力问题。在社会分工越来越专业化的情况下,笔者赞同软件外包方式。很多软件外包的企业都认为自己应该具备一定的或者较强的研发职能,但大多数都错误地认为找一帮编程高手就能建立起研发队伍。

笔者的观点是,对于软件外包的企业,研发的重点是业务模型开发、系统模型开发和持续优化三个阶段的工作,而不是源代码的开发,这里的核心问题是需求,我们必须确保需求的准确性、完整性、合理性和及时性。要完成这样的研发职能,对研发组织的要求是:较深的行业背景、对企业文化的高度理解和认同、专业的IT架构设计等知识,以及持续深入跟进一线的运作情况。这些知识,并不是外聘的编程高手或者业务专家所完全具备的,更重要的是企业自身必须有一套健全的内部培养机制,从基层开始发掘、培养出符合这些要求的复合型人才。

“方法”问题也很复杂,各行各业甚至是相同行业不同的企业都有不同的方法,关键是要适合企业自身的发展需求。

首先要弄清楚需求管理与流程管理的关系。流程当然由专门的流程管理部门负责制订、监督和优化。发现需求,并不是要求IT部门去主导流程管理工作,而是要求IT部门应该先于流程管理部门找到流程变化的趋势,有计划、有针对性的扩充系统功能和提升系统性能。扩充后的系统不是要把原有的功能砍掉,而是要包容原有的功能并能在一定程度上支持可预见的流程变化。因此,系统功能的每一次扩充,不仅仅是简单的功能堆叠,更重要的是开发出更强大的可配置特性,让系统能适应多种不同的管理需求。

要做到真正意义上的发现需求,将被动式的需求管理变为主动,要求需求管理员必须深入基层,掌握一线业务的运作情况,发现用户潜在的需求点。这些需求点分布很广泛,不仅仅局限于系统,在系统方面也不仅仅局限于系统的功能,还有性能、安全性,以及新技术、新的行业解决方案的引进等。

经验之谈:

在日常工作中,笔者采用了4步自我提问的方式去实践“发现需求”的理论,并将这个方式传授给员工:

1.(可以)怎样做?对于新员工,首先应该弄明白每一个与系统相关的事务是怎样完成的;或者老员工面对新的事务时,应该我们构思可以怎样去完成这个事务。

2.为什么这样做?当知道怎样做以后,我们还应该知其所以然,搞清楚为什么这样做。

3.这样做是否合理?鉴于企业的实际运作情况,很多事务涉及到多个不同的责任部门或人的权责关系,最终的执行流程是这些部门协商后的结果,极有可能存在某些不合理的地方。

4.有没有更好的方法?合理的并不一定是最优的,我们应该努力寻找出更好的解决方法。

在实际工作中,我们可以将以上所提的“需求”扩展到整个IT服务领域,即对公司IT服务功能所提出的需求,可以大大提高IT部门的服务水平。

注:本文曾发表于2005年的《计算机世界》华南市场版



查阅更多相关主题的帖子: 软件外包 需求管理 零售

评论

您还未登录,不能对文章发表评论!请先登录