软件项目管理
软件项目管理是将规划、组织、估算和控制技术应用于软件项目,以在可接受的成本、进度和质量范围内交付正确的产品。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
软件项目管理是一门规划、监控和控制软件项目的人员、流程和资源以实现其范围、进度、成本和质量目标的学科。
Scope
该领域涵盖工作量和成本估算;进度安排和规划;风险管理;团队组织和软件工作中的人为因素;配置和变更管理;软件质量管理;用于跟踪进度的测量和度量;以及将软件管理与其他工程项目区分开来的独特经济学和协调挑战。
Sub-topics
Core questions
- 如何在不确定性下估算软件的工作量、成本和进度?
- 如何在项目过程中识别、优先排序和缓解风险?
- 团队结构和沟通如何影响生产力?
- 如何在整个项目中控制变更和质量?
Key theories
- 布鲁克斯法则与团队经济学
- 布鲁克斯观察到,向一个延期的软件项目增加人员会使其进一步延期,因为沟通和入职开销的增长速度快于增加的容量,这突出表明软件工作量并非简单可分。
- 算法成本估算
- COCOMO等模型将工作量和进度估算为规模和项目因素的函数,提供可重复、可校准的估算,补充了专家判断和基于类比的方法。
Clinical relevance
健全的项目管理决定了软件能否按时、按预算并以足够的质量交付;糟糕的估算、未受控的风险以及忽视团队的非线性经济学是软件项目失败和超支的主要原因。
Evidence & guidelines
SWEBOK软件工程管理知识领域和PMBOK指南提供了共识框架,ISO/IEC/IEEE 16326等标准则涉及软件的项目管理规划。
History
布鲁克斯于1975年从1960年代的大型项目中提炼出深刻的经验教训,形成了持久的管理原则;波姆于1981年将软件经济学和成本估算形式化;此后,该领域融入了风险管理、度量以及敏捷方法中更轻量级的自适应规划。
Debates
- 预测性与自适应项目管理
- 关于软件项目是最好通过详细的预先计划还是通过自适应的、基于迭代的控制来管理,存在争议;敏捷方法倾向于经验控制和频繁重新规划,而传统管理则强调基线计划,混合方法也很常见。
Key figures
- Frederick Brooks
- Barry Boehm
- Tom DeMarco
- Watts Humphrey
Related topics
Seminal works
- brooks1995
- boehm1981
- swebok2014
Frequently asked questions
- 为什么向一个延期的项目增加人员会使其进一步延期?
- 新成员需要时间熟悉情况,并且沟通路径的数量大致随团队规模的平方增长;由此产生的开销和干扰最初会降低而非增加产出,这一观察被称为布鲁克斯法则。
- 为什么软件估算如此困难?
- 软件是无形的、通常是新颖的,并且受不断变化的需求影响,因此历史类比并不完美,不确定性很高;严谨的估算结合了模型、专家判断和范围,而不是单一的猜测,以管理这种不确定性。