🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀软件测试与软件项目管理_十二月的猫的博客-CSDN博客💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
1. 前言
从今天开始,猫猫来带大家学习一下软件项目管理。也许有的人会很奇怪说,“猫猫你不是读人工智能的研究生嘛,为什么要研究软件项目管理呀”。这里猫猫想说:1、猫猫并没有深入研究软件项目管理(学习和研究是有很大的区别的);2、谁说研究深度学习,我们就接触不到软件项目管理的知识了。总之,猫猫认为这是我们计算机从业者必备的基础知识!!!未来不论从事哪一个计算机领域,甚至跨出了计算机领域,项目管理都是我们必须要学习的技能呀🥰🥰
2. 软件项目管理基本概念
2.1 项目与软件项目
2.1.1 项目
- 是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。
- 是以一套独特而相互联系的任务为前提,有效利用资源,在一定时间内满足一系列特定目标的多项相关工作的总称。
是什么——临时性努力
怎么做——利用资源且在一定时间内完成
为了什么——创造产品或提供服务(完成多个相互联系的任务)
2.1.2 项目的特征
根据项目的定义,我们不难归纳出项目有一下基本特征:
- 目标性:项目要完成哪些工作。
- 相关性:项目的子任务之间是相互关联的。
- 临时性:项目存在时限,是一次性的。
- 资源约束性:范围、成本、质量等
- 不确定性:项目开发中存在变更。变更是软件项目中常见现象,需求,设计,技术,社会。
- 独特性:独特性是项目的目标。独特性和临时性决定了项目开发是渐进明细的。
特征:用来描述对象的角度。可以说通过对特征的描述,我们就能够区分出不同的对象。特征和对象本身有关,因此对象本身的定义就能够限制特征
当然还有其他特殊特征:
- 抽象性:软件是逻辑实体,并不是实际存在的。
- 复杂性:软件规模越来越大因此就越来越复杂。
举个例子:
2.1.3 项目与日常工作的区别
- 时限:项目是一次性的,日常运作是重复进行的
- 目的:项目是以结束项目为导向的,日常运作是为了维持运营
- 负责人和组织:项目是通过与项目经理及其团队工作完成的,而日常运作是职能式的线性管理
- 目标:项目存在大量的变更管理,而日常运作基本保持持续的连贯性的
目标:是努力的方向。项目追求独特性的创新,运营追求稳定的重复性。
目的:是这个东西最终的去向。项目存在的目的就是结束,运营存在的目的就是持续赚钱。
2.1.4 项目的分类
- 封闭性项目和开放式项目
- 业务项目和自我开发项目
- 企业项目、政府项目和非盈利机构的项目
- 盈利性项目和非盈利性项目
2.1.5 项目的层次分解
- 项目组合->项目集->项目->子项目(->任务->活动)
2.1.6 项目目标实现的制约因素
四因素:项目范围、成本、进度计划、客户满意度
制约因素:就是影响项目目标实现最重要的几个方面。可以认为就这几个因素影响了项目是否实现目标,因此我们衡量项目是否实现目标就看这几个因素。
衡量项目是否成功,应该看该项目是否在工程允许范围内按照成本预算和进度计划,生产出客户满意的产品
2.1.7 软件项目中的要素组成
- 软件开发的过程
- 软件开发的结果
- 软件开发赖以生存的资源
- 软件项目的特定委托人(客户):需求者、资金提供者
要素组成:软件项目管理中需要被管理的部分(过程、结果、资源、委托人),这些部分也就是衡量我们管理质量的重要因素。
2.2 项目管理
2.2.1 定义
指在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人(stakeholder)的需要和期望。
2.2.2 项目干系人
指参与项目和受项目活动影响的人,包括项目发起人、项目组、协助人员、客户、使用者、供应商,甚至是项目的反对者。
2.2.3 项目管理中涉及的内容
项目范围,进度,成本,质量,人力资源,沟通,风险,变更管理
2.2.4 项目管理的内容
项目管理包括:项目+管理
从管理职能角度划分,项目管理包括项目计划、组织、人事安排、控制、协调等方面的内容。
从项目获得的全过程划分,项目管理包括项目决策、项目规划与设计、项目的招投标、项目终结与后评价等。
从项目投入资源要素划分,项目管理包括项目资金财务管理、项目人事劳动管理、项目材料设备管理、项目技术管理、项目信息管理、项目合同管理等方面的内容。
从项目目标和约束角度划分,项目管理包括项目进度管理、项目成本管理、项目质量管理等方面内容。
2.2.5 项目管理的特征
- 项目管理具有创造性:项目的一次性特点,决定每一个实施的项目都具有创新性。
- 项目管理是一个复杂的工作,具有较强不确定性:项目管理一般由多个部分组成,工作跨越多个组织、多个学科、多个行业。
- 项目管理需要专门的组织和团队:项目管理需要跨越部门界限,因此需要一个专门的组织/团队去负责。
- 项目经理的作用非常重要
2.3 项目管理知识体系(PMBOK)
前面一大推概念,你说重要吗?也是重要的,但你说不重要自然也是不重要的。毕竟项目经理谁会去背诵项目管理的特点呢?创造性、复杂性、专业团队。。。。。巴拉巴拉
接下来说的才是重要的,我们学习这门课不就是为了以后能有机会成为一个项目经理嘛,总不能天天做下层员工的。
想要成为项目经理,我们就选哟掌握项目管理知识体系(PMBOK)
项目管理知识体系(PMBOK):10个知识领域、5个标准化过程组、49个模块
2.3.1 项目管理的十个知识领域
- 首先确定项目的工作和管理范围:项目范围管理
- 为了项目正常推进,需要对项目的时间、质量、成本进行管理:项目进度管理、项目质量管理、项目成本管理
- 项目的推进需要投入人力物力:项目资源管理、项目采购管理
- 为了团队成员之间的协调:项目沟通管理、项目干系人管理
- 项目在实施过程中会遇到各种风险,所以要进行风险管理:项目风险管理
- 项目管理一定要协调各个方面,不能只顾眼前利益:项目集成管理
2.3.2 项目管理的五个标准化过程组
按照项目管理生命周期,项目管理知识体系分为5个标准化过程组,也称为项目管理生命周期的5个阶段。
标准化过程组:一系列过程,一一完成即可说是完成项目管理。
- 项目启动
- 项目计划
- 项目执行
- 项目控制
- 项目收尾
2.3.3 项目管理的49个模块
2.4 软件项目管理知识体系
2.4.1 软件过程
过程:人们做事情的一种固有方式。对于做一件事,有相关经验的人对完成这件事的过程很了解,会知道完成这件事需要经历几个步骤,每个步骤都完成什么事,因而可以顺利地完成工作。
软件开发过程主要有:系统调研、需求分析、概要设计、详细设计、编码、测试、实施与维护等。
软件开发是否关注过程会是天差地别的,具体见如下:
不关注过程,仅仅关注产品,我们将永远不知道如何产生高质量的产品,只能凭借运气、时间来产生高质量产品;关注过程,意味着我们能够不断改进、改善和规范过程,从而提高产生高质量产品的概率,并能够将这一经验推广,成为企业内部可以被重用的共享资源。
- 从做过的项目中总结出的一些完善的过程,称为最佳实践。
- 软件过程管理就是对最佳实践进行有效积累,形成可重复的过程,使最佳实践可以被共享。
- 项目管理用于保证项目的成功。
- 过程管理用于管理最佳实践。
- 这两项管理不是相互孤立的,而是有机紧密地结合的。可以说过程管理的成果也就是软件过程可以在项目管理中起到辅助作用。
2.5 敏捷项目管理
背景:软件项目需要快速的开发过程,快速变换的环境要求快速的开发和快速的提交。
敏捷软件开发:是一个灵活的开发方法,用于在一个动态的环境中向干系人快速交付产品
主要特点:关注持续地交付价值,通过快速迭代和用户反馈管理应对变更。
敏捷开发的四个核心价值:
- 个体交互胜过过程和工具
- 可以工作的软件胜过面面俱到的文档
- 客户合作胜过合同谈判
- 响应变化胜过遵循计划
敏捷开发的十二个原则:
3. 总结
本篇文章,我们主要是在入门软件项目管理的许多基础概念:项目和软件项目、项目管理和软件项目管理等,最后我们了解了敏捷开发。
本学期的【软件项目管理】本质上就是在学习项目管理以及针对软件项目的管理。而学习项目管理最好的学习脉络就是PMBOK(项目管理知识体系)。
如果想持续关注【软件测试】和【软件项目管理】系列文章,可以订阅:
如果想学习计算机其他方面的核心知识(都是猫猫的优质好文哦),可以订阅:
- 计算机网络_十二月的猫的博客-CSDN博客
- 软件工程与面向对象_十二月的猫的博客-CSDN博客、
- 操作系统与数据库_十二月的猫的博客-CSDN博客
- 编译原理_十二月的猫的博客-CSDN博客
- 算法启示录_十二月的猫的博客-CSDN博客
如果觉得本文对你有帮助,友友们可以点个赞,收个藏呀~