系统目标是为了说明我们想开发一个怎样的系统,想利用这个系统做什么,达到怎样的目的。最简单的是,我们想打造一个运维平台,把我们在各个地区分布的运维服务团队,无论属于哪一个客户群的,无论是属于哪一种业务领域的,都统一纳入到一个相同的平台上。他们要基于相同的制度,基于相同的流程,基于相同的理念,用统一术语与方式去服务客户。我们的一个优势是规模与平台资源,但如果我们的人员与业务无法整合到一起,这种优势就不复存在,反而可能成为一个负面原因。因为你没有了大船的承载能力,也没有小船的灵活转身能力。运维服务业务有其特点,很难标准化,太容易受客户的影响而改变流程或制度。一旦你的团队分散、客户多,而且地理分散,光依靠发布ISO20000的体系文件,对人员做扎实的培训,就指望把大家的各种作业规范统一起来,不是说不可能,极难。运维服务数据极难分析与采集,一个显而易见的方式就是利用软件。我们在打造自已的平台时,概括来说,有这么几个方面要求:①设计要求:基于我们的运维服务业务特点,把我们的管理经验置入其中,同时纳入ISO20000的实施所得,就是我们的服务体系。还要参考REMEDY优缺点,这些是我们规划设计这系统的基础。②范围要求:我们这个平台要能管理所有的运维对象,同时要管理我们的运维资源。运维对象可以具体到具体每一个CI及其备件,运维资源具体到每一个人的工时利用。其它像服务目录与SLA等,都要纳入管理。③扩展要求:运维平台可以满足公司模式的发展需求,以及产品的发展,这里涉及具体的公司现状,就不多作说明了。④质量要求:在应用质量上我们要超过REMEDY,注意是应用质量,不是指功能,功能上我们无意与REMEDY去一争长短。我们有信心只要一年实施时间,就完全可以超过REMEDY在公司的应用质量。我们使用的是B/S系统架构,这是为了方便地理分散的员工使用,也是考虑到日后全国的用户可能会登录系统进行部份作业,比如参与调查,或者开放等。采用B/S的架构,负面的影响一是速度,二是界面表现力,但日后的升级维护比较方便,用户登录也很方便。是否成功,要等日后大规模应用时才能进一步验证。开发平台是.NET2005C#,hr采用ORACLE10G。另外我们在流程中做了一些邮件通知与短信通知的功能,其它技术方面,倒没有太多值得说明的地方,也可以说技术并没有太多的亮点。在系统流程控制方面,放弃了采用工作流引擎的想法,一是不希望增加项目复杂度,二是硬性的流程事实上不现实。因为在运维服务活动中,单据的流转方式很难硬性定义,加上一人担负多个角色,去配工作流没有太多意义;同时我们主要是自用,运转起来后,去调整流程的可能性较低,那样工作流引擎存在意义就很低了。所以我们在开发过程中,一旦有硬性的流程就写死在程序中,而单据的流转是由人确定的,可以不做限制进行单据的转派。不能指望软件去实现一切控制,有些控制点放在系统之外,往往会更好更省力。软件只是一个汽车,你想它跑得更快更好,需要有一条道路去配合在一起,这条路就是你的管理制度。许多寄望软件实现的控制点,一旦没有考虑清楚,最后会带来许多麻烦。所以要有先松后紧的策略,逐步增加控制,而且要以制度为先。事件管理与服务台管理是不同的概念,前者是一种流程,后者是一种职能,许多人没有搞清楚这两者的关系。事实上事件管理的许多操作是由服务台人员完成的,服务台本身并不存在流程,服务台管理本身也是一个独立的学问。这要根据每个组织的特点去考虑,在我们的情况中,有几名独立的热线人员作为服务窗口。对这些人员的话务管理是通过语音hr的,而这个语音系统与我们的ITSM系统是有接口的,真正的事件操作事实还是在事件管理中完成。这里特别提一下,在我们的ITSM系统中,事实上是没有一个服务台管理模块的,我相信许多人没有真正理解服务台的含义。把热线与服务台划等号是有问题的,尤其是IT服务领域,一旦你包含比较多的软件项目,服务台就一定会发生变异。如果你的服务台人员只是起到一个转电话与派单的作用,那事实是一个语音菜单的功能,这样的服务台设立意义不大。多数人以为服务台作用是单点受理以及快速响应,但这只是手段不是目的。服务台并不一定在物理上坐在一起,它可以是多种多样的,一定搞清楚服务台的目的是什么,它为什么而存在。IT服务不同于其它的行业,当用户打电话到携程与招商银行的的服务台时,跟打电话到一个IT服务商是不一样的。携程与招行的服务是“大众”与“标准”的,他们的服务台基本可以做到你电话过去就能响应,而IT服务商的服务台通常做不到,为什么?因为你的服务更具“纵深”,所以对你的服务台提出了更高的要求,你让几个完全听不懂用户问题与需求所在的热线非常快地接到用户电话有用吗?响应的定义是什么?如果仅仅是接听了用户的请求,而不做任何反应,这叫响应吗?我让一个电话录音机当热线,这算不算响应呢?如果你的热线是接转电话给工程师,经过热线转一下的意义何在?工程师仍然处于随时待命的状态,你的服务资源没有任何节省,而是在浪费,同时让用户重复问题,或者让热线转述问题,造成信息缺失。当你的服务台没有起到服务台的作用时,你会发现一个有意思的现象:用户会绕过你的服务台,直接打电话到工程师。不要说这是用户的问题,这是你的问题,你没有把一个正确的路径给用户,用户会按最有效率的路径来走的。IT服务业的服务台不同于传统行业,用传统行业呼叫中心的做法去设立IT服务业的服务台,一般是行不通的。尤其当你的业务领域复杂时,可能虚拟服务台是一个不错的选择,没有一定的硬性标准,要根据自已实际的业务需要来。一个真正好的服务台,可以节省你的服务资源,而且可以更快把客户请求结束掉。事件管理是创建、处理事件的模块,一个事件的生命周期全部会在此模块内。在设计时,需要考虑以下的信息:①事件的类型:事件管理在我们规划中,是一个非常重要的窗口模块。事件类型我们分为了有故障、请求、咨询、新需求、投诉,基本上面向客户的事务都会在此发起,这种类型也是为了日后的统计分析。②事件的分类:由于项目众多,考虑到横向统计的需要,我们要定义一个公用的事件分类,以便运维管理分析。我们分了硬件、软件、网络、hr、接口、业务这几个大类,日后可能会进一步细化分类,以便做更深入的分析,但这个难度很大,需要时间的积累。③事件的等级:最开始我们希望引入优先级,但发现这样定义非常困难,对指导工程师处理意义不大,还可能会误导信息,所以最后把事件硬切为5个等级。公司给出最粗的定义标准,然后由每个项目具体定义解释。这样每个工程师在作业时,就可以定义事件的等级。默认情况下,等级越高的事件,表示越严重,也表示要优先处理。虽然会相对粗放一些,但简单适用,而且我们的SLA是与此相关的。④事件的状态:事件状态是为了表达事件单当前的处理状况,我们分了创建、分派中、处理中、等待中、解决、关闭。这样可以形成看板与统计。⑤事件与CMDB的关联:CMDB的用处,在事件的应用就相当关键。事件发生时,要做一个关键动作,就是组件定位。需要搞清楚这个事件是发生在什么项目的什么地方,需要事件创建者做出定位;然后派单时,根据你的CI定位,带出相关的责任工程师,与事件与CI的关联,给你的运维分析带来丰富的信息。你CMDB所有的信息与事件的信息可以交叉统计分析,比如上面说的事件的分类有硬件,那我想知道桌面项目一年中,硬盘发生了多少故障?希捷品牌的硬盘发生了多少故障?客户对哪一款软件的咨询次数最多?这些信息依靠事件中的组件定位,可以轻而易举告诉你。⑥事件与其它流程的接口:事件与变更、问题、知识库是存在接口的,事件处理过程中可以直接发起变更申请,也可以发起问题申请与知识库申需要说明的是事件与变更的接口,我们的事件是否关闭没有硬性判断与之关联的变更是否终结,而是从事件单方面流出信息,并没有把变更的处理情况与事件单关联,让这个流程分线程去作业处理。主要是担心做得太死,可能导致事件单关闭受阻。⑦事件的时长与工作量:在任何一个事件的处理时,对于时间有二个概念,一是事件的时长,即一个事件的处理周期;一是事件花费的资源量,即工作量。时长是为了SLA的计算,后者是为了运维资源的分析。⑧统计分析:事件报表的统计分析非常丰富,可以从CMDB的角度出发,去统计每一个项目、每一个设备的事件情况;还可以从客户的角度出发,统计某个客户组织或某个客户的事件情况;还可以从运维组织的角度出发,统计我们的一个服务团队或一个服务人员的事件情况;可以从事件本身的信息出发,根据事件的类型、分类、等级、状态、去统计,还可以统计SLA方面的数据。问题管理处理逻辑其实是类似事件的,它的许多信息是继承事件,比如等级与类型等。在规划问题管理时,要想清楚问题的分类等级等信息跟事件是什么关系,问题管理的大概作业界面有哪一些,在系统流程上有哪几个步骤,如何留下问题的处理时长与工作量等等。还要想清楚问题与事件在程序处理上的区别,比如问题的创建后需要有一个审批的动作,问题不服从SLA,问题有知名错误的概念,这一部份的设计如果你的事件规划好后,问题管理是相对简单的,它的难不在于程序,而在于日后的应用。问题的统计报表,基本上与事件的纬度类似。