1、第第7 7章章 软件项目资源管理软件项目资源管理 讲授内容 7.1 人力资源管理 7.2 软件资源管理 7.4 硬件资源管理 小结7.1 人力资源管理 软件企业与传统工业企业不同,与现代企业的其他行业与传统工业企业不同,与现代企业的其他行业也不同。其最主要特征就是,也不同。其最主要特征就是,企业最主要的“资产”是一批掌握技术、熟悉业务、懂得管理的“人”。有句名言;有句名言;“人分四类人分四类人物,人才、人手,人渣。人物,人才、人手,人渣。”如果一个机构里上述四类人齐全了,那么最好是让:如果一个机构里上述四类人齐全了,那么最好是让:l “人物人物”当领导当领导l “人才人才”干重要的话干重要的话
2、l“人手人手”干次要的话干次要的话l“人渣人渣”去骚扰竞争对手去骚扰竞争对手 -林锐软件工程与项目管理解析7.1 人力资源管理 软件企业主要的成本是软件企业主要的成本是人的成本, 软件企业主要的财富积累是软件企业主要的财富积累是知识和经验的积累。 因此,软件企业的人力资源管理,是企业最主要因此,软件企业的人力资源管理,是企业最主要的管理内容。的管理内容。7.1 人力资源管理 一个普遍的观点:“在IT行业,很难在合适的时间找到合适的人才,很难合理地组织人才和留住人才,很难恰当地使用人才和培养人才” 如何有效管理人力资源是最大的挑战。 人力资源管理是软件项目至关重要的组成部分。人件 “人件”一词,
3、是指与计算机互动的人的条件。在管理学界,该书已是关于“人件”理论的经典之作,它专门讨论了软件开发和维护的团队管理问题。 作者:迪马可和李斯特人件探讨了软件项目管理者在对待被管理者方面容易犯的错误和工作环境方面存在的问题。 探讨了管理者应当如何对待知识工人的问题。“我们工作的主要问题,与其说是技术性的,不如说更多的是社会性的”,这是贯穿全书的主题。在“工作环境”方面,作者批判了“廉价、开放式空间”理论和“工作场所是可以节省金钱的地方”的错误观念;雇佣最恰当的人对项目的成功至关重要,因为管理者不可能塑造一个知识工人;在培育团队方面,作者集中讨论了“胶冻团队”(jelled teams)概念。在这样
4、的团队中,成员高度集中于既定目标,要比由个体成员集合在一起具有大得多的生产力;高额薪酬不再是保持一个团队的凝聚力,留住人才的唯一手段。员工的跳槽的诸多原因中,工作不顺心、能力得不到自由发挥,等等,已成为主要的原因之一。 7人件一些观点 本质上,我们工作中的主要问题,与其说是技术问题,不如说是社会学(sociology)问题。 能够帮助一个项目凝聚起来的人比得上两个只做工作的人。 培养一种不允许出错的气氛只会让人们产生防备心理, 对于领薪水的员工而言,加班是天真的经理想象出来的虚构之物。人事管理与人力资源管理的区别 第二次世界大战之后,管理理论的发展进入现代管理理论阶段。对人的管理也由人事管理发
5、展成为人力资源管理。 人事管理与人力资源管理,主要体现在以下四个方面:管理的重点管理的活动管理的内容管理的方式人事管理与人力资源管理的区别(1)管理的重点方面: 人事管理是以事为核心。人事管理是管人和与人事管理是以事为核心。人事管理是管人和与人有关的事,而且,人有关的事,而且,以管事为核心,偏重于比,偏重于比较具体的有关人员的录用、调配、提职、退休较具体的有关人员的录用、调配、提职、退休等工作。等工作。人力资源管理是人力资源管理是以人为核心,研究人的心理、,研究人的心理、需求,激励和开发人的潜能,保障人的合法权需求,激励和开发人的潜能,保障人的合法权益。益。人事管理与人力资源管理的区别(2)管
6、理活动方面: 人事管理是被动反应型。人事工作只管人员录用、调配、人事任免,像管理机器一样管理人事工作只管人员录用、调配、人事任免,像管理机器一样管理人。人。 人力资源管理是主动开发型。首先根据组织目标做出人力资源规划,首先根据组织目标做出人力资源规划,根据需要预先做出计划安排,根据需要预先做出计划安排,并主动了解人员的需求,并尽力满足员工的不同需求,并主动了解人员的需求,并尽力满足员工的不同需求,为员工设计生涯发展,充分挖掘和发挥其潜力。为员工设计生涯发展,充分挖掘和发挥其潜力。人事管理与人力资源管理的区别(3)管理内容方面: 人事管理的内容比较窄新人的录用新人的录用在职人员的管理在职人员的管
7、理老职工的退休老职工的退休 人力资源管理的内容比较宽人事管理的内容,人事管理的内容,制定人力资源发展规划制定人力资源发展规划工作分析工作分析员工生涯设计员工生涯设计协调工作关系协调工作关系 人事管理与人力资源管理的区别(4)管理方式方面: 人事管理是孤立的、静止的,人事管理的各项工作之间是分离的,与组织目标、其他部门目标、个人目标之间是脱节的。 人力资源管理是整体的、动态的,它将组织目标、各部门目标以及各人目标有机结合起来,将选聘、考核、培训、激励等工作有机结合起来,形成一个系统。 7.1.1 人力资源管理概念 一般来说,人力资源管理是一项复杂的工作,其具体的内容是由下列若干相互联系的任务所组
8、成。(1)分析人力资源需求、规划人力资源配备状况。(2)贯获取人力资源信息、招聘员工、确定劳资关系。(3)培训员工、任用员工。(4)评估员工业绩,倣据人力资源评价体奖惩员工。 7.1.1人力资源管理概念 软件项目中的人力资源包括所有的项目干系人:资助者客户项目组成员支持人员供应商 7.1.1人力资源管理概念 对软件项目而言,项目的主要领导,需要更多关注与软件项目直接相关的人力资源管理。图7.1 人力资源管理工作的主要内容图7.2 人力资源规划的过程7.1.2 人力资源分析与策划 软件开发过程中,人员的选择、分配和组织是涉及软件开发效率、软件开发进度、软件开发过程管理和软件产品质量的重大问题,必
9、须引起项目负责人的高度重视。 软件项目的软件项目的计划与分析阶段计划与分析阶段;此时只需要少数人,主要是;此时只需要少数人,主要是系统分析员、从事软件系统论证和概要设计的软件高级工系统分析员、从事软件系统论证和概要设计的软件高级工程师和项目高级管理人员;程师和项目高级管理人员; 项目项目概要设计概要设计:此时要增加一部分高级程序员;:此时要增加一部分高级程序员; 详细设计详细设计:此时要增加软件工程师和程序员;:此时要增加软件工程师和程序员; 编码和测试阶段编码和测试阶段:此时还要增加程序员、软件测试员。:此时还要增加程序员、软件测试员。7.1.2 人力资源分析与策划 在项目启动时,就要做好人
10、力资源的分析和规划,制定项目整个过程的人力资源需求表。7.1.2 人力资源分析与策划制定软件项目的人力计划,主要基于工作量和进度预估。一般来讲,工作量与项目总时间的比值就是理论上所需要的人力数,但选取和分配人力有许多值得研究的问题。 人员进度权衡定律 Brooks定律 Norden-Rayleigh曲线人员进度权衡定律433/tCSEPutnam估算软件开发工作量时得出的公式:l其中,E是以人年为单位的工作量,S是以LOC为单位的源代码行数,C是技术因子,t是以年为单位的耗费时间(直到产品交付所用的时间)。l软件项目的工作量(E)与交付时间(t)的4次方成反比,软件开发过程中人员与时间的折衷是
11、十分重要的问题。Brooks定律Frederick P. Brooks,Jr.-人月神话作者,人月神话作者,向一个已经拖延的项目追向一个已经拖延的项目追加新的开发人员,可能会加新的开发人员,可能会使这个项目完成得更晚。使这个项目完成得更晚。时间与人员不能线性互换。时间与人员不能线性互换。Norden-Rayleigh曲线 虚线画出的矩形表示平均使用人力。 开始阶段人力过剩,造成浪费( ); 到开发后期需要人力时,又显得人手不足(); 以后再来补偿,已为时过晚(),甚至可能如Brooks定律所指出的,会导致越帮越忙的结果。人力资源计划的平衡 在制定人力资源计划时,就要在基本按照上述曲线配备人力的
12、同时,尽量使某个阶段的人力稳定,确保整个项目期人员的波动不要太大。这一目标被称为“人力资源计划的平衡”人力资源计划平衡方法 1,假设参加项目的所有成员都是多面手,项目成员之间是可以相互替代的。图7.4 人力资源需求网络图人力资源计划平衡方法 2,假设网络图中每一活动在其最早开始时间执行,则可以绘制相应的人力资源分配图:图7.5 基于活动最早开始时间的人力资源计划人力资源计划平衡方法 3,考察网络图中的关键路径等,调整人力资源分配图图7.6 基于资源平衡的人力计划图7.1.3 人力资源的获取 成员来源有三个渠道: 在组织内部选拔合适人员 招聘新成员 通过熟悉的人员介绍,引进所需要的中高级技术人材
13、。 项目经理应具备的基本素质: 良好的沟通能力 良好的文档能力 解决冲突的能力和项目实践经验7.1.4 团队组织和分工 一、软件团队中的角色一个富有工作效率的软件项目团队应包含负责各种业务的人员。每位成员扮演一个或多个角色。常见的一些项目人员承担的岗位包括:分析师、策划师、数据库管理员、设计师、操作/支持工程师、程序员、项目经理、项目赞助者、质量保证工程师、需求分析师、主题专家(用户)、测试人员。7.1.4 团队组织和分工 二、开发人员的组织项目团队的组织可采取垂直方案、水平方案或是混合方案。按垂直方案组织的团队,其特点是成员由多面组成,每个成员都充当多个角色。按水平方案组织的团队,则其成员由
14、各方面的专家组成,每个成员充当一到两个角色。以混合方案组织的团队既包括多面手,又包括专家。水平团队方案 水平团队由专家组成。此类团队同时处理多个用例,每个成员都从事用例中有关其自身的方面。优点:(1)能高质量完成项目各个方面(需求、设计等)的工作。(2)一些外部小组,如用户或操作人员,只需要与了解他们确切要求的一小部分专家进行交互。水平团队方案 缺点:(1)专家们通常无法意识到其他专业的重要性,导致项目的各个方面之间缺乏联系;(2)“后端”人员所需的信息可能无法又“前端”人员来收集;(3)由于专家们的优先权、看法和需求互不相同,所以项目管理更为困难水平团队方案 成功的关键因素:(1)团队成员之
15、间需要有良好的沟通,这样他们才能彼此了解各自的职责;(2)需要制度专家们必须遵循的工作流程和质量标准,从而提高移交给其他专家的效率。水平团队方案 一个较为极端的水平团队的组织形式是所谓基于“主程序员”开发方式,其在开发小组有且仅有一个技术核心,就是主程序员。 在这组织方式里,主程序员负责规划、协调和审查小组的全部技术活动;其他人员,包括程序员、后备工程师等,都是主程序员的助手。 这一方式的成败主要取决于主程序员的技术和管理水平垂直团队方案 垂直团队方案,其组织形式是建立软件民主开发小组。这种组织结构是无核心的,每个人都充当开发的多面手。强调组内成员人人平等,组内问题均由集体讨论决定。 优点:(
16、1)有利于集思广益,组内成员互相取长补短,开发人员能够掌握更广泛的技能;(2)以单个用例为基础实现平滑的端到端开发。垂直团队方案 缺点:(1)多面手通常是一些更价很高并且很难找到的顾问;(2)多面手通常不具备快速解决问题所需要的特定技术专长;(3)主题专家可能不得不和若干开发人员小组一起工作,从而增加了他们的负担;(4)所有多面手水平各不相同。垂直团队方案 成功的关键因素:(1)每个成员都按照一套共同的标准与准则工作;(2)开发人员之间需要进行良好的沟通,以避免公共功能由不同的组来实现;(3)公共和达成共识的体系结构需要尽早在项目中确立。混合型团队方案 混合方案团队由专家和多面手共同组成。 优
17、点:(1)外部小组只需要与一小部分专家进行交互; (2)专家们可集中精力从事他们所擅长的工作;(3)各个用例的实现都保持一致。混合型团队方案 混合方案团队的缺点:(1)拥有前两种方案的缺点;(2)多面手仍然很难找到;(3)专家们仍然不能认识到其他专家的工作并且无法很好地协作,尽管这应该由多面手来调节;(4)项目管理仍然很困难。混合型团队方案混合方案团队的成功关键因素:(1)项目团队成员需要良好的沟通;(2)需要确定公共体系结构;(3)必须适当地定义公共流程、标准和准则。衡量项目成功与否的一个重要因素是项目结束后团队的士气。7.1.5 团队建设 组建团队的基本流程如图所示,分四个步骤: 首先要了
18、解产品开发需求, 而后确定团队的人员需求, 然后物色符合需求的人才, 最终建立团队。7.1.5 团队建设团队的人员从哪里来?通常先从企业内部挑选,最大程度利用现有的人力资源。如果企业内部不能满足要求的话,再通过社会招聘获取人才。 团队的人员结构是金宇塔形的,可以简单划分为三层:团队领导、核心成员和普通成员。比较合理的人员比例为:团队的领导不超过10(领导不能太多),核心成员占30左右,普通成员占60左右。41 关于人才的几个观念 只有为企业创造的效益高于企业为其付出的成本的那些人,才是企业所需的人才。 团队需要优秀的人才。软件开发是智力创作而非体力劳动,优秀人才的创造力比平庸之人要高得多,如果
19、团队没有优秀的人才,几乎不可能开发出有竞争力的产品。优秀人才要价通常比较高,但是他物有所值。 企业应该少招聘一些平庸之人,把省下来的钱投资到优秀人才身上才对。 42 关于人才的几个观念团队中的优秀人才并不是越多越好,优秀人才太多反而有更大的弊端。 一是人力成本太高,他们可能消耗掉产品创造的大部分效益。 二是团队分裂的风险太高,因为团队的空间有限,无法同时满足很多优秀人才事业发展的欲望;当这个矛盾激化时,优秀人才的内讧将产生极大的破坏力。“一山不容二虎”就是这个道理。所以,团队中的优秀人才恰好够用就行。 一般地,让最优秀的人才当团队的领导,让次优秀的人才成为核心成员,让平庸之人成为普通成员。团队
20、结构比较“稳定安全”并且“经济实惠”。43软件开发团队的领导 软件开发团队的领导应当具备四项素质,按级别从低到高排列:不错的技术才能(一段),较强的管理能力(二段),丰富的产品开发经验(三段),敏锐的商业头脑(四段)。44软件开发团队的领导 业界普遍认同的是,合格的项目经理(或相似级别的经理)应当具备较强的管理能力和不错的技术才能。那么对于项目经理而言,究竟是技术才能重要还是管理能力重要呢? 业界不存在判断准则,应当视项目的规模和复杂性而定。 如果项目的技术难度很高,但是规模很小,只有几个人干话,那么领导者的技术才能比管理才能更加重要。反之,如果项目的技术难度不高,但是规模比较大,只要团队成员
21、超过十人,那么领导者管理才能比技术才能要重要。45软件开发团队的领导 企业在物色重大的团队的领导时,不仅要考察候选人的技术才能和管理能力,尤其要关注商业头脑和产品开发经验。 商业头脑是团队领导最重要的素质。有商业头脑的领导能够带领团队朝着最赚钱的道路前进,即使通到一些坎坷,也无碍于最终的成功。反之,缺乏商业头脑的领导通常不知道产品的卖点是什么,却昧在技术力面下功大,经常让团队干些不赚钱的南辕北辙的事情。467.2 软件资源管理7.2.1软件资源基本概念 可复用软件资源:这些软件资源不仅包括源代码,还包括软件开发方法、需求规格说明、设计结构、开发工具与支撑环境、测试分析数据和维护信息等。 实践已
22、经证明,软件复用技术不仅可以提高软件生产率和软件质量,而且也是降低开发成本、缩短开发周期的重要途径。7.2.2 软件资源的复用方式(1)源代码的复用 属最低级复用。这种复用方式将一直存在。但是它的缺点也很明显,一是程序员需要花费大量的精力读懂源代码;二是程序员经常会在复用过程中因不适当地更改源代码而导致错误的结果。7.2.2 软件资源的复用方式(2)目标代码级复用 通常以函数库的方式来体现。 这种形式的复用可能会受限于所用语言,软件复用的灵活性将降低。目标代码级复用最根本的缺点是无法和数据结合在一起。7.2.2 软件资源的复用方式(3)设计结果复用 这种形式是对某个应用系统的设计模型(即求解域
23、模型)的复用。(4)分析结果复用 当用户需求未改变,而系统体系结构发生根本改变时,可以复用系统的分析模型。7.2.2 软件资源的复用方式(5)类模块复用 类库与库函数有本质区别,主要表现在: 独立性强 高度可塑性 接口清晰、简明。类具有封装性,软件开发人员勿需了解类的实现细节,只需清楚类提供的对外接口,就可复用类提供的功能(方法)。 根据类的特性,类模块复用又有三种方式: 实例复用、继承复用、多态复用。7.2.3 软件复用的粒度(1)小粒度复用 小粒度复用即小规模复用。 源代码复用和目标代码复用属于小粒度复用。主要表现在函数、子程序、类等复用。(2)中粒度复用 中粒度复用即中等规模复用。按复用
24、粒度的大小,又分为两种:微体系结构的复用和宏体系结构的复用。7.2.3 软件复用的粒度(3)大粒度复用 大粒度复用即大规模复用,复用对象是独立开发的应用程序或子系统。在服用过程中,它们不能作任何修改和扩充。 类模块复用和构件技术属于大粒度复用。7.2.2 可复用软件资源的管理 为提高软件生产率和软件质量,需要把重用价值的软件模块或控件收集起来,再把相关的资料组织在一起,标注说明,建立索引,从而建立可复用的软件部件库。 目前流行的软件复用思想正是如此,其具体方法是通过利用现有的构件技术建立可复用的软件构件库。7.2.4 可复用软件资源的管理1、构件资源的分类 构件资源的分类是以构件分类体系为依据
25、对构件进行的一种预处理。 在分类体系中,可按构件的标准、使用范围、系统类型、应用领域、应用场合、功能和粒度都属性对构件进行划分。7.2.4 可复用软件资源的管理2、构件库的检索 系统开发人员根据自己的需要从构件库中查找与之匹配的构件的过程,称之为可复用构件的检索。图7.8 构件检索模型7.2.5 CASE工具及其管理1、CASE工具 “CASE”的意思就是计算机辅助软件工程。CASE作为软件开发自动化支持的代名词,目前已被软件工程界普遍接受。 CASE工具是除操作系统之外的所有软件工具的总称。我们可以简单地把CASE理解为:CASE=软件工程+自动化工具。CASE工具 目前市场上已经出现了较多
26、的CASE工具,按其应用类型可分为以下三类:(1)辅助设计工具(2)辅助计算工具(3)辅助管理工具 按照CASE对于软件工具之间的集成方式,也有以下三种:(1)单独运行方式(2)工具与工具之间直接连通(3)通过IPSE(Integrated Project Support Enviornment)2、CASE工具产品 目前常见的CASE工具产品如表7.5所示:3、CASE工具的选用 选择与评价CASE应考虑以下性能指标: 可靠性,指能长时间完成规定性能,而极少出现死机现象。 可用性,指易安装、易学、用户界面通用性等。 高效能,指优化内存需求、存储器需求等。 可维护性,如厂商对问题的反映速度、产
27、品维护能力等。 可移植性3、CASE工具的选用 具体在选用CASE工具时,需要落实以下原则: 掌握各CASE工具间的接口和信息关系。注重商业化程度高的CASE工具。较少地涉及软件实现工具。 3、CASE工具的选用在选择和评价CASE时,还应结合应用软件项目开发机构(团队)的自身因素来考虑。其具体内容,包括下述方面: (1)软件开发机构的背景 (2)软件系统规模 (3)软件系统类型 (4)人员素质几种典型的CASE工具集成方案,如表7.6所示:7.3 7.3 硬件资源管理硬件资源管理7.3.1 硬件资源管理概念软件项目中的硬件资源管理包括: 宿主机 目标机 其他硬件设备7.3.2 硬件设备的经济管理 首先是固定资产的管理1、硬件设备的计价2、硬件设备的折旧7.3.3 硬件设备的技术管理 硬件设备的技术管理包括: 设备的选择 设备的维护与修理 设备的维护 设备的修理 设备的改造与更新作业51. 在软件项目的具体实施过程中,需要进行人力资源管理、软件资源管理、硬件资源管理,这几部分的管理各有什么特点?它们是如何相辅相成使得软件项目顺利进行的?2. 在一个软件项目的进行过程中,它由不同的几个阶段组成,每个阶段对应着不同的人力资源工作,请简述各个阶段人力资源工作的特点。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。