一、管理信息系统开发项目管理流程
管理信息系统的开发是一项涉及面广,技术难度大的综合性系统工程,需要投入大量的人力、财力、物力、时间等资源,对整个企业组织的改革与发展会产生很大的影响。只有对企业管理信息系统的整个开发过程按照系统的观点使用现代项目管理的科学理念和方法进行控制,才可能以较小的投入,取得较为理想的效果。
1、项目管理的概念
项目管理是指在一定资源如时间、资金、人力、设备、材料、能源、动力等约束条件下,为了高效率地实现项目的既定目标(即到项目竣工时计划达到的质量、投资、进度),按照项目的内在规律和程序,对项目的全过程进行有效的计划、组织、协调、领导和控制的系统管理活动。项目是具有明确目标的一次性任务,具有明显的生命周期,阶段性强。项目管理是面向所有工程项目的管理,是运用系统科学的原理对工程项目进行计划、组织与控制的系统管理方法。项目管理要解决的基本问题就是如何按所选择的研制方法,对开发项目进行有效的计划、组织、协调、领导、控制。
项目的管理是“一把手”工程,领导参与是关键。项目经理必须合理配置项目参加人员,制定项目建设的有关规范,及时产生详尽的报表,正确评价项目的进展情况。
近年来,世界各国都开始对信息系统的建设实施项目管理,不少软件开发商还提供了项目管理软件,如美国微软公司的Project2000、美国Primavera公司的ProjectPlannerP3和OS/23.0、我国北京梦龙公司的PERT3.0等。这些软件主要用于编排项目的进度计划,通过资源的分析和成本管理,合理配置资源使计划进度更为合理,同时按计划来安排工程进度,并对进度进行动态跟踪与控制等。
2、加强信息系统开发项目管理的重要意义
已经在国民经济诸多领域中成功运用的项目管理方法,也完全可以用于信息系统开发项目的管理。管理信息系统开发是一项长期的任务,必须根据企业组织的改革、发展的需要和可能,分成若干项目,分步进行开发。信息系统的“开发项目”包含信息系统分析、设计和实施的整个过程。它由项目负责人(项目经理)负责,利用可获得的资源为用户组织系统的建设。根据系统科学的观点,小项目可以构成一个大项目,一个大项目可以分解成若干个小项目。项目管理实质上是保证整个系统开发项目顺利、高效地完成的一种过程管理技术,贯穿于系统开发的整个生命周期。信息系统开发也是一项系统工程项目
如同其他工程项目一样,研制开发一个信息系统也需要在给定的时间内计划、协调和合理使用配置各种资源,对信息系统进行项目管理的重要性有以下四点:
(1)可以进行系统的思考,进行切合实际的全局性安排;
(2)可为项目人力资源的需求提供确切的依据;
(3)通过合理的计划安排对项目进行最优化控制;
(4)能够提供准确、一致、标准的文档数据。
3.管理信息系统开发项目管理的工作流程
管理信息系统开发项目管理的工作流程与信息系统开发过程的阶段划分有关。典型的管理信息系统开发过程的阶段划分如表l所示。管理信息系统开发的项目管理的工作流程如图1所示。
表1管理信息系统开发过程表
阶段主要活动
一、 系统规划
1、战略规划根据组织的目标与发展战略确定信息系统的发展战略
2、组织信息,需求分析对组织的信息需求进行总体分析,确定信息系统的总体结构方案,划分建设项目
3、资源分配对系统建设所需各类资源进行估计与安排
二、系统分析
1、系统初步调查,开发项目的可行性研究,现行系统的详细调查,新系统逻辑方案的提出统开发
2、系统设计系统总体结构设计,数据存储设计,输入、输出设计,处理过程设计,计算机与网络系统方案的选择
3、系统实施软件编程与软件包的购置,计算机与网络设备的安装与调试,系统测试,新旧系统的转换
三、系统运行与维护
系统运行的组织与管理,系统评价,系统的纠错性维护,适应性维护,完善性维护,预防性维护四、系统更新现行系统问题分析,新系统建设的启动
管理信息系统开发的项目管理阶段划分
管理信息系统开发的项目管理可分为两个阶段,即:立项与可行性论证阶段、项目实施管理阶段。
(1)立项与可行性研究
对于管理信息系统的项目开发前期,一般分为两步:第一步为初步可行性研究,即进行初步调查,提出项目建议书;第二步为可行性研究,即正式研究阶段。第一步的项目建议书被项目主管部门批准后,项目就被列入计划,也就是项目立项。接下来就可以开始正式的可行性研究,项目是否正式实施还有待可行性究报告是否被审查批准。对一些小项目,上述过程可以从简。
可行性研究是在项目开发前期对项目的一种考察和鉴定,对拟议中的项目进行全面的、综合的调查研究,其目的是要判断项目可行与否。信息系统技术可行性研究要从系统开发的计划出发,论述系统开发力量的可行性,同时论证系统方案中所采取的各种技术手段上是否可以实现。信息系统经济可行性研究主要是对项目进行经济评价,分析系统建设投资的可能性以及评价系统运行之后给组织带来的效益。信息系统营运可行性研究要给出的方案是否可以从人力、物力、组织工作等方面保证项目按计划完成实施,还要说明项目开发后在经济、技术和环境等方面能否保证系统正常运行。
(2)项目实施管理
信息系统的项目被批准实施之后,就应开始项目实施的管理工作。项目实施管理的目的是通过计划、检查、控制等一系列措施,使系统开发人员能够按项目的目标有计划地进行工作,以便成功地完成项目。项目组的人员组成应面向项目而不是按专业进行组织,一般由项目负责人领导,项目组内可按任务进行再分组。当大型的信息系统项目分为多个子项目进行开发时,需要有一个总的项目管理组负责对各个子项目的公共部分作出指导、协调和管理,各个子项目相应有各自的项目管理小组。项目实施管理的主要内容包括:开发管理、测试管理、运行管理和项目后评价管理。开发管理的主要内容有:制定文档;预计需要的资源;费用估算;安排工作任务和日程;定期做评审;质量保证管理;开发总结报告;处理意外情况等。测试管理的主要内容有:制定测试计划;测试分析并报告;编制用户手册。运行管理的主要内容有:人员的组织与管理;设备和资料管理;财政预算与支出管理;作业时间管理。项目后评价管理的主要内容有:技术水平与先进性评价;经济与社会效益分析;系统的内在质量评价;系统的推广使用价值评价;系统的不足之处与改进意见等。
图1管理信息系统开发项目管理的工作流程 项目实施管理贯穿于系统分析、系统设计、系统实施、系统维护和评价的整个系统开发过程。
项目管理的工作程序和组织界限是非常重要,有必要建立项目管理的总体框架,以引导人们成功的建设信息系统。步骤如下:
①问题分析。初始调查要由拥有经验的人员而不是新手去做,对项目应当认真研究和估价其变革的程度、项目的内涵和最终实现的成本。那些变革程度大、需要与用户人员紧密结合的项目,通常需要较高的管理经验。那些较小型的、涉及人员少、可由一个小组完成的项目,则管理就简单得多。
②选择正确的项目。在选择项目时,应注意首先开始的项目要限制规模,以保证成功率一般应在一年内能看到成果。大项目可以分成子项目,以表明完成的进度。
③选任项目负责人。项目负责人(项目经理或项目组长)负责项目日常事务,并且负责按给定的时间、成本和质量,去实现项目目标。其任务包括编制项目计划,建立和培训项目队伍,以及分配和协调项目任务。
④具体指明责任。用户负责人应主持决定整个项目中用户参与程度。项目负责人要直接向用户负责人汇报工作。
⑤建立项目计划和确定工作标准。在信息系统的项目管理过程中,涉及到多方面的因素,有时问题变得十分复杂,如果有一个周密具体的项目计划,就会消除风险。项目计划包括组织计划、工程计划、会议计划、环境设施计划、成本计划等内容。目前常用的计划方法有甘特图法、计划评审法(PERT)等。要确定工作标准,工作标准是对计划执行程度的度量,标准应简单明确、易于衡量、能够实现,并且带有强制性。
⑥限定任务,具体指明任务细节。在编制项目计划中,项目负责人必须决定要完成哪些任务,如何去完成,哪些资源能用,谁采完成和用多长时间完成。
二、企业信息系统开发项目管理的组织机构
要想保证信息系统开发工作的顺利启动,首先要建立项目的组织机构——项目组。项目组可以由负责项目管理和开发的不同方面的人员组成,项目组由项目组长或项目经理来领导。一般来说可以根据项目经费的多少和系统的大小来确定相应的项目组。项目组根据工作需要可设若干小组,小组的数目和每个小组的任务可以根据项目规模、复杂程度和周期长短来确定,可以设立的小组有:过程管理小组、项目支持小组、质量保证小组、系统工程小组、系统开发与测试小组、系统集成与测试小组等等。一个好的项目组不一定能保证项目的成功,但一个差的管理组将肯定会导致项目的失败。因此,在建立项目组时要充分利用项目组每个成员的特长,坚持将正确的开发方法贯穿始终。
1、项目经理(项目组长)
项目经理(项目组长)是整个项目的领导者,共任务是保证整个开发项目的顺利进行,负责协调开发人员之间、各级最终用户之间、开发人员和广大用户之间的关系。同时他拥有资金的支配权,可以把资金作为强有力的工具来进行项目管理,对项目经理的资金运用情况可采用定期向上级汇报等方法进行合理监督。
项目经理在实施项目领导工作时,要时刻注意所开发的系统是否符合最初制定的目标;在开发工作中是否运用了预先选择的正确的开发方法;哪些人适合于做哪些工作等。只有目的明确、技术手段适合、用人得当,才能保证系统开发的顺利进行。
对于小型项目,项目经理可以独立进行工作,直接管理各类开发技术人员,必要时可以求得外部机构的支持;对于中型项目,应划分出各个任务的界限,由不同的人去管理,项目经理通过这些人来实施各项管理工作;对于大型项目,应有专门的管理机构进行辅助管理,项目经理应能保证其思想的实施,并通过管理机构对开发技术人员的工作实施管理,同时注意对其产品的审核。
2.过程管理小组
过程管理小组的任务是负责整个项目的成本及进度控制、进行配置管理、安装调试、技术报告的出版、培训支持等项任务,这是一个综合性的机构,用以保证整个开发项目的顺利进行。
3、项目支持小组
项目支持小组的任务是保障后勤支持,它要及时提供系统开发所需要的设备、材料;负责进行项目开发的成本核算;负责合同管理、安全保证等,特别是对大型项目而言,由于其涉及的资金巨大、开发人员众多、材料消耗也多,尤其要进行科学的管理。
4.质量保证小组
质量保证小组的任务是及时发现影响系统开发质量的问题并给予解决。问题发现越早,对整个项目的影响越小,项目成功的把握就越大。
5.系统工程小组
由于信息系统开发是一项系统工程,因此可以按照工程的一般特性,用系统的观点制定出系统开发各个阶段的任务,这是系统工程小组的工作职责,即将整个开发过程按阶段划分出若干个任务,规定好每个任务的负责人、任务的目标、检验标准、完成任务的时间等。只有明确每一项任务的责、权、利,才能使得开发工作顺利进行。
6.开发与测试小组
开发与测试小组的任务是充分利用系统开发的一些关键技术、开发模型以及一些成熟的商品软件从事各子系统的开发与集成,并对各于系统进行测试。这是整个开发项目的关键,因此要组织好该小组的成员,并采用统一的方法和标准进行工作。
7.系统集成与安装调试小组
系统集成是对整个信息系统进行综合的过程,该小组成员在充分注意软件、硬件产品与所开发的信息系统之间的结合、注意最大限度地保证系统可靠性及发挥系统的最高效率的前提下完成信息系统的软件、硬件等各方面的集成,并做好整个系统的测试与安装调试工作。
三、管理信息系统开发项目管理的基本内容与步骤
在具体实施管理信息系统开发项目管理时,可按下面5个步骤来进行:
1.任务分解(WBS)
任务分解(WorkBreakdownStructure),又叫任务划分或工作分解结构,是把整个信息系统的开发工作定义为一组任务的集合,这组任务又可以进一步划分成若干个子任务,进而形成具有层次结构的任务群。使任务责任到人,落实到位,运行高效。任务划分是实现项目管理科学化的基础,虽然进行任务划分要花费一定的时间和精力,但是在整个系统开发过程中将会越来越显示出它的优越性。
任务划分包括的内容有:任务设置;资金划分;任务计划时间表;协同过程与保证完成任务的条件。
任务设置是在统一文档格式的基础上详细说明每项任务的内容、应该完成的文档资料、任务的检验标准等;资金划分是根据任务的大小、复杂程度,所需的硬件、软件、技术等多种因素确定完成这项任务所需的资金及分配情况;任务计划时间表是根据所设置的任务确定完成的时间;协同过程与保证完成任务的条件是指在任务划分时要考虑为了完成该项任务所需要的外部和内部条件,即哪些人需要协助、参与该项任务,保证任务按时完成的人员、设备、技术支持、后勤支持是什么等。在进行了任务划分之后,将这些任务落实到具体的人,并建立一张任务划分表,在这张表中标明任务编号、任务名称、完成任务的责任人,其中任务编号是按照任务的层次对任务进行编码,最高度的任务为1,2,3,……,对任务1的分解为1.1,1.2,1.3,……,对任务2的分解为2.1,2.2,2.3,……,以此类推。
任务分解的主要方法有以下三种:
①按系统开发项目的结构和功能进行划分。即可以将整个开发系统分为硬件系统、系统软件、应用软件系统。硬件系统可分为服务器、工作站、计算机网络环境等,考虑这些硬件的选型方案、购置计划、购置管理、检验标准、安装调试计划等内容,制定相应的任务;系统软件可划分为网络操作系统软件、后台数据库管理系统、前台开发平台等,考虑这些软件的选型、配件、购置、安装调试等内容并制定相应的任务;对于应用软件可将其划分为输入、显示、查询、打印、处理等功能,考虑对系统进行需求分析、总体设计、详细设计、编程、测试、检验标准、质量保证、审查等内容并制定相应的任务。
②按系统开发阶段进行划分。即按照系统开发中的系统分析、系统设计、系统实施及系统实施中的编程、系统测试、系统安装调试、系统试运行、系统运行等各个阶段划分出每个阶段应该完成的任务、技术要求、软硬件系统的支持、完成的标准、人员的组织及责任、质量保证、检验及审查等项内容,同时还可根据完成各阶段任务所需的步骤将这些任务进行更细一级的划分。
③将①②结合起来进行划分。采用这种方法主要是从实际应用考虑,兼顾两种方法的不同特点而进行。
在进行任务划分过程中应特别注意以下两点。
一是划分任务的数量不易过多,但也不能过少。过多会引起项目管理的复杂性与系统集成的难度;过少会对项目组成员,特别是任务负责人有较高的要求,而影响整个开发。因此应该注意任务划分的恰当性。
二是在任务划分后应该对任务负责人赋予一定的职权,明确责任人的任务、界限、对其他任务的依赖程度、确定约束机制和管理规则。
2.计划安排
依据任务划分即可制定出整个开发及项目管理计划,并产生任务时间计划表。开发计划可以划分为配置计划、应用软件开发计划、测试和评估计划、验收计划、质量保证计划、系统工程管理计划和项目管理计划等。
计算机硬件系统、系统软件配置计划包括:
(1)建立系统基准;
(2)配置、选型、购置、安装调试过程;
(3)在变化的情况下如何保持系统基准的稳定;
(4)最终产品的文档。
应用软件开发计划包括:
(1)将用户需求转化为相应的项目;
(2)软件开发过程;
(3)集成软件的过程;
(4)测试软件的过程。
测试和评估计划包括:
(1)整个系统的集成;
(2)整个系统的测试;
(3)给用户展示系统的工作情况;
(4)准备给用户使用系统。
验收计划包括:
(1)准备验收文档;
(2)如何将最终系统提供给用户。
质量保证计划包括:
(1)验证开发质量;
(2)确定外部产品质量。
系统工程管理计划包括:
(1)管理全部系统开发任务;
(2)跟踪用户对系统开发的需求。
项目管理计划包括:
(1)何时及如何完成任务;
(2)建立完成的策略和标准;
(3)各种计划的协调。
计划安排还包括培训计划、安装计划、安全性保证计划等。当这些计划制定出采后,可以画出任务时间计划表,表明任务的开始时间、结束时间,表明任务之间的相互依赖程度。这个任务时间计划表可以按照任务的层次形成多张表,系统开发的主任务可以形成一张表,它是所有子任务时间计划表建立的基础。这些表是所有报告的基础,同时还可以帮助对整个计划实施监控。任务时间计划表的建立可以有多种方法,它可以采用表格形式,也可以使用图形来表达,也可以使用软件工具,其表达方式取决于实际的应用需求。
3.项目经费管理
项目经费管理是信息系统开发项目管理的关键因素,项目经理可以运用经济杠杆来有效控制整个开发工作,达到事半功倍的效果。在项目管理中,赋予任务负责人一定职责的同时,还要赋予其相应的支配权,也要对其进行适当的控制。
在经费管理中要制订两个重要的计划,即经费开支计划和预测计划。
经费开支计划包括:
(1)完成任务所需的资金分配;
(2)确认任务的责权和考虑可能的超支情况;
(3)系统开发时间表及相应的经费开支;
(4)如果需要变动,及早通知项目经理。
预测开支计划包括:
(1)估计在不同的时间所需的经费情况;
(2)了解项目完成的百分比;
(3)与经费开支计划相比较;
(4)允许项目经理做有计划的经费调整。
4.项目审计与控制
项目审计与控制是整个项目管理的重要部分,它对于整个系统开发能否在预算的范围内按照任务时间表来完成相应的任务起着关键的作用。相应的管理内容和步骤如下:
(1)制定系统开发的工作制度。按照所采用的开发方法,针对每一类开发人员制定出其工作过程中的责任、义务、完成任务的质量标准等。
(2)制定审计计划。按照总体目标和工作标准制定出进行审计的计划。
(3)分析审计结果。按计划对每项任务进行审计,分析执行任务计划表和经费的变化情况,确定需要调整、变化的部分。
(4)控制。即根据任务时间计划表和审计结果,掌握项目进展情况,及时处理开发过程中出现的问题,及时修正开发工作中出现的偏差,保证系统开发工作的顺利进行。
对于系统开发中出现的变化情况,项目经理要及时与用户和主管部门联系,取得他们的理解和支持,及时针对变化情况采取相应的对策。
5.项目风险管理
信息系统开发项目实施过程中,尽管经过前期的可行性研究以及一系列管理措施的控制,但其效果一般来说还不能过旱地确定,它与风险联系着,可能达不到预期的效果,费用可能比计划的高,实现时间可能比预期的长,而且,硬件和软件的性能可能比预期的低,等等。因此,任何一个系统开发项目都应具有风险管理,这样才能充分体现出成本分析的优点,在风险管理中应注意的是:
(1)技术方面必须满足需求,应尽量采用商品化技术,这样可以降低系统开发的风险。
(2)开销应尽量控制在预算范围之内。
(3)开发进度应尽量控制在计划之内。
(4)应尽量与用户沟通,不要做用户不知道的事情。
(5)充分估计到可能出现的风险,注意倾听其他开发人员的意见。
(6)及时采纳减少风险的建议。
总之,风险管理也是项目管理的重要内容,是项目经理的特别职责。
风险管理过程可以划分为以下几个步骤:
第一步,风险辨识。首先列出一个潜在问题表,然后再考虑其中有哪些问题会出现风险。风险的确定应听取技术专家和广大用户的意见。潜在的风险源包括:
(1)在总体规划和系统分析阶段所进行的需求分析不完全、不清楚、不稳定、不可行,最终影响软件集成和系统集成。设计结果的可用性、可实施性、可测试性较差,影响系统的后续开发工作。
(3)在程序设计过程中,可能出现的非一致性或系统的支持较差。
(4)在整个开发过程中,遇到困难和问题时,开发人员可能出现的矛盾和不协调性将影响系统开发的质量和开发进度。
(5)在实施项目管理过程中,计划的准确性、可监控性、经费运用及分配情况等都将对整个开发工作产生影响。
第二步,风险分析。对辨识出的风险进行进一步的确认后分析风险概况,即假设某一风险出现后,分析是否会有其他风险出现,或是假设这一风险不出现,分析它将会产生什么情况,然后确定主要风险出现最坏情况后,如何将此风险的影响降低到最小,同时确定主要风险出现的个数及时间。
第三步,风险缓和。通过对风险的分析确定出风险的等级,对高级的风险要制定出相应的对策,采取特殊的措施予以处理,并指定专人负责重要风险项目的实施,同时在风险管理计划中进行专门的说明。
第四步,风险跟踪。对辨识后的风险在系统设计开发过程中进行跟踪管理,确定还会有哪些变化,以便及时修正计划。具体内容包括:
(1)实施对重要风险的跟踪;
(2)每月对风险进行一次跟踪;
(3)风险跟踪应与项目管理中的整体跟踪管理相一致;
(4)风险的内容和对项目开发的影响应随着时间的不同而相应地变化。
因此,在项目实施管理过程中,随时研究项目的风险并作出相应的对策是管理工作不可映少的。通常影响项目内在风险的因素有三个:项目的规模、业务的结构化程度以及项目的技术难度。把这三种因素的高低(或大小)组合起来,所可能产生的8种项目风险估计见表2。
项目管理中风险管理方法,是根据项目风险水平进行组织和管理。为了搞好项目,管理,可采用四种措施和技术:
(1)项目组与用户结合的外部结合措施和技术。如,用户项目管理组织、用户参加的项目小组和用户指导委员会。
(2)项目组协调工作的内部结合措施和技术。如,项目评审会、备忘录和项目组参与决策。
(3)任务结构化、条理化的规范的计划措施和技术。如,关键路线图、抓重大事件以及项目审批程序等。
(4)估计项目进程的规范化控制措施和技术。如,具有差异分析的一系列正式的状态报告。
通常,任务的结构化程度越低,越需要外部与用户的高度结合。采用难度大的高技术项目通常借助于高度的内部项目结合和规范化很低的计划和控制。规范化高的计划和控制对技术难度低而规模大的项目最为有用。项目风险的管理对策见表3。
显见,如果一个风险高的项目获得成功,将能得到最大的期望效益。当冒着某种风险去实现规模大、非结构化的高技术项目时,把具有不同风险和不同项目组织管理的一些项目结合起采,可以使企业获得令人满意的结果。
对信息系统的建设来说,项目管理中风险管理十分重要,因其涉及到方方面面的开发人员和广大的最终用户。为了保证系统开发的顺利进行,除了要建立一整套的管理职责和规范,坚持将一种正确的开发方法贯穿始终外,还要做好各类人员的思想沟通,“使开发项目组的全体人员自始至终都能保持一个声音说话”。
CIO之家 www.ciozj.com 公众号:imciow