开发者学习笔记【阿里云DevOps助理工程师认证(ACA)课程:敏捷项目管理基础(一)】
课程地址:https://edu.aliyun.com/course/3112069/lesson/18991
敏捷项目管理基础(一)
内容介绍:
一、项目管理和迭代开发模式
二、Scrum 方法
三、KANBAN 方法
四、风险管理
一、项目管理
项目的定义:项目是系列独特的、复杂的、相互关联的活动,这些活动有着一个明确目标或目的,并且必须在特定的时间和预算内依据规范完成。
在项目的定义当中,我们要着重看到项目,首先有一个明确的目标或者是目的,而且项目要在特定的时间和预算内完成。
什么是项目管理?
项目管理指的是运用各种相关的技能、方法与工具,被满足或超越项目有关各方对项目的要求与期望,所开展的各种计划、组织、领导、控制等方面的活动。
在项目管理基础当中,我们需要着重去看哪些方面?
在这里要给大家介绍项目的三角,包括范围、时间和成本。项目的范围它定义了要求做什么,也规定了不能做什么。项目的时间指的是一个项目必须完成时间框架或者是最后期限。项目的成本指的是可用于项目的费用,由这三个要素,范围、时间和成本组成了项目的三角。
在项目当中我们还要看重什么呢?
项目当中看重的是项目质量,项目的质量分为两个方面,首先第一个方面是指的是产品的质量,产品的质量指的是项目的可交付成果的质量,也就是项目最后产出的成果的质量。第二个方面指的是过程的质量,也就是项目管理过程本身的质量,也就是说从项目立项到项目结束这个过程的质量。
项目管理的目的是什么?
项目管理的目的是在有限的资源投入条件下,在要求的时间内实现既定的项目目标。
迭代开发模式
迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过流程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。
在迭代式开发方法中,整个开发工作被组织成一系列短小的、固定长度的小项目被称为一系列的迭代。每一次迭代都包括了定义、需求、分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整的确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作,再通过客户的反馈来细化需求,并开始新一轮的迭代。因此,让我们来学习迭代开发模式的演示图。 首先,我们会有一需求,我们根据需求来计划一次迭代要开发的内容。当计划会议结束之后,我们进入到迭代中,也即我们根据计划中的需求内容来进行开发。开发完成后,我们会接下来进行测试,测试完成之后进行发布。这一系列的工作内容都是由迭代的计划会议来制定,在迭代之后我们会有迭代的回顾会议。 在迭代的回顾会议当中,我们会产生新的工作项,以及我们需要持续改善的一些工作内容。我们会把这些工作项和工作内容重新返回到需求当中,作为下一次迭代的输入。也就是我们在整个迭代周期当中,包括了迭代前的计划,迭代中的开发、测试和发布,以及迭代后的回顾内容,整个形成了一个迭代周期。
二、Scrum 方法
Scrum 方法,在 Scrum 方法当中,我们有四个数字,分别是3335,这三个 3 和一个 5 分别代表的是:
第一个三是理论支柱,包括高透明性检查和适应。
第二个三指的是三个角色,在 form 中,我们一个团队有三个角色,这三个角色分别是产品负责人、Scrum master 和开发团队。
第三个 3 是表示的是三个弓箭,这三个弓箭分别是产品待办列表、迭代待办列表和潜在可交付的产品增量。
在 5 中的 5 表示什么呢?
5 表示 5 个事件,分别是迭代计划会议、迭代每日例会、迭代评审会议和迭代回顾会议。在此我想进一步阐述,在三个理论支柱当中的高透明性检查和适应,都是通过 5 个事件都分别反映出来这三个理论支柱的特性。我们接下来仔细看三个角色, 3 个弓箭和 5 个事件在整个的 scrum 方法当中是如何体现出来的。
首先我们来看 Scrum 方法的框架图,大家可以看这张表,我们从最上面 inputs from,也就是我们来自于客户,来自于集团内部,来自于干系人,来自于市场的所有的input,所有的需求由 product owner,也就是产品负责人,由他来把所有的需求组织成 product backlog,也就是产品代变列表。 产品代办列表是一个排好优先级的这样一个列表,它规定我们整个产品需要做哪些事情。在接下来我们会有一个迭代的计划会议,在迭代计划会议当中,会从产品代办列表当中挑选出我们在一个迭代当中要完成的内容,我们把它生成迭代代办列表。当我们定义好迭代代办列表后,我们就明白在下一个迭代中我们要完成哪项工作内容,所以我们在接下来进入到迭代当中,迭代它是一个时间观念,我们通常认为一个迭代会从1周到 6 周时间不等,取决于公司内部、团队内部对一个迭代自己的定义。当我们在迭代过程当中,我们每日都会有一个每日例会,也是五大事件。第二,每日例会,在每日例会当中,团队成员会用会在 15 分钟的时间内完成三个问题的回答,也就是说昨天我做了什么?今天我要做什么?我在这个工作的过程当中遇到了哪些困难和障碍?在会议每日例会后,所有的故障或者是障碍或者遇到的问题,都会由 Scrum master 在线下的时候去找相应的人员来进行排除,来进行解决。 当我们在 1- 6 个周的迭代结束之后,我们会产生一个潜在的可交付的产品增量,也就是 finish the work。同时我们在一个迭代之后,我们首先会邀请客户,会邀请我们的管理层以及我们的团队人员一起参加迭代评审会议。在迭代评审会议过程当中,我们需要给客户展示我们已经完成的内容,已经完成的功能。同时如果客户给我们相应的反馈,由项目产品负责人会把所有的这些需求重新返回到产品代办列表来进行排序和规划。同时当评审会议结束之后,团队内部会重新开一次回顾会议,在回顾会议当中,整个团队会回顾在整个迭代过程当中的工作过程由此会产生,我们认为我们在整个迭代过程当中有哪些事情是做得比较好的,我们需要继续保持,我们就会产生 keep 的一些工作项。还有一些我们认为在本次迭代当中完成得不太好,我们可能需要做改变的就是有改change,还有一些我们认为我们可能需要尝试的一些好的办法或方法,或者是工具技术就会产生 try 这样的工作项。 所以我们在整个的回顾会议当中,我们会围绕着keep、chain、 try 这三项来进行回顾,当我们完成了回顾回忆后我们会进入到下一个迭代,也就是我们从更新后的产品待办列表,再一次通过计划会议产生新的迭代的待办列表,进入到下一个迭代的工作过程当中。这就是我们在整个 Scrum 的框架当中,我们的迭代是不停地在往前演进的,也就是体现敏捷的、循序渐进的工作方法。
我们来看整个 Scrum 团队每一个角色,他们都有哪些具体的工作,我们这个团队是如何紧密合作的?大家可以看这张总结表,从这张表中我们可以看到Po,也就是 product owner,产品负责人,他要做的事情是确定产品的功能,负责维护产品待办列表,同时他要决定产品的发布日期和发布内容,也要为产品的投资回报率,也就是 ROI 负责。同时他要根据市场价值来确定产品待办列表中的功能优先级,同时在每一个迭代,也就是 Sprint 开始之前调整功能和调整功能的优先级,同时在一个迭代,在一个 Sprint 结束的时候,接受或者是拒绝开发团队的工作成果。 总而言之,对于产品负责人来说,他是对整个的产品代办列表负责。让我们来看 Scrum master 的职责。
Scrum master 他要保证团队资源完全可被利用,并且全部是高产出的。他还要保证各个角色及职责的良好协作,也要解决团队开发中的障碍,作为团队和外部的接口,屏蔽外界对团队成员的干扰。 还要保证开发过程按照计划进行。他要组织每日站会 Sprint 的计划会议、 Sprint 评审会议和 Sprint 回顾会议,对于我们开发团队都要完成哪些工作?开发团队在每一个 Sprint 当中,也就是在每一个迭代当中,要将产品待办列表当中的条目转化成实际工作,转化成实际的功能,同时要交付潜在可交付的功能增量。 同时一个 Scrum 的团队的规模,我们通常控制在 5- 9 个人,而且 Scrum 团队是一个跨职能的团队,是一个自组织的团队。另外最重要的一点是,在 Scrum 团队当中,整个团队要共背业务目标,共背质量,也就是整个团队对业务目标负责,对质量负责。
PO产品负责人 |
Scrum Master |
Dev Team开发团队 |
决定产品的发布日期和发布内容 |
保证各个角色及职责的良好协作 |
交付潜在可交付的功能增量 |
为产品的投资回报率(ROI)负责 |
解决团队开发中的障碍 |
Scrum团队的规模控制在5-9个人 |
根据市场价值确定功能优先级 |
做为团队和外部的接口,屏蔽外界对团队成员的干扰 |
Scrum团队是跨职能的团队 |
在每个Sprint开始前调整功能和调整功能优先级 |
保证开发过程技计划进行,组织每日站会,Sprint计划会议Sprimt评审会议和Sprint回顾会议 |
Scrum团队是自组织的 |
在Sprint结束时接受或拒绝接受开发团队的工作成果 |
||
团队共背业务目标,共背质量 |