软件工程学习笔记4——敏捷开发之Scrum+极限编程+看板

这些年敏捷开发,已经逐步发展出一套 “Scrum + 极限编程 + 看板” 的最佳实践,Scrum 主要用来管理项目过程,极限编程重点在工程实践,而看板将工作流可视化。

在这里插入图片描述

1、Scrum

在这里插入图片描述
在这里插入图片描述

(1)什么是Scrum

Scrum 是一个解决复杂多变问题的框架。基于经验主义和精益思维,采纳了一种迭代和增量的方法来优化对未来的预测性并控制风险,帮助团队和组织创造价值。
在这里插入图片描述
Sprint (冲刺,也可理解为迭代)是 Scrum 的核心,在这里创意转化为价值。它们是固定时长的事件,为期 1~4 周。前一个 Sprint 结束后,下一个新的 Sprint 紧接着立即开始。

实现产品目标所需的所有工作都发生在 Sprint 内,包括 Sprint 计划会议、每日站会、Sprint 评审会议和 Sprint 回顾会议

在这里插入图片描述
Scrum 敏捷项目管理模式提供了以迭代与事项(史诗、用户故事、需求、缺陷、任务、子工作项)为核心的任务协同工具。

面临一个大型任务时,可以将其作为史诗进行编写,再具体至工作细节的需求、任务、缺陷管理等。敏捷协作的关键在于先快速发布一个有效但不完美的最简版本;

每一次迭代都包含规划、设计、编码、测试、评估五个步骤。在这样不断改进产品,添加新功能的正向工作流内,通过频繁的发布,以及跟踪对前一次迭代的反馈,最终接近较完善的产品形态。

(2)每日站会

在敏捷开发中,每日站会是非常有名的。在大厂,但凡实施敏捷开发的小组,上班第一件事,就是一起开一个站会,沟通一下项目的基本情况。

虽然站立会议什么时间开都可以,但是早上无疑是最好的时机,一天工作的开始,开完会全身心去干活。

是不是站着开会其实不重要,重点是要高效沟通反馈。开会时间控制在半小时以内,半小时内不能完成的应该另外组织会议。

谁来主持站立会议呢?在敏捷的 Scrum 中,有一个角色叫 Scrum Master(敏捷教练、敏捷大师),主要任务就是保证各种敏捷流程的。

所以通常是由 Scrum Master 主持会议,也可以采用轮班制,每个星期换一名团队成员主持。负责主持会议的人,主要职责是组织会议,一个一个环节开展,控制好会议节奏。

开会都干什么呢?主要有三个话题

  • 成员轮流发言:每个人轮流介绍一下,昨天干了什么事情,今天计划做什么事情,工作上有没有障碍无法推进。
  • 检查最新的 Ticket
  • 停车场问题:可以针对之前来不及讨论的问题进行讨论,能在会议时间内解决的问题,就马上解决,不能解决的会后再私下讨论或者再组织会议。

2、XP(极限编程)

极限编程的“极限”(Extreme),意思就是如果某个实践好,就将其做到极限。就是通过帮助我们提升效率和减少浪费这方面来做的,比如:

  • 如果做测试好,就让每个开发人员都做测试 ;
  • 如果集成测试重要,就每天都做几次测试和集成 ;
  • 如果简单的就是好,那么我们就尽可能的选择简单的方法实现系统功能 ;
  • ……

在这里插入图片描述
在这里插入图片描述

XP实践:
在这里插入图片描述

  • 代码集体共有:每个成员都有更改代码的权利,所有人对全部代码负责。
  • 简单设计:能够通过所有的测试程序;不含重复代码;尽可能少的代码、类、方法。
  • 编码标准:同意代码规范;尽量减少不必要文档、所有代码像一个写的一样。
  • 结对编程:两个人一起编程,一个写,一个看;当场检查。
  • 重构:在不改变软件现有功能的基础上,通过调整程序代码来改善软件的质量和性能,使程序的设计和架构更加合理,提高软件的扩展性和维护性。
  • 平稳的步调:长期维持的速度;不加班;
  • 测试驱动开发:写代码的目标是通过所有测试
  • 小版本发布:在非常短的时期里发布新版本,便于迅速获取用户反馈。

3、看板——基于 Ticket (标签)来管理跟踪任务

早些年的项目开发,都是围绕着项目计划开展的,把甘特图打印贴在墙上,方便团队成员看项目进展到什么地步了。自从敏捷化后,开始变成了看板

(1)什么是看板

所谓的看板,就是把白板分成几个栏,每一栏为一类,分别写着“To Do(待选取)”、“In Progress(进行中)”、“Done(完成)”等,再把工作任务变成一个个五颜六色的即时贴,根据状态贴在不同的栏下面。
在这里插入图片描述
慢慢的物理的看板变成了电子看板,通过各种项目管理软件来管理跟踪这些任务,即时贴也变成了 Ticket(标签)(也有叫 Issue 的)。逐渐的,所有与开发相关的任务也都和 Ticket 挂钩了:

  • 报一个 Bug,提交一个 Ticket ;
  • 提一条需求,提交一个 Ticket ;
  • 要重构一下代码,提交一个 Ticket 。

看板这种基于 Ticket 来管理跟踪任务的方式,看起来繁琐,但确实是很高效的一种方式。

  • 每一个任务的状态都可以被跟踪起来:什么时候开始做的,谁在做,做完没有。
  • 整个团队在做什么一目了然。
  • Ticket 和敏捷开发中的 Backlog(任务清单)正好结合起来,通过 Ticket 可以收集管理整个项目的 Backlog 和当前 Sprint(迭代)的 Backlog。

(2)看板的优势

  • 通过看板,我们能将冲刺任务限定在一个已知的能力阙值内,根据每天的任务交付速度来平衡团队的工作需求
  • 看板提供了视觉化的直观管理感受,每个人的任务一目了然,能够快速的暴露出影响团队效能的瓶颈,团队应该专注于解决问题以维持稳定的流量。
  • 看板能很好的展示下下游环节的当前状态,每个人聚焦当前任务,完成一个任务再开启下一个任务,拉动式生产,不堆积任务导致影响后面的环节。
  • 看板能够建立稳定的任务节奏,始终如一的可靠交付,这能够帮助团队和利益方合作伙伴建立稳定的信任关系。

在这里插入图片描述

4、软件项目管理金三角?

在现实生活中,我们都知道,做产品想“多、快、好、省”都占着,是不可能的,最多只能选两样。
在这里插入图片描述
而在软件项目中,也有一个类似的平衡关系,就是软件质量(产品的质量,客户的满意度)与范围(需要实现多少功能)、时间(多久可以完成)、成本(花多少钱)四个要素之间的平衡。
在这里插入图片描述
上面这个图就是著名的项目管理金三角(以下简称“金三角”),三条边分别是时间、成本和范围,中间是质量。

  • 为什么四个要素,是“质量”放在三角形的中间?

因为软件工程的目标就是要构建和维护高质量的软件,所以项目的质量是高于一切的。也就是说,“质量”这个因素一般不会妥协,因此把“质量”放在三角形中间,然后在时间、成本、范围这三条边之间寻求平衡

质量往往也是其他三个因素平衡后结果的体现,想要做的快、成本低、功能多,最后一定是个质量很差的产品。

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值