具体描述
《软件项目管理(英文版·第5版)》是经典的项目管理课程教材。本版延续上一版清晰、易懂的叙述风格,采用步进式策划方法逐一分析了软件开发的各个环节,并通过丰富的实例和练习来阐明实践过程中软件项目管理的原则。《软件项目管理(英文版·第5版)》不仅适合作为计算机及相关专业的本科生和研究生的教材,而且适合于软件项目管理人员和软件开发人员阅读,还特别适合作为BCS/ISEB专业考试的参考书。为了涵盖软件项目管理的新进展,本版进行了全面更新,新增和扩展的主题如下:沟通策划。敏捷方法,包括XP(极限编程)、Scrum 和 DSDM。COCOMO II。项目组合管理。新增一章,主要是关于合作、分散和虚拟团队管理。职业道德规范。
作者简介
Bob Hughes曾在产业界和高等教育界担任各种职务,现在是英国布莱顿大学信息管理学院信息系统部的负责人。他还是BCS/ISEB项目管理认证考试的主考官和相关培训课程的主讲老师。
Mike Cotterell曾是英国布莱顿大学信息管理学院的高级讲师。
目录信息
Guided tour
Acknowledgements
I Introduction to software project management
1.1 Introduction
1.2 Why is software project management important?
1.3 What is a project?
1.4 Software projects versus other types of project
1.5 Contract management and technical project management
1.6 Activities covered by software project management
1.7 Plans, methods and methodologies
1.8 Some ways of categorizing software projects
1.9 Stakeholders
1.10 Setting objectives
1.11 The business case
1.12 Project success and failure
1.13 What is management?
1.14 Management control
1.15 Conclusion
Annex 1 Contents list for a project plan
1.16 Further exercises
2 Project evaluation and programme management
2.1 Introduction
2.2 A business case
2.3 Project portfolio management
2.4 Evaluation of individual projects
2.5 Cost-benefit evaluation techniques
2.6 Risk evaluation
2.7 Programme management
5.8 Managing the allocation of resources within programmes
2.9 Strategic programme management
2.10 Creating a programme
2.11 Aids to programme management
2.12 Some reservations about programme management
2.13 Benefits management
2.14 Conclusion
2.15 Further exercises
3 An overview of project planning
3.1 Introduction to Step Wise project planning
3.2 Step O: Select project
3.3 Step 1: Identify project scope and objectives
3.4 Step 2: Identify project infrastructure
3.5 Step 3: Analyse projec characteristics
3.6 Step 4: Identify project products and activities
3.7 Step 5: Estimate effort for each activity
3.8 Step 6: Identify activity risks
3.9 Step 7: Allocate resources
3.10 Step 8: Review/publicize plan
3.11 Steps 9 and10: Execute plan/lower levels of planning
3.12 Conclusion
3.13 Further exercises
4 Selection of an appropriate project approach
4.1 Introduction
4.2 Build or buy?
4.3 Choosing methodologies and technologies
4.4 Choice of process models
4.5 Structure versus speed of delivery
4.6 The waterfall model
4.7 The spiral model
4.8 Software prototyping
4.9 Other ways of categorizing prototypes
4.10 Incremental delivery
4.11 Agile methods
4.12 Atern/Dynamic Systems Development Method
4.13 Extreme programming (XP)
4.14 Managing iterative processes
4.15 Selecting the most appropriate process model
4.16 Conclusion
4.17 Further exercises
5 Software effort estimation
5.1 Introduction
5.2 Where are estimates done?
5.3 Problems with over- and under- estimates
5.4 The basis for software estimating
5.5 Software effort estimation techniques
5.6 Bottom-up estimating
5.7 The top-down approach and parametric models
5.8 Expert judgement
5.9 Estimating by analogy
5.10 Albrecht function point analysis
5.11 Function points Mark Il
5.12 COSMIC full function points
5.13 COCOMO 13: a parametric productivity model
5.14 Conclusion
5.15 Further exercises
6 Activity planning
6.1 Introduction
6.2 The objectives of activity planning
6.3 When to plan
6.4 Project schedules
6.5 Projects and activities
6.6 Sequencing and scheduling activities
6.7 Network planning models
6.8 Formulating a network model
6.9 Adding the time dimension
6.10 The forward pass
6.11 The backward pass
6.12 Identifying the critical path
6.13 Activity float
6.14 Shortening the project duration
6.15 Identifying critical activities
6.16 Activity-on-arrow networks
6.17 Conclusion
6.16 Further exercises
7 Risk management
7.1 Introduction
7.2 Risk
7.3 Categories of risk
7.4 A framework for dealing with risk
7.5 Risk identification
7.6 Risk assessment
7.7 Risk planning
7.8 Risk management
7.9 Evaluating risks to the schedule
7.10 Applying the PERT technique
7.11 Monte Carlo simulation
7.12 Critical chain concepts
7.13 Conclusion
7.14 Further exercises
8 Resource allocation
8.1 Introduction
8.2 The nature of resources
8.3 Identifying resource requirements
8.4 Scheduling resources
8.5 Creating critical paths
8.6 Counting the cost
8.7 Being specific
8.8 Publishing the resource schedule
8.9 Cost schedules
8.10 The scheduling sequence
8.11 Conclusion
8.12 Further exercises
9 Monitoring and control
9.1 Introduction
9.2 Creating the framework
9.3 Collecting the data
9.4 Visualizing progress
9.5 Cost monitoring
9.6 Earned value analysis
9.7 Prioritizing monitoring
9.8 Getting the project back to target
9.9 Change control
9.10 Conclusion
9.11 Further exercises
10 Managing contracts
10.1 Introduction
10.2 Types of contract
10.3 Stages in contract placement
10.4 Typical terms of a contract
10.5 Contract management
10.6 Acceptance
10.7 Conclusion
10.8 Further exercises
11 Managing people in software environments
11.1 Introduction
11.2 Understanding behaviour
11.3 Organizationbehaviour: a backgrou nd
11.4 Selecting the right person for the job
11.5 Instruction in the best methods
11.6 Motivation
11.7 TheOIdham Hackman job characteristics nrodel
11.8 Stress
11.9 Health and safety
11.10 Some ethical and professional concerns
11.11 Conclusion
11.12 Further exercises
12 Working in teams
12.1 Introduction
12.2 Becoming a team
12.3 Decision making
12.4 Organizational structures
12.5 Coordination dependencies
12.6 Dispersed and virtual teams
12.7 Communication genres
12.8 CommunicationpJans
12.9 Leadership
12.10 Conclusion
12.11 Further exercises
13 Software quality
13.1 hrtroduc'tion
13.2 iheplaceofsoftwarequalityin project planning
13.3 The importance of software quality
13.4 Defining software quality
13.5 ISO 9126
13.6 Product versus process quality management
13.7 Quality management systems
13.8 Process capability models
13.9 Techniques to help enhance software quality
13.10 resting
13.11 Quality plans
13.12 Conclusion
13.13 Further exercises
Appendix A PRINCE2 - an overview
Appendix B Answer pointers
Further reading
Index
· · · · · · (收起)
读后感
用户评价
读完这本书,我最大的感受是项目管理不再是枯燥的理论,而是一门实用且充满智慧的艺术。作者在书中不仅仅停留在方法的介绍,更重要的是强调了项目经理在“人”和“情商”方面的重要性。我过去常常过于注重技术和流程,而忽略了团队成员的情感需求和沟通的艺术。书中关于“领导力”、“冲突管理”和“团队激励”等方面的论述,让我深刻认识到,一个成功的项目经理不仅要有扎实的专业知识,更要有高超的人际交往能力和领导才能。作者通过大量的案例分析,生动地展示了如何在实际的项目场景中运用项目管理的原则和工具,并处理各种复杂的人际关系和突发事件。我尤其欣赏书中关于“情商在项目管理中的应用”的讨论,它让我明白了如何通过理解和管理自己的情绪,以及洞察他人的情绪,来建立更和谐的团队关系,更有效地化解矛盾,并最终推动项目朝着预期的目标前进。这本书不仅教会了我“做什么”,更教会了我“如何做”,以及在做的过程中如何“做人”。它让我更加热爱项目管理这一职业,并对未来的项目充满了期待。
从一个项目经理的角度来看,这本书在项目启动和规划阶段的论述堪称教科书级别的。我一直认为,一个成功的项目,其成功率在很大程度上取决于启动和规划阶段的质量。书中关于项目目标设定的SMART原则的详细阐述,让我重新审视了团队过去在目标设定上的模糊和不切实际。我尤其欣赏作者在“项目范围定义”部分的处理方式,不仅仅是列出要做什么,更重要的是要明确“不做什么”,并且如何有效地冻结范围,避免项目过程中无休止的范围蔓延。书中提到的“工作分解结构(WBS)”工具,通过层次分明的结构化方式,将复杂的项目分解为可管理的小单元,这对于团队成员理解项目全貌、明确各自职责至关重要。我过去常常在项目执行过程中,团队成员对项目目标和范围感到困惑,导致资源分配不均、任务重叠等问题。通过学习WBS,我理解了如何将项目目标转化为一系列可交付的成果,并进一步分解为具体的工作包,这为后续的进度安排、资源估算和成本控制提供了坚实的基础。书中还详细介绍了不同类型的项目生命周期模型,如瀑布模型、敏捷模型等,并对它们的适用场景进行了深入分析,这对于我选择最适合当前项目的管理模型提供了重要的参考。读到这里,我仿佛看到了一个清晰的项目蓝图在我眼前展开,每一个环节都清晰可见,每一个任务都井然有序,这让我对项目的掌控力有了前所未有的信心。
在成本管理方面,这本书提供了非常系统和全面的指导,让我对项目的经济效益有了更深刻的认识。过去,我常常在项目预算方面缺乏精细的规划,导致成本超支,影响项目的盈利能力。作者在书中从成本估算、成本预算到成本控制,层层深入地讲解了成本管理的各个环节。我尤其欣赏书中关于“成本估算技术”的介绍,它详细阐述了专家判断法、类比估算法、参数估算法以及三点估算法等多种方法的原理和应用。这些方法让我能够根据项目的具体情况,选择最合适的估算技术,从而提高估算结果的准确性。书中还详细介绍了“成本预算”的编制过程,以及如何将项目总成本分解到各个工作包和活动中,为项目的成本控制奠定了基础。更让我受益匪浅的是“成本控制”章节,它不仅介绍了如何跟踪实际成本,还提供了多种方法来识别成本偏差,并采取纠正措施,以确保项目在预算范围内完成。例如,书中提到的“成本基准”和“挣值管理”等概念,为我提供了一种量化的方法来评估项目的成本绩效。通过学习,我认识到成本管理并非仅仅是简单的数字计算,而是贯穿项目始终的精细化管理过程,需要项目经理具备敏锐的成本意识和卓越的成本控制能力,从而最大限度地实现项目的经济效益。
质量管理是软件开发中至关重要的一环,这本书在这方面的论述让我耳目一新,颠覆了我以往的一些认知。我常常在项目后期才发现质量问题,导致返工和延期,给团队带来了巨大的压力。作者在书中强调了“质量是设计出来的,不是测试出来的”这一理念,让我深刻认识到质量管理应该贯穿项目的全生命周期。书中详细介绍了“质量规划”的方法,包括如何定义质量标准、选择质量度量指标以及制定质量保证和质量控制的策略。我尤其欣赏书中关于“质量保证”的讲解,它不仅仅是简单的流程检查,而是通过系统性的方法来预防缺陷的产生。例如,书中提到的“同行评审”、“代码审查”和“过程改进”等实践,都为我提供了切实可行的质量保障手段。此外,作者在“质量控制”方面,也给出了非常实用的指导,包括如何进行缺陷跟踪、根本原因分析以及制定纠正和预防措施。我印象深刻的是书中关于“统计质量控制”的介绍,它提供了一种基于数据分析的方法来监控和改进质量。读到这里,我仿佛看到了一个高效的质量管理体系在我眼前构建,每一个环节都充满了对质量的敬畏,每一个团队成员都将质量视为己任,共同打造出高品质的软件产品。
项目进度管理一直是我工作中一个充满挑战的环节,这本书在这方面提供了非常详细且实用的指导。我过去常常为了赶进度而牺牲质量,或者由于进度估算不准确而导致项目延期,给团队和客户都带来了不必要的压力。作者在书中详细介绍了多种进度管理技术,如甘特图、关键路径法(CPM)和计划评审技术(PERT)等,并对它们的应用场景进行了清晰的划分。我尤其欣赏书中关于“进度计划制定”的讲解,它强调了任务分解、依赖关系分析和持续时间估算的重要性。通过学习,我理解了如何将项目的工作分解结构(WBS)转化为实际的进度计划,并识别出项目中的关键路径,从而将有限的资源和精力集中在最重要的任务上。书中还详细阐述了“进度监控与控制”的方法,包括如何进行进度跟踪、偏差分析以及制定纠正措施。我印象深刻的是关于“挣值管理(EVM)”的介绍,它提供了一种量化项目绩效的方法,通过将进度、成本和范围结合起来,更准确地评估项目的健康状况。读到这里,我仿佛拥有了一张精确的项目时间表,能够提前预知潜在的进度风险,并及时采取措施,确保项目按时高质量地交付。
项目收尾是项目生命周期中容易被忽视却又至关重要的环节,这本书在这方面的论述让我对项目收尾有了全新的认识。我过去常常在项目交付之后,就草草了事,忽略了许多重要的收尾工作,导致经验无法沉淀,项目成果无法最大化利用。作者在书中详细阐述了项目收尾的各个方面,包括项目成果的最终验收、合同的关闭、资源的释放以及经验教训的总结。我尤其欣赏书中关于“项目审计”和“经验教训总结”的讲解。项目审计帮助我们客观地评估项目的绩效,找出成功和失败的经验,而经验教训的总结则是将这些宝贵的经验转化为未来项目改进的动力。书中提供的“经验教训报告”模板,让我能够系统地记录项目过程中的亮点和不足,并提出改进建议,这对于团队的持续学习和成长具有极其重要的意义。此外,作者在“项目收尾报告”的编写方面,也给出了详细的指导,包括如何清晰地呈现项目的最终成果、绩效指标以及项目过程中遇到的挑战和解决方案。读到这里,我仿佛看到了一个完整的项目生命周期在我眼前画上圆满的句号,每一个项目都能够从中汲取养分,不断进步,从而在未来的竞争中立于不败之地。
在项目执行过程中,风险管理是我一直头疼的问题。很多时候,我们都是在问题发生之后才去补救,而这本书却从“预防为主”的角度,为我提供了一套系统的风险管理框架。作者在“项目风险识别”部分,列举了大量的常见风险类型,从技术风险、管理风险到外部环境风险,覆盖面之广让我大开眼界。我过去常常忽略一些潜在的风险,导致问题一旦爆发,就措手不及。书中详细介绍了风险识别的方法,如头脑风暴、德尔菲法、SWOT分析等,并强调了团队协作在风险识别中的重要性。更重要的是,作者在“风险分析和量化”部分,引入了定性风险分析和定量风险分析的概念,并教授如何评估风险发生的可能性和影响程度,从而对风险进行优先级排序。我特别喜欢书中关于“风险应对策略”的论述,它不仅仅是简单地列出应对措施,而是详细讲解了规避、转移、减轻和接受四种策略的应用场景和具体方法。例如,在面对某个技术风险时,书中提供的“提前进行技术验证”或“寻找替代技术方案”等建议,都非常具有操作性。通过学习,我认识到风险管理并非遥不可及的理论,而是可以融入项目日常管理的具体实践,通过前瞻性的思考和周密的计划,最大限度地降低项目失败的可能性,为项目目标的实现保驾护航。
这本书在“沟通与协作”方面的讲解,可以说是直击我作为团队领导者的痛点。我曾无数次地发现,即使团队成员能力都很强,但由于沟通不畅、信息不对称,项目仍然会陷入困境。作者在书中强调,沟通是项目管理的核心生命线,并详细阐述了不同沟通渠道的优缺点,如会议、邮件、即时通讯工具等,并给出了如何在不同场景下选择最有效的沟通方式。我尤其欣赏书中关于“干系人管理”的论述,它不仅定义了干系人,更重要的是教我们如何识别干系人的需求、期望和影响力,并制定相应的沟通策略,以获得他们的支持和理解。书中提供的“干系人分析矩阵”工具,让我清晰地认识到,并非所有干系人都需要同等程度的关注,而是要根据他们的影响力和利益,采取差异化的管理策略。此外,作者在“团队建设与激励”方面的建议也给我留下了深刻的印象。书中提到了多种激励机制,如表彰、奖励、职业发展机会等,并强调了营造积极向上团队氛围的重要性。读到这里,我仿佛看到了一个和谐、高效的团队在我眼前运转,成员之间信息流畅,合作无间,共同朝着项目目标迈进。这对于我建立更强大的团队凝聚力,提升团队整体战斗力,具有极其重要的指导意义。
这本书的封面设计非常吸引人,简洁大方的蓝色背景搭配着沉稳的字体,一眼望去就给人一种专业、可靠的感觉。我是一名刚入职的软件开发新人,对项目管理的概念和实践知之甚少,常常在团队协作中感到力不从心,对项目进度、风险控制更是毫无概念。在同事的推荐下,我入手了这本《软件项目管理》,抱着学习的心态翻开了第一页。初读之下,就被书中清晰的逻辑和循序渐进的讲解所吸引。作者并没有一开始就抛出晦涩难懂的理论,而是从项目管理的基石——“需求”开始,深入浅出地阐述了如何准确地收集、分析和管理需求,以及需求变更对项目的影响。我印象最深刻的是关于“用户故事”的讲解,作者用生动的例子说明了如何将宏观的需求拆解成具体、可执行的用户故事,这让我第一次对“以用户为中心”的项目管理有了具象的理解。书中还详细介绍了不同类型的需求规格说明书,比如功能性需求、非功能性需求、性能需求等,并给出了具体的编写模板和注意事项,这对于我这样经验不足的初学者来说,简直是救星。我常常在思考,为什么我们之前开发的软件会出现各种各样的问题,现在看来,很多都是源于需求阶段的疏忽。这本书让我认识到,需求管理并非一蹴而就,而是贯穿项目始终的动态过程,需要项目经理、开发团队、测试团队乃至客户的共同努力。我迫不及待地想将书中所学的知识运用到实际工作中,去尝试更好地理解和定义项目需求,为项目的成功奠定坚实的基础。
这本书在“敏捷项目管理”方面的论述,为我打开了全新的视野,让我对现代软件开发模式有了更深入的理解。我一直认为传统的瀑布模型已经无法适应快速变化的市场需求,而敏捷方法则正好契合了这一痛点。作者在书中详细介绍了敏捷宣言的价值观和原则,并深入阐述了Scrum、Kanban等主流敏捷框架。我尤其欣赏书中关于“Scrum框架”的讲解,它将复杂的敏捷概念具体化为一系列可操作的实践,如冲刺(Sprint)、产品待办列表(Product Backlog)、冲刺待办列表(Sprint Backlog)、每日站会、评审会议和回顾会议等。这些实践让我能够清晰地理解敏捷开发的工作流程,并知道如何在团队中落地实施。书中还详细介绍了“敏捷团队的角色”,如产品负责人、Scrum Master和开发团队,并阐述了他们各自的职责和协作方式,这对于我组建和管理敏捷团队提供了重要的指导。此外,作者在“敏捷度量”方面的论述也让我印象深刻,它强调了通过“燃尽图”、“速度图”等工具来跟踪项目进展和预测交付时间。读到这里,我仿佛看到了一个灵活、高效、响应迅速的敏捷团队在我眼前运作,能够快速适应变化,持续交付价值,并最终赢得客户的满意。