软件项目管理基本概念
软件项目管理基本概念
软件项目管理基本概念(项目,项目特征,软件项目,项目管理)
项目: 是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。 (唯一性和临时性)
唯一性: 每个项目都是不相同的,有相似的项目,但没有两个完全相同的项目。
临时性: 有时间属性,要求在一定的时间内完成。
项目特征:
- 有明确的目标
- 项目活动之间具有相关性
- 限定的周期
- 有独特性
- 资源成本的约束性
- 项目的不确定性
项目与日常运作
项目(Project)与项目集(Programs)
软件项目: 逻辑实体,相互作用的系统,渐进明细,变更。
项目管理: 是一系列的伴随着项目的进行而进行的,目的是为了确保项目能够达到期望的结果的一系列管理行为。
软件项目管理: 软件项目管理是软件工程的组成部分,确保软件项目满足预算成本等约束,提交高质量软件产品。
软件项目管理基础: 项目管理,软件项目,经验,技巧…
PMBOK与软件项目管理知识体系
PMBOK(Project Management Body Of Knowledge): 项目管理知识体系。
PMBOK体系图
五大过程组
10知识域
- 范围管理(Scope Mgt):确定必须完成的工作。
- 进度管理(Schedule Mgt):管理项目的时间。
- 成本管理(Cost Mgt):管理项目费用。
- 质量管理(Quality Mgt):高质量完成。
- 资源管理(Resource Mgt):各种资源。
- 沟通管理(Comm Mgt):团队沟通。
- 风险管理(Risk Mgt):不确定性。
- 采购管理(Procurement Mgt):采购产品和服务。
- 干系人(Stakeholder Mgt):左右项目成败。
- 集成管理(Intergration Mgt):知识域都是相互关联的。
PMBOK知识架构
软件项目管理知识体系
敏捷项目管理
传统软件开发面临的挑战: 质量问题,测试问题,用户问题,进度问题,成本问题,团队沟通问题。
快速软件开发:
- 快速变化的商业环境
- 快速的开发和交付至关重要
- 快速的开发和交付现在通常是软件系统最重要的需求
敏捷模型:
- 敏捷组织提出的一个灵活快速开发方法
- 应对迅速变化需求的快速软件的开发方法
- 是一种迭代,循序渐进的开发方法
敏捷宣言:
- 个体和互动高于流程和工具
- 可工作的软件高于详尽的文档
- 客户合作高于合同谈判
- 响应变化高于遵循计划
敏捷原则:
- 尽早,持续提交有价值的软件
- 即使到了开发后期,也欢迎改变需求,敏捷过程利用适应变化来为客户创造竞争优势
- 经常性地交付可以工作的软件,交付间隔越短越好
- 项目开发期间,业务人员和开发人员尽可能在一起工作
- 围绕被激励起来的个体组成团队来构建项目,给他们提供所需环境和支持,并信任他们
- 在团队内部及团队之间,最有效的传递信息方式:面对面交流
- 可以工作的软件是首要的进度度量标准
- 敏捷过程体长平稳开发,发起者,开发者和用户应保持长期,恒定的开发速度
- 不断关注优秀技能和好的设计会增强敏捷的能力
- 简单使未完成的工作最大化的艺术是根本的
- 最好的架构,需求和设计出自于自组织的团队
- 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后调整自己的行为