软件工程之美

1、Scrum(1)什么是Scrum(2)每日站会

2、XP(极限编程)3、看板——基于 Ticket (标签)来管理跟踪任务(1)什么是看板(2)看板的优势

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

这些年敏捷开发,已经逐步发展出一套 “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、软件项目管理金三角?

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

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

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

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

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: