Software Project Management 2007 Project Time Management Solonhi Gao School of Computer Software Engineering 1/42 2007-8-31
Software Engineering 2/42 Review of chapter 5 Project scope management includes the processes required to ensure that the project addresses all the work required, and only the work required, to complete the project successfully. The main processes include scope planning, scope definition, WBS creation, scope verification, and scope control. Scope planning, where a scope management plan is created. This plan should include descriptions of how the team will prepare the detailed scope statement, create the WBS, verify completion of the project deliverables, and control requests for changes to the project scope. Project scope statement is created in the scope definition process. This document often includes a project justification, a brief description of the project’s products, a summary of all project deliverables, and a statement of what determines project success. Poor project scope management is one of the key reasons project fail. For information technology projects, it is important for good project scope management to have strong user involvement, a clear statement of requirements, and a process for managing scope changes. Software Engineering 2/42 2007-8-31
Software Engineering 3/42 Learning Objectives Understand the importance of project schedules and good project time management. Define activities as the basis for developing project schedules. Describe how project managers use network diagrams and dependencies(依赖关系) to assist in activity sequencing(活动排序). Understand the relationship between estimating resources and project schedules(进度表,时间表). Explain how various tools and techniques help project managers perform activity duration estimating(活动历时估算). Software Engineering 3/42 2007-8-31
Software Engineering 4/42 Learning Objectives Use a Gantt chart for planning and tracking schedule information, find the critical path for a project(关键路径), and describe how critical chain scheduling(关键链进度计划) and the Program Evaluation and Review Technique (PERT 计划评审技术) affect schedule development. Discuss how reality checks(实际检查) and people issues(人的问题) are involved in controlling and managing changes to the project schedule. Describe how project management software can assist in project time management and review words(注意事项) of caution before using this software. Software Engineering 4/42 2007-8-31
Software Engineering 5/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 5/42 2007-8-31
Software Engineering 6/42 Opening Case dramatis personae: Sue Johnson. The view of the case : The consulting company contracted to provide a new online registration system at a local college. This system absolutely had to be operational by May 1st so students could use it to register for the fall semester(秋季学期). Sue knew that it was her responsibility to meet the schedule and manage scope, cost, and quality expectations. Developing the schedule turned out to be the easy part: keeping the project on track was more difficult. Managing people issues and resolving schedule conflicts were two of the bigger challenges. Software Engineering 6/42 2007-8-31
Software Engineering 7/42 Opening Case dramatis personae: Sue Johnson. The view of the case : Many of the customers’ employees took unplanned vacations and missed or rescheduled project review meetings. One senior programmer on her project team quit. It will take extra time for a new person to get up speed. Sue knew they were falling behind. What she do to meet the operational date of may 1st? Software Engineering 7/42 2007-8-31
Software Engineering 8/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 8/42 2007-8-31
Importance of Project Schedules Managers often cite delivering projects on time as one of their biggest challenges. Average time overrun from 1995 CHAOS report was 222%; improved to 63% in 2001 study. But average time overrun increased to 82 percent in 2003. Time has the least amount of flexibility; it passes no matter what happens on a project. Schedule issues are the main reason for conflicts on projects, especially during the second half of projects. Software Engineering 9/42 2007-8-31
Conflict Intensity Over the Life of a Project 项目周期中冲突的强度 Software Engineering 10/42 2007-8-31
Project Time Management 项目时间管理涉及确保项目准时完成所必需的过程。 活动定义(Activity Definition) 确定为完成项目可交付成果而必须完成的具体活动。 活动排序(Activity Sequencing) 确定项目活动之间的关系,并形成相应文档。 活动历时估算(Activity Duration Estimating) 估计完成具体活动所需要的工期。 制定进度计划(Schedule Development) 分析活动顺序、活动历时估算和资源要求,制定项目进度计划。 进度计划控制(Schedule Control) 控制和管理项目进度计划的变更。 Software Engineering 11/42 2007-8-31
Software Engineering 12/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 12/42 2007-8-31
Software Engineering 13/42 Activity Definition An activity or task is an element of work normally found on the WBS that has an expected duration, a cost, and resource requirements. Project schedules grow out of the basic document that initiate a project Project charter includes start and end dates and budget information Scope statement and WBS help define what will be done Activity definition It involves developing a more detailed WBS and supporting explanations to understand all the work to be done. 项目小组成员需要进一步细化WBS,定义完成项目所需的所有工作。 活动或任务是项目进行期间需要完成的工作单元,具有预期的工期、成本和资源要求。 Software Engineering 13/42 2007-8-31
Activity Lists and Attributes An activity list is a tabulation of activities to be included on a project schedule. The list should include: The activity name An activity identifier or number A brief description of the activity Activity attributes provide more information about each activity, such as predecessors(前驱), successors(后继), logical relationships, leads and lags, resource requirements, constraints, imposed dates, and assumptions related to the activity. Software Engineering 14/42 2007-8-31
Software Engineering 15/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 15/42 2007-8-31
Software Engineering 16/42 Activity Sequencing 活动之间的逻辑关系 活动之间先后顺序的确定涉及到识别各活动之间的逻辑关系,例如有的活动必须依赖于另一种活动的结束才开始(先后依赖关系)。 活动之间的先后顺序有四种依赖关系 结束后才开始(Finish to Start,FS) 开始后才开始(Start to Start,SS) 结束后才结束(Finish to Finish,FF) 开始后才结束(Start to Finish,SF) Software Engineering 16/42 2007-8-31
Software Engineering 17/42 Activity Sequencing Software Engineering 17/42 2007-8-31
Software Engineering 18/42 Activity Sequencing Software Engineering 18/42 2007-8-31
Software Engineering 19/42 Activity Sequencing Software Engineering 19/42 2007-8-31
Software Engineering 20/42 Network Diagrams Project Network Diagrams(项目网络图) A project network diagram is a schematic display of the logical relationships among, or sequencing of, project activities. 项目网络图将所分解的各项工作按照一定的先后顺序组织起来,指导项目的进度安排。 项目小组成员应当共同参与项目工作的分解及其先后顺序的确定,以取得一致的意见。 Format of the project network diagram activity-on-arrow(AOA,双代号网络图)or arrow diagramming method(ADM,箭线图法) precedence diagramming method(PDM,前导图法) Software Engineering 20/42 2007-8-31
Arrow Diagramming Method(ADM) Also called activity-on-arrow(AOA)project network diagrams Components Activities are represented by arrows Nodes or circles are the starting and ending points of activities Can only show finish-to-start dependencies AOA或ADM网络图由事件和活动组成 一个事件定义为一组活动的起点或终点 活动定义为从一个事件过渡到另一个事件所需做的工作 圆圈表示事件,用数字表示 箭头表示活动,用字母表示 Software Engineering 21/42 2007-8-31
Arrow Diagramming Method(ADM) Software Engineering 22/42 2007-8-31
Arrow Diagramming Method(ADM) Software Engineering 23/42 2007-8-31
Process for Creating AOA Diagrams Find all of the activities that start at node 1. Draw their finish nodes and draw arrows between node 1 and those finish nodes. Put the activity letter or name and duration estimate on the associated arrow Continuing drawing the network diagram, working from left to right. Look for bursts(交叉点) and merges(交汇点). Bursts occur when a single node is followed by two or more activities. A merge occurs when two or more nodes precede a single node Continue drawing the project network diagram until all activities are included on the diagram that have dependencies As a rule of thumb, all arrowheads should face toward the right, and no arrows should cross on an AOA network diagram Software Engineering 24/42 2007-8-31
Precedence Diagramming Method (PDM) Software Engineering 25/42 2007-8-31
Precedence Diagramming Method (PDM) Software Engineering 26/42 2007-8-31
Software Engineering 27/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 27/42 2007-8-31
Activity Resource Estimating Before estimating activity durations, you must have a good idea of the quantity and type of resources(people, equipment, and materials) that will be assigned to each activity. Consider important issues in estimating resources: How difficult will it be to complete specific activities on this project? What is the organization’s history in doing similar activities? Are the required resources available? A project’s activity list, activity attributes, project management plan, enterprise environment factors, organization process assert, and resource availability information are all important input to answering these questions. Software Engineering 28/42 2007-8-31
Software Engineering 29/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 29/42 2007-8-31
Activity Duration Estimating Software Engineering 30/42 2007-8-31
Activity Duration Estimating 原因分析 项目延期的原因是多方面的,一个最有可能的原因是对活动工期的估计不准确造成的。 案例描述中,系统设计时间较少,编码时间过于充足。 活动历时估计 所谓工期是指活动持续的时间,而整个项目的持续时间称为总工期。活动历时估计是制定项目计划的基础,直接关系到各活动时间的计算和完成整个项目的总时间。 活动时间估计太短,会造成被动紧张的局面;活动时间估计太长,会使整个项目工期拉长,从而增加项目的总成本。 Duration includes the actual amount of time worked on an activity plus elapsed time. Software Engineering 31/42 2007-8-31
Activity Duration Estimating 影响活动工期的主要因素 意外事件:如客户需求变化、骨干成员生病或离开等; 小组成员的工作熟练程度与工作效率 资源供应情况 在给定的资源条件和努力水平下,某项任务可能在一定时间内完成,当投入更多资源或更加努力的情况下,完成同样任务需要的时间可能缩短,反之则加长。 没有一个人能把100%的时间用到工作上! 最多为80%,需要考虑休息和非项目工作等花费的时间; 非项目管理工作:如参加会议、讨论交流等。 Software Engineering 32/42 2007-8-31
Activity Duration Estimating 活动工期的估算方法 类比法 对照以前的经验,或比较以往类似项目的档案资料,根据以前类似项目的实际工作时间来推测当前项目的各工作时间。 专家判断法 邀请相关专家来判断执行项目各活动所需的时间。 Delphi方法:首先专家采用匿名或背靠背的方式,独立自由地作出判断,然后将专家的意见分类统计和归纳,再征求专家意见并进一步修改,最终形成一致的结果。 资料统计法 根据行业标准或定额,计算活动的历时时间。 经验公式:(乐观估计+4×最有可能估计+悲观估计)/6 Software Engineering 33/42 2007-8-31
Software Engineering 34/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 34/42 2007-8-31
Software Engineering 35/42 Schedule Development Schedule development uses results of the other time management processes to determine the start and end date of the project and its activities. 编制进度计划应考虑 资源平衡:以最有效的方式使用项目的资源; 资源库的现状:现有什么资源、项目每一时刻需要什么资源、什么资源何时可用等; 制约因素:市场竞争、客户要求等导致某些工作必须在某些时刻完成。 Important tools and techniques include Gantt charts, PERT analysis, critical path analysis, and critical chain scheduling. Software Engineering 35/42 2007-8-31
Critical Path Method(CPM) A critical path for a project is the series of activities that determines the earliest time by which the project can be completed. The critical path is the longest path through the network diagram and has the least amount of slack or float(具有最少的浮动时间或时差). Determining the Critical Path for Project X Software Engineering 36/42 2007-8-31
Critical Path Method(CPM) Terms 最早开始时间(ES, early start date) 某项活动能够开始的最早时间; 在项目的预计开始时间和前面的活动工期的基础上计算。 最早结束时间(FS, early finish date) 某项活动能够完成的最早时间; 用该活动的最早开始时间加上该活动的工期计算。 最晚结束时间(LF,late finish date) 为了使项目在规定的时限内完成,某活动必须完成的最迟时间; 在项目的完成时间和后续活动工期的基础上计算。 最晚开始时间(LS,late start date) 为了使项目在规定的时限内完成,某活动必须开始的最迟时间; 用该活动的最晚结束时间减去该活动的工期计算。 Software Engineering 37/42 2007-8-31
Critical Path Method(CPM) Terms(Cont.) 浮动时间(float time) 如果最晚开始时间大于最早开始时间,说明该活动在时间上有一定的灵活性。 浮动时间=最晚开始时间-最早开始时间或者 浮动时间=最晚结束时间-最早结束时间 领先时间(lead time) 在活动的逻辑关系中允许提前后续活动的时间。 如FS关系中,后续活动在前导活动结束前10天就开始。 滞后时间(lag time) 在活动的逻辑关系中表示推迟后续活动的时间。 如FS关系中,后续活动只能在前导活动结束10天后才能开始。 Software Engineering 38/42 2007-8-31
Critical Path Method(CPM) Software Engineering 39/42 2007-8-31
Critical Path Method(CPM) Software Engineering 40/42 2007-8-31
Critical Path Method(CPM) Software Engineering 41/42 2007-8-31
Critical Path Method(CPM) Software Engineering 42/42 2007-8-31
Critical Path Method(CPM) 问题:浮动时间有什么用? 有人认为:应尽早结束包含浮动时间的任务,以便把资源转移到关键路径上,缩短关键路径。 这种看法正确吗? 分析:所有活动的工期都是估计的,估计本身存在不准确的风险。 非关键路径上的浮动时间可用于应付不可预见的问题,或者弥补估计的错误; 如果某个活动不太重要,又有浮动时间,不妨安排新手去做,作为训练新人的机会。 Software Engineering 43/42 2007-8-31
Critical Path Method(CPM) 如果客户要求20天完工,怎么办? Software Engineering 44/42 2007-8-31
Using the Critical Path to Shorten a Project Schedule Shortening durations of critical tasks for adding more resources or changing their scope. Crashing tasks by obtaining the greatest amount of schedule compression for the least incremental cost Fast tracking tasks by doing them in parallel or overlapping them 快速跟进(fast tracking) 调整活动之间的逻辑关系,变FS为SS。 例如:设计和编程交叉进行 赶工期(crashing) 平衡成本与进度,以达到以最低的增加成本进行最大限度的进度压缩。 例如:加班加点、投入更多资源、提高效率、任务外包等。 Software Engineering 45/42 2007-8-31
Importance of Updating Critical Path Data It is important to update project schedule information to meet time goals for a project. The critical path may change as you enter actual start and finish dates. If you know the project completion date will slip, negotiate(协商) with the project sponsor. Software Engineering 46/42 2007-8-31
Critical Chain Scheduling It is a method of scheduling that takes limited resources into account when creating a project schedule and includes buffers to protect the project completion date. It assumes resources do not multitask because it often delays task completions and increases total durations. Multitasking Software Engineering 47/42 2007-8-31
Buffers and Critical Chain A buffer is additional time to complete a task.为完成任务增加额外的时间 Murphy’s Law states that if something can go wrong, it will. Parkinson’s Law states that work expands to fill the time allowed.帕金森定律指出,工作会自动地膨胀占满所有可用的时间时间管理隐含着你可以为一项任务安排过多的时间,如果你给自己安排了充裕的时间从事一项工作,你会放慢你的节奏以便用掉所有分配的时间。 In traditional estimates, people often add a buffer to each task and use the additional time whether it’s needed or not. Critical chain scheduling removes buffers from individual tasks and instead creates: A project buffer or additional time added before the project’s due date. Feeding buffers(供给缓冲) or additional time added before tasks on the critical path. Software Engineering 48/42 2007-8-31
Example of Critical Chain Scheduling Software Engineering 49/42 2007-8-31
Program Evaluation and Review Technique (PERT)计划评审技术 PERT is a network analysis technique used to estimate project duration when there is a high degree of uncertainty about the individual activity duration estimates.当具体活动历时估算存在很大不确定性时,用来估算项目历时的一种网络分析技术。 PERT uses probabilistic time estimates(概率时间估算) based on using optimistic, most likely, and pessimistic estimates of activity durations. Software Engineering 50/42 2007-8-31
Software Engineering 51/42 Gantt Charts Gantt charts provide a standard format for displaying project schedule information by listing project activities and their corresponding start and finish dates in a calendar format. Symbols for Gantt charts A black diamond milestones or significant events on a project with zero duration Thick black bars summary tasks Lighter horizontal bars tasks Arrows dependencies between tasks Software Engineering 51/42 2007-8-31
Software Engineering 52/42 Gantt Charts Software Engineering 52/42 2007-8-31
Sample Tracking Gantt Chart Software Engineering 53/42 2007-8-31
Software Engineering 54/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 54/42 2007-8-31
Software Engineering 55/42 Schedule Control 项目进度控制是监控项目在时间上的变化,并与计划进度进行比较,一旦实际进度落后于计划进度,则采取纠正措施,以保证项目的正常进行。 项目进度控制的过程 建立进度基线 跟踪和记录项目的实际进展 计算偏差 采取补救措施 建立进度基线是项目进度控制的基准,如果缺乏比较的基准,或者总是以最近更新的计划为基准来衡量项目的进展,那么你极有可能失去对进度的控制。 Software Engineering 55/42 2007-8-31
Software Engineering 56/42 Schedule Control 跟踪和记录项目的实际进展 跟踪项目进度时,必须同时考虑项目的范围、时间、成本和质量四个目标。 如果你在检查一个软件开发项目的进度,开发人员本来估计今天完成1000行代码,但实际只完成了800行,那么他的任务只完成了80%吗? 不见得,也许需要重做。 计算偏差 进度偏差可以用活动的延误时间计算出来,也可以通过估算后续活动的剩余浮动时间推算出来。 应当分析和确定活动的延误对项目进度的影响程度。 Software Engineering 56/42 2007-8-31
Software Engineering 57/42 Schedule Control 采取补救措施 当项目进度将要或已经拖期时,可以采取一些补救措施将工期赶回来,或者减少拖期的影响。 补救措施:快速跟进、赶工期、改变计划基线、重新谈判 Software Engineering 57/42 2007-8-31
Working with People Issues Strong leadership helps projects succeed more than good PERT charts do. Project managers should use: Empowerment (授权) Incentives (激励) Discipline (纪律) Negotiation (谈判) Software Engineering 58/42 2007-8-31
Software Engineering 59/42 Outline Opening case The importance of project schedules Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Using software to assist in project time management Software Engineering 59/42 2007-8-31
Software Engineering 60/42 自学 Software Engineering 60/42 2007-8-31
Software Engineering 61/42 Chapter Summary Project time management is often cited as the main source of conflict on projects, and most IT projects exceed time estimates. Main processes include: Activity definition Activity sequencing Activity resource estimating Activity duration estimating Schedule development Schedule control Software Engineering 61/42 2007-8-31