第11章信息系统管理 本章导读 信息系统开发是一项大型的系统工程,需要进行有效地管理。管理在一定程度上决 定着信息系统开发的成败。本章从信息系统项目管理、文裆管理及信息系统的运行和维 护管理等方面介绍了信息系统开发和维护中的管理工作。 主要知识点 信息系统项目管理 文档管理 运行与维护管理
11.1信息系统项目管理 1.1.1概述 1.什么是项目管理 英国建造学会《项目管理实施规则》将项目管理定义为“为一个建设项目进行从概 念到完成的全方位的计划、控制与协调,以满足委托人的要求,使项目得以在所要求的 质量标准的基础上,在规定的时间内,在批准的费用预算内完成。”简言之,项目管理就 是追求投入产出比最大化 2项目管理的过程目标 项目管理将抽象的需求规格进行归纳、裁减以及整理成一个可实施的、可验证的、 可度量的过程,并通过一系列的活动实现预定的结果。基本目标有三个主要的方面:专 业目标(功能、质量、生产能力等),工期(时间)目标和费用(成本、投资)目标,他 们共同构成项目管理的目标体系。一般来说,目标、成本、进度三者是互相制约的。当 进度要求不变时,质量要求越高或任务要求越多,则成本越高;当不考虑成本时,质量 要求越高或任务要求越多,一般进度越慢:当质量和任务的要求都不变时,进度过快或 过慢都会导致成本的增加。项目管理的目的是谋求(任务)多、(进度)快、(质量)好、 (成本)省的有机统一。 3信息系统项目管理的特点 信息系统项目管理具有以下特点: ①信息系统项目的目标是不精确的,任务的边界是模糊的,质量要求更多是项目 团队来定义的; ②信息系统项目进行过程中,客户的需求会不断被激发,被不断地进一步明确, 导致项目的进度、费用等计划不断地被更改 ③信息系统项目是智力密集、劳动密集型的项目,受人力资源影响最大,项目成 员的结构、责任心、能力和稳定性对信息系统项目的质量以及是否成功起决定性作用。 鉴于信息系统项目的上述3个特点,以下重点从信息系统的计划、进度、成本、人员、 文档、质量监测、对外关系等角度来具体论述信息系统的项目管理。 11.1.2计划、进度、成本管理 1.信息系统计划 (1)战略规划和总体规划 信息系统的战略规划和总体规划需要解决以下3方面的内容:①信息系统的总目标
和发展战略,总目标规定信息系统的发展方向,发展战略则提出具体的步骤和每步应达 到的子目标,同时还应给出衡量具体工作完成的标准。②了解用户单位当前信息系统及 其管理状况,包括软件、硬件设备、人员、各项费用、开发项目的进展以及应用系统的 情况,同时,对用户单位当前的组织结构、业务流程、管理制度等进行分析。③对相关 信息技术发展进行预测,提高技术选型和产品选型的正确性 (2)子系统界定和分解 可以将整个系统划分为多个子系统进行独立开发再最终集成,这样可以降低系统的 复杂性并使程序结构清晰。在系统划分前,需要按系统构成对系统分解,分析各子系统 之间的依赖关系和相互需要进行的数据传递。 (3)确定各子系统开发顺序,对信息系统生命周期的各阶段费用、人力、进度进行估 算和安排(具体内容和方法参见本节随后篇幅所述)。 2.信息系统成本管理 信息系统项目的成本随着系统的类型、范围及功能要求的不同而不同,可以从信息系 统生命周期的各阶段划分为开发成本与运行维护成本两大类,在各类中又可根据项目的 目的进行逐级细分,见图11 信息系统项目的成本测算,航是根据待开发的信息系统的成本特征以及当前能够获 得的有关数据和情况,运用定量和定性分析方法对信息系统生命周期各阶段的成本水平 和变动趋势做出尽可能科学的估计。图11.1中,最难确定的是开发成本中的软件开发成 本,而硬件成本和其他成本相对容易估算岀来。至于运行维护成本,则可根据开发成本 与运行维护成本比值的经验数据和测算出来的开发成本一起计算。所以信息系统项目成 本测算的重点是软件开发成本。然而,由于软件是逻辑产品,成本估算涉及人、技术、 环境、政策等多种因素。因此在项目完成前,很难精确地估算岀待开发项目的开销
图111信息系统项日成本构成 常用的信息系统成本估算方法有4种 ①参照已经完成的类似项目,估算待开发项目的软件开发成本和工作量 ②将大的项目分解成若干小的子系统,在估算出每个子系统软件开发成本和工作 量之后,再估算整个项目的软件开发成本。 ③将软件按信息系统的生命周期分解,分别估算岀软件开发在各个阶段的工作量 和成本,然后汇总,估算出整个软件开发的工作量和成本。 ④根据实验或历史数据给岀软件开发工作量或成本的经验估算公式。 3信息系统进度控制 对信息系统进度进行控制有两个普遍使用的工具:即程序评估和检查技术(PERT) 网和甘特图。PERT网将任务以精心计划的、关键路径网络的图形化形式表示出来。甘 特图以条形图的方式来表示项目任务及其持续的时间。在项目开始之初,这两个图都可 以对项目进行规划和估计。一旦项目开始,实际的结果可能代替估计(PERT)网或同时 与估计结合起来(甘特图),以便能反映项目进展中出现的实际情况并对项目计划进行必 要的调整 (1)PERT网 PERT网是项目任务的可视化计划图。每个项目决定自己的任务、相关的时间以及 依赖关系。通常,任务总是从系统开发组织建立的可能任务的标准列表中选择出来。PERT 网使用的符号见图12。图中圆圈代表一个任务的起始节点或终止节点。对于一个PERT
网,只能有一个起始节点和一个终止节点,网络中的其他节点将最少有一个任务起始于 该节点,并且最少有一个任务终止于该节点。每个节点包含有3个数。左边的数字(即 图中的n1)是节点的标识号。右上方数字(图中的n2)是节点的最早完成时间。右下方 的数字(即图中的n3)是节点的最晩完成时间。关键路径指从项目的开始节点到项目的 结束节点的最长时间路径,也即项目的开发周期。细线箭头代表不在网络关键路径上的 个任务,粗线箭头代表所有处于网络关键路径上的任务。每个任务箭头左边或上边的 字母(即图中的字母A)是任务标识符。每个任务有一个唯一的字母标识符,可以使用 任务标识符在任务列表报告中查找实际的任务名。使用任务标识符的目的是为了避免将 图与实际的任务名混在一起。每个任务箭头的下方或右边的数(即图中的n4)是完成这 个任务的期望时间段,所有的时间段必须使用相同的单位来表示。 节点:任务的开始或终止 n1=节点标识号 n2=该节点最早完成时间 3=该节点最晚完成时间 =有时间限制的任务(持续时间) =关键路径上的任务 没有时间要求的任务 A 标识符 (适用所有节点:有进入或离开 4=任务期限 所有节点的任务也要强迫次序化) 图11.2PERT图符号标记法 建立PERT网的步骤如下 ①建立项目任务的列表:②对每个任务分配一个项目标识符;③决定每个任务的 大致时间段;④决定任务之间的相互依赖性,如B和C必须在A完成后才能开始进行 ⑤画出PERT网络,将每个任务用它的任务标识字母标记,每个任务从头至尾连接每个 节点,并将每个任务的时间段放在网络上;⑥确定每个任务节点的最早完成时间;⑦确 定每个任务节点的最迟完成时间;⑧验证PERT网络的正确性。图11.3为某项目PERT 网的一个实例,由图10.4可以看出,该项目的总周期为19周,项目的关键路径是A >B—→>D→>G,A、B、D、G项目的延误和提前将直接影响到整个项目的执行周期,所 以对整个项目的周期控制重点在于A、B、D、G子项目周期的控制
图113某项日PERT网实例 利用PERT网进行进度管理的缺点是:只有在对子任务的执行周期估计相对准确的 情况下才是有意义的,并且基于PERT网的进度管理必须清楚地定义项目任务之间的关 系,假定前序任务结束后开始后续任务,不能很好地处理任务重叠的情况。 (2)甘特图 甘特图是基于二维坐标的项目进度图示表示法,例如图114所示的某项目计划的简 略甘特图,纵坐标表示组成项目的具体仼务,如仼务A、B、C等;横坐标表示完成整 个项目的估计的时间,时间单位可以是天、周或月。图中用长方型的进度条来表示某 个具体任务。 从图11.4可以清晰看出每个任务的开始和结束时间,项目任务之间开始或结束的时 间顺序关系,每个进度条的阴影表示目前某任务项的进展状况,在重要的日期时间上, 甘特图简单地在图上自顶至底画竖条,即可观察该时间项目的进展情况,并且可以看到 重复或并行的任务。如在图示虚线时间,正在进行的任务项有A、C、E;已经结束的任 务项有B;待执行的任务项有D和F。 利用甘特图进行进度管理的缺点是:不能确定地看出整个项目是否按时、延迟或提 前,无法表达子任务之间的依赖关系。 任务A B C E 6
0123456789101112 周数 当天 图114简单的甘特图 11.1.3人员管理 软件生产是一种智能密集型生产活动,与开发人员的关系十分密切。因此,与其他 行业相比,人员能力在软件过程中显得尤为重要。人员能力包括三个层面:个体层面, 即个人的软件行为遵循何种要点才能规范高效;群组层面,即开发小组怎样分配角色沟 通交流才能规范高效;组织层面,即软件企业应如何进行团队与文化建设、激励与管理 业绩、形成劳动力。 1.项目开发中的人力资源分配 信息系统项目的建设时间主要决定于应用软件的开发时间,信息系统项目中表现出 人员与进度的非线性替代关系,即当开发人员以算术级数增长时,人员之间的通讯将以 几何级数增长,从而可能导致“得不偿失”的结果。经验表明,信息系统项目的人力分 配呈现出前后用人少、中间用人多的不稳定人员需求情况。但是,信息系统开发人员作 为技术工种,不是一旦需要马上就能找到的,人力资源计划平衡是制定使人力资源需求 波动最小化的进度计划的一种方法。这种方法是为尽可能均衡地利用人力资源并满足项 目要求完成的进度。下面举例说明人力资源计划平衡的使用方法。图11.5为某书店信息 系统人力资源需求的网络图。 图115某书店图书信总管理系统人力资源需求的內络图 为了讨论方便,假设参加该项目的所有成员都可以胜任彼此工作,相互替代。一般 的,人们都希望各项活动尽可能早开始,早结束。现在假设网络图中每一项活动在其最 早时间执行,可以绘制相应的人力资源分配图,见图11.6
(b) 图117基于资源平衡的人力资源计划图 从图1.6(a)中可以看出,书店信息系统项目共需32周的时间,总工作量为91人周; 从116(b)中可以看出,前3周需要5个开发人员,第4、5周需要4个开发人员,第6 至20周只需要3个开发人员,第21周到31周需要2个开发人员,第32周需要1个开 发人员。显然,该项目的人力资源波动教大。为使人力资源尽可能地平衡,现考察该项 目的网络图。从图11.6中可以看出,该项目的关键路径是系统分析设计与实现、系统测 试与集成、文档写作3个活动。而其他3个活动处于非关键路径上,这样就可以把设备 釆购活动推迟到第6周开始。调整后的人力资源分配图见11.7。 从图117可以看出,书店信息系统项目总工期不变,前8周需要4个开发人员,9-20 需要3个开发人员,第32周需要1个开发人员,人力需求波动减小,项目组相比图11.7 方案可以节省1个信息开发人员的劳动力 2个人软件过程PSP PSP( Personal Software process是美国卡纳基梅隆大学软件工程研究所开发的一套旨 在提高软件人员业务水平的训练教程,它是软件工程由定性走向定量的一个重要标志 PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制定计 划、如何控制质量、如何与其他人相互协作等。在软件设计阶段,PSP的着眼点在于软 件缺陷的预防,其具体办法是强化设计结构准则,而不是设计方法的选择。PSP为提高 软件工程师的技术水平制定了具体的训练方法,PSP训练分为四个阶段,如图1.8所示
图18PSP过程进化示意 由图1.8可见,PSP进化框架分为以下四级:(1)个体度量过程PSPO,目的是建立 个体过程基线,通过这一步,学会使用PSP的各种表格采集过程的有关数据,作为测量 在PSP的过程中进步的基准。PSPO.I增加了编码标准、程序规模度量和过程改善建议等 三个关键过程域,以提高软件开发人员的质量意识和过程意识;(2)个体规划过程PSPI, 重点是个体计划,引入了基于估计的计划方法,用自己的历史数据来预测新程序的大小 和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可 信程度。PSP1.1增加了对任务和进度的规划;(3)个体质量管理过程PSP2,重点是个体 质量管理,根据程序的缺陷建立检测表,按照检测表进行设计复査和代码复査,以便及 早发现缺陷,使修复缺陷的代价最小:(4)个体循环过程PSP3,目标是把个伓开发小程 序所能达到的生产效率和生产质量,通过迭代增量式开发方法延伸到大型程序。即先把 大型程序分解成小的模块,再对每个模块按照PSP2.1所描述的过程进行开发,最后把这 些模块逐步集成为完整的软件产品。 统计数据表明,经过PSP训练的软件工程师在以下几方面有极大的提高:(1)对程序 大小和所需时间估算的准确性:(2)软件质量和开发过程中避免引入的缺陷的控制;(3) 生产效率。 10
3.群组软件过程TSP TSP( Team Software Process)是在PSP的基础上提出的软件开发群组管理模型,其目 标是创建具有自我管理能力的小组,实施集体管理与自我管理相结合,最终指导开发人 员在最短时间内以预定的费用生产出高质量的软件产品。TSP所采用的方法是对小组开 发过程的定义、度量和改进。在实施TSP的过程中,应该自始至终贯彻集体管理与自我 管理相结合的原则。首先要有明确的目标,开发人员要努力完成已经接受的委托任务 在每一阶段的开始,要做好工作计划。开发小组一方面应随时追踪项目进展状态并进行 定期汇报,另一方面应经常评审自己是否按PSP的原理工作。小组成员应按自我管理的 原则管理软件过程,如发现过程不合适,应及时改进,以保证用高质量的过程来产生高 质量的软件。项目开发小组则按集体管理的原则进行管理,全体成员都要参加和关心小 组的规划、进展的追踪和决策的制定等项工作 按TSP进行生产、维护软件或提供服务,其质量可用两组元素来表达,一组元素用 以度量开发小组的素质,称之为开发小组素质度量元,另一组用以度量软件过程的质量, 称之为软件过程质量度量元。通过对必要数据的收集,项目组在进入集成和系统测试之 前能够初步确定模块的质量。如果发现某些模块的质量较差,就应对该模块进行精心地 复测,甚至对质量特别差的模块重新进行开发,以保证生产岀高质量的产品,且能节省 大量的测试和维护时间。按TSP原理,可以在一个软件开发小组内把管理的角色分成客 户界面、设计方案、实现技术、工作规划、软件过程、产品质量、工程支持以及产品测 试等八类。如果小组成员的数目较少,可将其中的某些角色合并,反之,则将其中的某 些角色拆分。总之,每个成员都要独立担当一个角色,独立负责。这将提高企业职责划 分的层次性,形成分工协作的组织环境 4.项目团队的管理与激励 主要包括三个方面:团队建设、时间管理和对员工进行不断地激励 (1)团队建设:将项日目标确立为团队的共同目标,按照项目任务的分解将团队分为 若干程序员小组,形成有效的组织结构,明确角色的任务分配。有效的团队应该具备良 好的内外沟通关系,大家相互支持,日常可以通过组织集体活动提高团队的凝聚力 (2)有效的时间管理。这里指进度管理的微观方面,即将进度管理贯彻到日常工作中 把任务安排给适当的人、并要求在给定的时间内完成,安排的任务要及时检查并给出评 价,组员的任务通过任务书的形式下达,任务书控制流程包括:任务下达人、要求完成 的时间;任务接收人认可、实际完成的时间;任务检查人的结论等。任务完成情况与奖 金的分配挂钩 (3)有效地运用激励机制。除了开发中心制度所规定的激励机制外,项目经理还应把 溦励理论应用于日常管理的实践过程中,帮助员工发挥潜能,把项目做好,并激发下 阶段的工作热情。 11.1.4质量管理