二、企业信息系统开发项目管理的组织机构
要想保证信息系统开发工作的顺利启动,首先要建立项目的组织机构——项目组。项目组可以由负责项目管理和开发的不同方面的人员组成,项目组由项目组长或项目经理来领导。一般来说可以根据项目经费的多少和系统的大小来确定相应的项目组。项目组根据工作需要可设若干小组,小组的数目和每个小组的任务可以根据项目规模、复杂程度和周期长短来确定,可以设立的小组有:过程管理小组、项目支持小组、质量保证小组、系统工程小组、系统开发与测试小组、系统集成与测试小组等等。一个好的项目组不一定能保证项目的成功,但一个差的管理组将肯定会导致项目的失败。因此,在建立项目组时要充分利用项目组每个成员的特长,坚持将正确的开发方法贯穿始终。
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,……,以此类推。
任务分解的主要方法有以下三种:
①按系统开发项目的结构和功能进行划分。即可以将整个开发系统分为硬件系统、系统软件、应用软件系统。硬件系统可分为服务器、工作站、计算机网络环境等,考虑这些硬件的选型方案、购置计划、购置管理、检验标准、安装调试计划等内容,制定相应的任务;系统软件可划分为网络操作系统软件、后台数据库管理系统、前台开发平台等,考虑这些软件的选型、配件、购置、安装调试等内容并制定相应的任务;对于应用软件可将其划分为输入、显示、查询、打印、处理等功能,考虑对系统进行需求分析、总体设计、详细设计、编程、测试、检验标准、质量保证、审查等内容并制定相应的任务。
②按系统开发阶段进行划分。即按照系统开发中的系统分析、系统设计、系统实施及系统实施中的编程、系统测试、系统安装调试、系统试运行、系统运行等各个阶段划分出每个阶段应该完成的任务、技术要求、软硬件系统的支持、完成的标准、人员的组织及责任、质量保证、检验及审查等项内容,同时还可根据完成各阶段任务所需的步骤将这些任务进行更细一级的划分。
③将①②结合起来进行划分。采用这种方法主要是从实际应用考虑,兼顾两种方法的不同特点而进行。
在进行任务划分过程中应特别注意以下两点。
一是划分任务的数量不易过多,但也不能过少。过多会引起项目管理的复杂性与系统集成的难度;过少会对项目组成员,特别是任务负责人有较高的要求,而影响整个开发。因此应该注意任务划分的恰当性。
二是在任务划分后应该对任务负责人赋予一定的职权,明确责任人的任务、界限、对其他任务的依赖程度、确定约束机制和管理规则。