软件工程概论:第三章 项目的计划和管理_第1页
软件工程概论:第三章 项目的计划和管理_第2页
软件工程概论:第三章 项目的计划和管理_第3页
软件工程概论:第三章 项目的计划和管理_第4页
软件工程概论:第三章 项目的计划和管理_第5页
已阅读5页,还剩168页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SOFTWARE ENGINEERINGChapter 3 Planning and Managing the Project项目的计划和管理内容概要 项项目管理概概述 软软件项项目进进度计划计划 软软件项项目中的人员与组织结构员与组织结构 软软件项项目的成本与与工作量估算 软软件项项目的风险风险 软软件项项目配置管理3.1 project and project ma3.1 project and project managementnagement一、 What is a project?What is a project?定义一:项目是完成某些特定指标的一次性任务。定义一:项目是完成某些

2、特定指标的一次性任务。定义二:项目是一项有待完成的专门任务,是在一定的定义二:项目是一项有待完成的专门任务,是在一定的组织机构内,在限定的资源条件下,在计划的时间里,组织机构内,在限定的资源条件下,在计划的时间里,按满足一定性能、质量与数量的要求去完成的一次性按满足一定性能、质量与数量的要求去完成的一次性任务。任务。定义三:项目是为了创造一种独特的产品、实现一种独定义三:项目是为了创造一种独特的产品、实现一种独特的服务或达成一项独特的结果而做出的暂时性努力。特的服务或达成一项独特的结果而做出的暂时性努力。项目的特征:唯一性、一次性、整体性、多目标性、寿项目的特征:唯一性、一次性、整体性、多目标

3、性、寿命周期阶段性;成功的项目需要满足甚至超过项目干命周期阶段性;成功的项目需要满足甚至超过项目干系人的期望。系人的期望。项目干系人(项目干系人(StakeholderStakeholder) 项目干系人指的是那些在项目上有既得利益的人,项目干系人指的是那些在项目上有既得利益的人,项目的结果对他们而言意味着某种得失。项目的结果对他们而言意味着某种得失。 关键项目干系人能够促成或破坏项目的成功。即关键项目干系人能够促成或破坏项目的成功。即使项目实现了所有的可交付成果并且达成了所有使项目实现了所有的可交付成果并且达成了所有的目标,如果关键项目干系人不满意,全都白费。的目标,如果关键项目干系人不满意

4、,全都白费。项项目干系人(Stakeholder)典型项目中涉及到的典型项目中涉及到的项目干系人类型项目干系人类型 一定要在项目的最初阶段会见一定要在项目的最初阶段会见所有的所有的关键项目干系人,关键项目干系人,理解他们的需求和约束;理解他们的需求和约束; 项目干系人之间往往存在利益冲突;项目干系人之间往往存在利益冲突; 解决项目干系人冲突的时候永远要以对解决项目干系人冲突的时候永远要以对客户客户有利为出有利为出发点。发点。 二、二、What is project managementWhat is project management The application of knowledge

5、, skills, tools, and techniques to project activities in order to meet or exceed stake holder needs and expectations. 将知识、技能、工具、技术应用于项目活动以满足或超过预期的需求。 两种含义两种含义- - 管理活动:管理活动:一种有意识地按照项目管理的特点和规律,对项目进行组织管理的活动- - 管理学科:管理学科:以项目管理活动为研究对象的一门学科,它是探索项目活动科学组织管理的理论与方法。三、什么是软件项目管理?三、什么是软件项目管理? 软件项目管理是为了使软件项目能够按照预

6、定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。 软件项目管理的对象是软件工程项目,包括进度、系统规模及工作量估算、经费、组织机构和人员、风险、环境配置等,所涉及的范围覆盖了整个软件工程过程。 为使软件项目开发获得成功,一个关键问题是必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬软件)、要实现的任务、经历的里程碑、花费工作量(成本),以及进度的安排等等做到心中有数。而软件项目管理可以提供这些信息。通常,这种管理在技术工作开始之前就应开始,而在软件从概念到实现的过程中继续进行,并且只有当软件开发工作最后结束时才终止。 四、管理的范围四、管理

7、的范围有效的项目管理集中于三个P 上PeoplePeople-项目参与者 -项目负责人-软件项目组 -协调和通讯ProblemProblem-软件范围 -问题分解ProcessProcess-合并问题和过程 -过程分解 五、为何需要软件项目管理?为何需要软件项目管理?n是否需要管理是专业软件开发和业余编程之间的重是否需要管理是专业软件开发和业余编程之间的重要区别之一:要区别之一: 专业的软件开发活动总是要受预算和工程进度等的制约;专业的软件开发活动总是要受预算和工程进度等的制约; 有多方面的参与者需要协调或管理;有多方面的参与者需要协调或管理; 软件项目管理者要确保项目符合预算和进度要求,还要

8、确软件项目管理者要确保项目符合预算和进度要求,还要确保交付的软件能达到既定的目标;保交付的软件能达到既定的目标; 再好的管理也不能保证项目绝对成功,但糟糕的管理常常再好的管理也不能保证项目绝对成功,但糟糕的管理常常造成项目失败;造成项目失败; 六、软件项目中的管理活动软件项目中的管理活动n软件管理并没有一定的标准,开发组织和被开发软件管理并没有一定的标准,开发组织和被开发的软件产品决定着管理工作的内容的软件产品决定着管理工作的内容n基本上,软件项目管理工作要包含以下活动:基本上,软件项目管理工作要包含以下活动: 提出书面建议提出书面建议 项目规划和进度项目规划和进度 项目成本项目成本 项目监督

9、和评审项目监督和评审 人员选择和评价人员选择和评价 写作并陈述工作报告写作并陈述工作报告3.2 Tracking project progress跟踪项目进展跟踪项目进展 Software is useful only if it performs a desired function or provides a needed service. 软件只有在执行了人们需要的功能或提供了需要的服务时,才是有用的。通常你必须回答以下的问题 Do you understand customer problem and needs? 你能理解客户的问题和需要吗? Can you design a sys

10、tem to solve customer problem or satisfy customer needs? 你能设计一个系统来解决客户问题或满足客户需要吗? How long will it take you to develop the system? 开发这样的系统需要花多长时间? How much will it cost to develop the system? 开发这样的系统成本是多少? Answering the last two questions requires a well-thought-out project schedule. 后两个问题要在慎重考虑项目的进

11、度之后才能回答: Project Schedule describes the software development cycle for a particular project by enumerating the phases or stages of a project and breaking each into discrete tasks or activities to be done.项目进度描述了针对特定项目的软件开发周期,列举了项目的各个阶段,把每个阶段划分成要完成的离散任务或活动 项目进度计划项目进度计划(Project Schedule) : 列举了项目的各阶段列举

12、了项目的各阶段 把每个阶段划分成需要完成的活动把每个阶段划分成需要完成的活动 描述活动间的关系描述活动间的关系 估算活动所需的时间估算活动所需的时间 项目进度计划的出发点 了解项目干系人的期望和以及客户的需要,与他了解项目干系人的期望和以及客户的需要,与他们沟通直到他们满意;们沟通直到他们满意; 列出所有的可交付成果;列出所有的可交付成果; 可交付成果以量化的方式描述了项目目标的组可交付成果以量化的方式描述了项目目标的组成部分。成部分。 判定必须进行哪些活动以建立这些可交付成果;判定必须进行哪些活动以建立这些可交付成果; The schedule also portrays the inter

13、actions among these activities and estimates the time that each task or activity will take. 进度描绘了活动之间的交互,并估算每一任务或活动需要的时间。 The schedule is a timeline that shows when activities will begin and end, and when the related development products will be ready. 进度是一个时间的限期,它表明活动将于何时开始何时结束、相关的开发产品何时准备就绪。Projec

14、t deliverables项目可交付品 Documents 文档 Demonstrations of function 功能演示 Demonstrations of subsystems 子系统演示 Demonstrations of accuracy 正确性演示 Demonstrations of reliability, performance or security 可靠性、安全性或性能演示一、一、Work Breakdown and Activity Graphs Work Breakdown and Activity Graphs 工作分解和活动图工作分解和活动图 Mileston

15、es and activities Milestones and activities 活动和里程碑活动和里程碑 ActivityActivity(活动活动 ):A part of a project that takes :A part of a project that takes place over a period of timeplace over a period of time。项目的一个部分,发项目的一个部分,发生在一段时间内。生在一段时间内。 MilestoneMilestone(里程碑里程碑 ) : completion of an activi: completion

16、of an activity - a particular point in timety - a particular point in time。一个活动的完一个活动的完成。是某一特定时刻。成。是某一特定时刻。描述活动的描述活动的4个参数个参数 Precursor(前驱前驱): event or set of events that must occur in order for an activity to start。在活动开始之前必。在活动开始之前必须发生的一个或一组事件,它描述了活动开始的一组条须发生的一个或一组事件,它描述了活动开始的一组条件。件。 Duration(持续时间持续

17、时间): length of time needed to complete an activity。完成一个活动需要的时间长度。完成一个活动需要的时间长度 Due date(截至日期截至日期): date by which an activity must be completed。活动必须完成的日期。活动必须完成的日期 Endpoint(终点): Milestones or deliverables。里程碑或交付品活动图:项目中的阶段、步活动图:项目中的阶段、步骤和活动骤和活动阶段阶段步骤步骤活动活动阶段、步骤和活动例里程碑例活动和估计时间例 活动图例二、Estimating Comple

18、tion估算完成时间 Slack timeSlack time(空闲时间)=available time real time=available time real time ( 可用时间 实际时间)=latest start time - earliest start time (最晚开始时间 最早开始时间) Real time Real time实际时间实际时间 : is the estimated amount : is the estimated amount of time required for the activity to be completeof time require

19、d for the activity to be completed.d.完成这个活动估计所需的时间量。完成这个活动估计所需的时间量。 available time available time可用时间可用时间: : is the amount of tim: is the amount of time available in the schedule for the activitys coe available in the schedule for the activitys completion.mpletion.进度中完成这个活动可用的时间量。进度中完成这个活动可用的时间量。 Cr

20、itical Path Method (CPM)关键路径法 The Critical Path can show us the minimum amount The Critical Path can show us the minimum amount of time it will take to complete the project.of time it will take to complete the project.关键路径能告诉我们完成这个项目的最短时间关键路径能告诉我们完成这个项目的最短时间The critical path is the one for which the

21、 slack The critical path is the one for which the slack time at every node is zero.time at every node is zero.关键路径中的每个结点的空闲时间都是零关键路径中的每个结点的空闲时间都是零项目活动的空闲时间CPM条形图三、Tools to track progress跟踪进展的工具工作分解结构(工作分解结构(WBS)示例)示例 是以可交付成果为导向的对项目成分的分组,从是以可交付成果为导向的对项目成分的分组,从而组织并定义整个项目范围。而组织并定义整个项目范围。WBSWBS不包括的工作不包括

22、的工作就不在项目的范围之内。就不在项目的范围之内。 WBSWBS是自顶向下逐层构建的,表现形式可以是图是自顶向下逐层构建的,表现形式可以是图表也可以是文字大纲。表也可以是文字大纲。 最高层,是项目本身。接下来是项目的可交付成最高层,是项目本身。接下来是项目的可交付成果以及进一步分解的、更小的可交付成果。然后果以及进一步分解的、更小的可交付成果。然后就是创建这些成果的活动。就是创建这些成果的活动。工作分解结构(工作分解结构(Work Breakdown StructureWork Breakdown Structure)depicts the project as a set of discre

23、te pieces of work.depicts the project as a set of discrete pieces of work.把把项项目描目描绘绘成一成一组组分离的工作分离的工作块块。工作分解结构工作分解结构 (Work Breakdown StructureWork Breakdown Structure)工作分解结构工作分解结构(Work Breakdown StructureWork Breakdown Structure)文字大纲形式的文字大纲形式的WBSWBS1 1 需求定需求定义义2 2 设计规设计规格格2-1 2-1 软软件件设计设计2-2 2-2 硬件硬件

24、设计设计3 3 程序模程序模块块工作分解结构工作分解结构(Work Breakdown StructureWork Breakdown Structure)任务责任矩阵任务责任矩阵在在WBSWBS的基础上,把各项活动的基础上,把各项活动落实到相关人员。落实到相关人员。用一个矩阵表格表示分工与责任:用一个矩阵表格表示分工与责任:任务责任矩阵任务责任矩阵工作划划分负责负责人张张XX设计师设计师王XX设计师设计师李XX2 设计规设计规格审查审查2-1软软件设计设计设计设计2-2硬件设计设计设计设计工作分解结构工作分解结构(Work Breakdown StructureWork Breakdown

25、Structure) 明确了项目范围明确了项目范围 确定了项目包含的活动确定了项目包含的活动 指明活动对应的里程碑指明活动对应的里程碑 没有指明活动间的相互依赖关联没有指明活动间的相互依赖关联 无法表示项目中可以并行的部分无法表示项目中可以并行的部分 还需要其他手段才能产生现实可行的项目进度还需要其他手段才能产生现实可行的项目进度计划计划 Gantt(甘特)图是历史悠久、应用广泛的制定进度计划的工具Gantt图GanttGantt图举例图举例垂直的虚线表示今天;水平长条表示每个活动的进展;长条的颜色表示完成情况、持续时间或关键性;菱形图标表示何处出现延迟;三角表示活动的开始和结束。Gantt图

26、Another Gantt chartAnother Gantt chart 假设有一座陈旧的矩形木板房需要重新油漆。这项工作必须分3步完成: 首先刮掉旧漆,然后刷上新漆,最后清除溅在窗户上的油漆。假设一共分配了15名工人去完成这项工作,然而工具却很有限: 只有5把刮旧漆用的刮板,5把刷漆用的刷子,5把清除溅在窗户上的油漆用的小刮刀。 首先刮掉四面墙壁上的旧漆,然后给每面墙壁都刷上新漆,最后清除溅在每个窗户上的油漆。显然这是效率最低的做法,因为总共有15名工人,然而每种工具却只有5件,这样安排工作在任何时候都有10名工人闲着没活干。GanttGantt图例图例 首先由5名工人用刮板刮掉第1面墙

27、上的旧漆(这时其余10名工人休息),当第1面墙刮净后,另外5名工人立即用刷子给这面墙刷新漆(与此同时拿刮板的5名工人转去刮第2面墙上的旧漆),一旦刮旧漆的工人转到第3面墙而且刷新漆的工人转到第2面墙以后,余下的5名工人立即拿起刮刀去清除溅在第1面墙窗户上的油漆,GanttGantt图例图例刮旧漆刷新漆清理1 或 32312 或 4462Gantt图例旧木板房刷漆工程的Gantt图Gantt图例图例旧木板房刷漆工程改进的Gantt图 GanttGantt图能很形象地描绘任务分解情况,以及每个图能很形象地描绘任务分解情况,以及每个子任务子任务( (作业作业) )的开始时间和结束时间,因此是进度计的

28、开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有直观简明和容易掌划和进度管理的有力工具。它具有直观简明和容易掌握、容易绘制的优点,但是握、容易绘制的优点,但是GanttGantt图也有图也有3 3个主要缺点:个主要缺点: (1) (1) 不能显式地描绘各项作业彼此间的依赖关系;不能显式地描绘各项作业彼此间的依赖关系; (2) (2) 进度计划的关键部分不明确,难于判定哪些进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;部分应当是主攻和主控的对象; (3) (3) 计划中有潜力的部分及潜力的大小不明确,计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。往往

29、造成潜力的浪费。Gantt图 工程网络是制定进度计划时另一种常用的图形工工程网络是制定进度计划时另一种常用的图形工具;具; 它能描绘任务分解情况以及每项活动作业的开它能描绘任务分解情况以及每项活动作业的开始时间和结束时间,此外,它还显式地描绘各个始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关系;作业彼此间的依赖关系; 工程网络图要求绘制者理解项目中哪些部分可以工程网络图要求绘制者理解项目中哪些部分可以并行;并行; 活动的并行执行还取决于其执行者是否是一个人活动的并行执行还取决于其执行者是否是一个人单位;单位;工程网络注意区分活动与里程碑:注意区分活动与里程碑: 活动(活动(Act

30、ivityActivity):一个活动是项目的一部分,):一个活动是项目的一部分,它要耗费一段时间,有开始和结束它要耗费一段时间,有开始和结束 里程碑(里程碑(MilestoneMilestone):一个里程碑是某个活动完):一个里程碑是某个活动完成的标志,它是一个特定的时间点成的标志,它是一个特定的时间点 用箭头表示活动作业;用箭头表示活动作业; 用圆圈表示里程碑事件。用圆圈表示里程碑事件。工程网络 活动的四个参数:活动的四个参数: Precursor(前驱前驱): event or set of events that must occur in order for an activity

31、 to start。在活动开始之前必须发在活动开始之前必须发生的一个或一组事件,它描述了活动开始的一组条件。生的一个或一组事件,它描述了活动开始的一组条件。 Duration(持续时间持续时间): length of time needed to complete an activity。完成一个活动需要的时间长度完成一个活动需要的时间长度 Due date(截至日期截至日期): date by which an activity must be completed。活动必须完成的日期活动必须完成的日期 Endpoint(终点): Milestones or deliverables。里程碑或

32、交付品工程网络工程网络 首先,把每个作业估计需要使用的时间写在表示首先,把每个作业估计需要使用的时间写在表示该项作业的箭头上方该项作业的箭头上方 其次,为每个事件计算下述两个统计数字:最早其次,为每个事件计算下述两个统计数字:最早时刻时刻EETEET和最迟时刻和最迟时刻LETLET估算工程进度 事件的最早时刻(事件的最早时刻(EETEET)是该事件可以发生的最早)是该事件可以发生的最早时间:时间: 第一个事件第一个事件的最早时刻定义为零的最早时刻定义为零. .其他事件的其他事件的最早时刻在工程网络上最早时刻在工程网络上从左至右从左至右按事件发生顺按事件发生顺序计算:序计算: (1 1)考虑)考

33、虑进入进入该事件的所有作业,该事件的所有作业, (2 2)对于其中每个作业都计算它的持续时间)对于其中每个作业都计算它的持续时间与其起始事件的与其起始事件的EETEET之和,之和, (3 3)选取上述)选取上述和数中的最大值和数中的最大值作为该事件的作为该事件的最早时刻最早时刻EETEET 估算工程进度 事件的最迟时刻(事件的最迟时刻(LETLET)是在不影响工程竣工时间)是在不影响工程竣工时间的前提下,该事件最晚可以发生的时间:的前提下,该事件最晚可以发生的时间: 最后一个事件最后一个事件(工程结束)的最迟时刻就是它(工程结束)的最迟时刻就是它的最早时刻的最早时刻, ,其他事件的最迟时刻在工

34、程网络其他事件的最迟时刻在工程网络上上从右至左从右至左按逆作业流的方向计算按逆作业流的方向计算 (1 1)考虑)考虑离开离开该事件的所有作业,该事件的所有作业, (2 2)从其中每个作业的结束事件的)从其中每个作业的结束事件的LETLET中减去中减去该作业的持续时间,该作业的持续时间, (3 3)选取上述)选取上述差数中的最小值差数中的最小值作为该事件的作为该事件的最迟时刻最迟时刻LETLET估算工程进度旧木板房刷漆工程的完整的工旧木板房刷漆工程的完整的工程网络程网络 关键路径:由关键路径:由最早时刻和最迟时刻相同最早时刻和最迟时刻相同的事件组成的路的事件组成的路径。在工程网络图中关键路径用粗

35、线箭头表示。径。在工程网络图中关键路径用粗线箭头表示。 关键路径上的事件(关键事件)必须准时发生,组成关关键路径上的事件(关键事件)必须准时发生,组成关键路径的作业(关键作业)的实际持续时间不能超过估键路径的作业(关键作业)的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。计的持续时间,否则工程就不能准时结束。 使用关键路径法可以得出完成项目所需的最少时间。使用关键路径法可以得出完成项目所需的最少时间。关键路径(Critical Path) 关键路径是一个工程网络图中最长(指持续时间最长,关键路径是一个工程网络图中最长(指持续时间最长,而非经过的活动最多)的路径。而非经过的活动最多

36、)的路径。 关键路径可能有多条。关键路径可能有多条。 关键路径:其上的每个活动对应的关键路径:其上的每个活动对应的机动时间机动时间(Slack TiSlack Timeme)都为零。)都为零。关键路径(Critical Path) 一个作业可以有的全部机动时间等于它的结束事件的最一个作业可以有的全部机动时间等于它的结束事件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业迟时刻减去它的开始事件的最早时刻,再减去这个作业的持续时间:的持续时间: 机动(空闲)时间机动(空闲)时间(LET)(LET)结束结束 (EET)(EET)开始开始持续时间持续时间 或者表述为:或者表述为: 机动(空闲)时间

37、可用时间持续时间机动(空闲)时间可用时间持续时间 机动(空闲)时间作业最晚开始时间最早开始时间机动(空闲)时间作业最晚开始时间最早开始时间 机动(空闲)时间作业最晚结束时间最早结束时间机动(空闲)时间作业最晚结束时间最早结束时间机动(空闲)(空闲)时间(Slack Time)课堂练习 P133-Q2 We have only an estimated duration for an activiWe have only an estimated duration for an activity.ty.各活动所需时间通常仅仅是一个估计值;各活动所需时间通常仅仅是一个估计值; CPM or PER

38、T (Program Evaluation and Review Technique) are valuable only for stable projects in which several activities take place concurrently.关键路径或程序评估关键路径或程序评估和评审技术只对稳定的、其中有几个活动同时发生的项和评审技术只对稳定的、其中有几个活动同时发生的项目有价值。目有价值。 If the project requires redesign or rework, the activity graph and critical path are like

39、ly to change during development.如果项目需要重新设计或返工,则开发中的活动如果项目需要重新设计或返工,则开发中的活动图和关键路径都可能改变。图和关键路径都可能改变。几点说明 软件工程项目虽然比这个简单例子复杂得多,但是计划和管理的基本方法仍然是自顶向下分解,也就是把项目分解为若干个阶段,每个阶段再分解成许多更小的任务,每个任务又可进一步分解为若干个步骤等等。这些阶段、任务和步骤之间有复杂的依赖关系,因此,工程网络和Gantt图同样是安排进度和管理工程进展情况的强有力的工具。四、项目的进度管理四、项目的进度管理Activity definition (WBS an

40、d dictionary)Activity definition (WBS and dictionary) 确定项目的工作任务确定项目的工作任务Activity sequencingActivity sequencing 确定活动之间的依赖关系确定活动之间的依赖关系, ,并形成文档并形成文档Activity duration estimatingActivity duration estimating 根据所需的资源、具体的条件,估计各项活动的持续时间根据所需的资源、具体的条件,估计各项活动的持续时间Schedule developmentSchedule development 分析活动顺序

41、、活动历时和资源需求,以编制项目进度计划分析活动顺序、活动历时和资源需求,以编制项目进度计划Schedule controlSchedule control 控制项目进度计划的变化控制项目进度计划的变化3.2 Project personnel3.2 Project personnel项目人员项目人员一、一、Staff roles Staff roles 人员职责人员职责 requirements analysisrequirements analysis 需求分析需求分析 system design system design 系统设计系统设计 program design program

42、design 程序设计程序设计 program implementation program implementation 程序实现程序实现 testing testing 测测 试试 training training 培培 训训 maintenance maintenance 维维 护护 quality assurance quality assurance 质量保证质量保证二、人员的差别二、人员的差别 ability to perform work ability to perform work 开展工作的能力开展工作的能力 interest in work interest in wo

43、rk 对工作的兴趣对工作的兴趣 experience with experience with 经验方面经验方面 similar applications 参与类似应用程序 similar tools or languages 使用类似工具和语言 similar techniques 使用类似技术 similar development environments 使用类似开发环境 Training Training 培训培训 ability to communicate with others ability to communicate with others 和他人的交流能力和他人的交流能

44、力 ability to share responsibility ability to share responsibility 承担责任能力承担责任能力 management skills management skills 管理技能管理技能三、Communication paths 交流渠道软件项目中的沟通成本软件项目中的沟通成本 沟通与交流需要耗费时间:沟通与交流需要耗费时间:-会议开销会议开销 不当的沟通与交流方式造成误解,从而把错误引入不当的沟通与交流方式造成误解,从而把错误引入到开发工作中;到开发工作中; 随着开发小组规模扩大,沟通开销激增,个人生产随着开发小组规模扩大,沟通开销

45、激增,个人生产率将下降,以致开发时间与从事开发工作的人数并率将下降,以致开发时间与从事开发工作的人数并不成反比关系。不成反比关系。 软件工程的软件工程的BrooksBrooks定律:定律:-向向已经延期已经延期的软件项目中添加人手只会使进度更加的软件项目中添加人手只会使进度更加落后。落后。软件项目中的沟通成本软件项目中的沟通成本我们不可能用我们不可能用“人力换时间人力换时间”的办法无限缩短一的办法无限缩短一个软件的开发时间。个软件的开发时间。BoehmBoehm根据经验指出,根据经验指出,软件软件项目的开发时间最多可以减少到正常开发时间的项目的开发时间最多可以减少到正常开发时间的7 75 5。

46、如果要求一个软件系统的开发时间过短,则如果要求一个软件系统的开发时间过短,则开发成功的概率几乎为零。开发成功的概率几乎为零。四、四、Work styles Work styles 工作方式工作方式ExtrovertsExtroverts外向外向IntrovertsIntroverts内向内向IntuitivesIntuitives直觉感性的直觉感性的RationalsRationals理性的理性的tell their thoughtstell their thoughts告告诉别诉别人他人他们们的想法的想法ask for suggestionsask for suggestions征求他人意征

47、求他人意见见base decisions on feelingsbase decisions on feelings根据感根据感觉觉做做决决定定base decisions on facts, optionsbase decisions on facts, options根据事根据事实实、考、考虑虑所有所有选择选择Work styles Work styles 工作方式工作方式 Tend to assert their ideas and not let “gut feeling” affect their decision making. they tell their colleagues

48、 what they want them to know, but they rarely ask for more information before doing so. When reason, they rely on logic, not emotion. 倾向于宣扬他们的主意,不让倾向于宣扬他们的主意,不让”内心直觉内心直觉”影响他们的决策。他们告诉影响他们的决策。他们告诉同事希望同事们知道什么,但他们在这样做之前很少寻求更多的信息。同事希望同事们知道什么,但他们在这样做之前很少寻求更多的信息。当推理时,依靠逻辑而不是感觉。当推理时,依靠逻辑而不是感觉。 擅长于快速作出好的决策。擅

49、长于快速作出好的决策。 Tend to assert their ideas and not let “gut feeling” affect their decision making. they tell their colleagues what they want them to know, but they rarely ask for more information before doing so. When reason, they rely on logic, not emotion. 也避免作出感性的决策,但他们愿意花时间来考虑所有可能的活动。也避免作出感性的决策,但他们愿

50、意花时间来考虑所有可能的活动。他们是信息收集者,在确信掌握了所有信息之前,不会进行决策。他们是信息收集者,在确信掌握了所有信息之前,不会进行决策。 全心投入工作的好员工,并在意该评价全心投入工作的好员工,并在意该评价。 Base many decisions on emotional reaction, tending to want to tell others about them, rather than asking for input. They use their intuition to be creative, and they often suggest unusual ap

51、proaches to solving a problem. 做决策时根据感性的反应,倾向于告诉他人这些决策,而不是寻求输做决策时根据感性的反应,倾向于告诉他人这些决策,而不是寻求输入。他们用直觉创造性地工作,在解决问题是他们通常会提出一种不入。他们用直觉创造性地工作,在解决问题是他们通常会提出一种不寻常的方法。寻常的方法。 擅长在职员有大量交互的环境中工作。擅长在职员有大量交互的环境中工作。 Is creative, too, but applies creativity only after having gathered sufficient information on which t

52、o base a decision . 也富有创造性,但他们只有在收集了决策所依据的足够信息之后才应也富有创造性,但他们只有在收集了决策所依据的足够信息之后才应用他们的创造性。用他们的创造性。 他们处理问题时,比较敏感并会考虑依赖关系和情感因素。他们处理问题时,比较敏感并会考虑依赖关系和情感因素。五、五、Project organizationProject organization项目组织项目组织DependsDependsononbackgrounds and work styles of team members backgrounds and work styles of team m

53、embers 成成员员的背景和工作方式的背景和工作方式number of people on team number of people on team 成成员数员数management styles of customers and developersmanagement styles of customers and developers 顾顾客和客和开发开发人人员员的管理方式的管理方式ExamplesExamplesChief programmer team Chief programmer team 核心程序员组核心程序员组Egoless approach Egoless appro

54、ach 无私编程无私编程 为为了成功地完成软软件开发开发工作,项项目组组成员员必须须以一种种有意义义且有效的方式彼此交互和通信。如何组织项组织项目组组是一个个重要的管理问题问题,管理者应该应该合理地组织项组织项目组组,使项项目组组有较较高生产产率,能够够按预预定的进进度计划计划完成所承担的工作。经验经验表明,项项目组组织组组织得越好,其生产产率越高,而且产产品质质量也越好。 Chief Programmer Team核心程序员组核心程序员组On a chief programmer team, one person is totally responsible for a systems de

55、sign and development. 核心程序员组由一个人总体负责系统的设计和开发Chief programmer主程序员Assistant chief programmer助理程序员Senior programmers高级程序员Junior programmers初级程序员Librarian库管理员(编程秘书)Administration管理机构Test team测试小组 主程序员员:既既是成功的管理员员,又是高度熟练练的程序员员,要负责负责体系结构结构和其他关键复杂关键复杂部分的设计设计,协调协调其他成员员,复查复查其他成员员的工作,对对每行代码负责码负责。 后备备程序员员:主程序员

56、员的“替补补”。要和主程序员员一样样能干。 编编程秘书书:负责负责完成与项与项目有关关的全部事务务性工作,例如,维护项维护项目资资料库库、文档档,甚至源码码的编译编译、链链接、运运行等。核心程序员小组存在的问题核心程序员小组存在的问题 主程序员很难找到:成功的管理员、高度熟练的主程序员很难找到:成功的管理员、高度熟练的程序员的结合体;程序员的结合体; 后备后备( (助理助理) )程序员更难找到:高能力、高素质却程序员更难找到:高能力、高素质却要甘居要甘居“全场替补板凳队员全场替补板凳队员”; 编程秘书也不容易找到;编程秘书也不容易找到; 走查与审查工作的危险:走查与审查工作的危险:-主程序员必

57、然要出现在走查和审查工作中,同时其又是主程序员必然要出现在走查和审查工作中,同时其又是各程序员工作的绩效评价人。技术负责人与管理负责人各程序员工作的绩效评价人。技术负责人与管理负责人的双重身份形成的权力垄断往往会对程序员造成影响。的双重身份形成的权力垄断往往会对程序员造成影响。主程序员小组的变化形式主程序员小组的变化形式大型项目的技术管理组织结构大型项目的技术管理组织结构大型项目的技术管理组织结构Egoless approach无私编程无私编程 Instead of a single point of responsibility, an egoless approach holds ever

58、yone equally responsible. 不是把责任放在单个人身上,而是让每个人平等地担负责任。怎样选择合适的组织结构怎样选择合适的组织结构 How does project team structure affect the resulting product and how do project team choose the most appropriate organization in a given situation ?小组结构怎样组结构怎样影响响最终产终产品?在给给定的情况况下怎样选择怎样选择合适的结构结构? Projects with a high degree o

59、f certainty, stability, uniformity, and repetition can be accomplished more effectively by a hierarchical organizational structure such as the chief programmer team.在有着高确定性、稳定性、均匀性和重复性的项目中,核心程序员组这样的等级组织结构会更有效。 When there is much uncertainty involved in a project, a more democratic approach may be be

60、tter.当项目涉及大量的不确定性时,更为民主的方法可能更好。3.3 工作量和成本估计一、影响估计的因素一、影响估计的因素 工作量和成本是紧密相关的,正确地估计成本是成功的项目管理的一个重要工作量和成本是紧密相关的,正确地估计成本是成功的项目管理的一个重要组成部分。组成部分。 正确地估算成本比较困难,不能正确估计的原因有:正确地估算成本比较困难,不能正确估计的原因有: 1、Frequent requests for changes by users 用户频繁的变动请求用户频繁的变动请求 2、Overlooked tasks 忽视了任务的艰巨性忽视了任务的艰巨性 3、Users lack of

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论