敏捷宣言属于一种敏捷价值观,属于“道”。
十二原则则是实现这些价值观的战略和方法,属于“法”。
“道”和“法”在前面已经介绍过了,下面我们来看“术”和“器”!
2.“术”
“术”是行为和技巧。作为事物的中观层面,包含了各种技能、思维模型和分析模型。
在敏捷层面,也同样包含了一些方法论角度的“行为”与实践角度的“技巧”,将一些好用的模型充分应用了进去。
2.1方法论角度看敏捷“行为”
Scrum
Scrum框架如何运作,在下一期会进行具体讲解。
看板
看板出自丰田,丰田的生产线会放置一个白板,工作人员就可以查看相应的进度。
目前看板已经十分普及了,在项目管理中,我们经常会使用电子看板。此外,白板也是非常好的工具,敏捷团队常用的一个工具就是白板加上便签,同样也可以实现看板的效果。
XP
XP是Extreame Programming 极限编程的缩写。
XP主要是从软件工程的角度去实践敏捷的概念。
其核心思想就是:我们在软件开发的过程中首先要注重单元测试。有了单元测试之后,整个开发过程才能做持续集成,有了持续集成作为基础,我们才能对代码进行重构,而所谓的重构就是响应相应的变化。
优化性能的时候就需要进行此类重构,此外,需求发生变更时也需要对现有代码进行重构。
SAFe、LeSS
SAFe和LeSS是两个常见的大规模敏捷的框架。
一个Scrum团队最好是7-9人,很显然一个7-9人的小团队生产力是有限的,如果我们面对的是一些大型项目,就可以通过SAFe和LeSS等等大规模敏捷的方法论来进行管理,更好地管理需求池、人员之间的协调互动。
DevOps
DevOps是近两年越来越受到重视的一种方法。
如果从工具层面理解,DevOps则是一些做持续集成 、持续部署、持续发布的工具链。
此外,DevOps本身也在践行敏捷的价值观,正如在介绍XP时所提到的,我们只有有了自动化的持续集成,才能更好的对代码进行重构。对于开发团队而言的话,在效率上这会是一个极大提升。
2.2实践角度看敏捷“技巧”
用户体验地图
用户体验地图,也称用户旅程地图,是一个非常好的观察用户体验变化、收集用户路径的工具。
每日站会
下一期会详细讲解怎么开好每日站会。
结对编程
结对编程出自极限编程,指两个人在同一台电脑上进行编程。
从产出效率上来讲,两个人一台电脑的生产效率会比两个人两台电脑的生产效率低一些。
但好处在于,一个人在编码时,另一个人可以对代码进行实时的审查工作,很多时候,一些业务逻辑的写法可能需要两个人互相的碰撞才会有更好的解决办法。
TDD
TDD 是测试驱动开发的缩写,同样也是在极限编程里非常推崇的一个方法论。
TDD 建立在单元测试的基础之上,这意味着在写任何功能性的代码之前,需要先把测试用例写完,再去写相应的功能代码。
功能代码写完后,若要确认功能代码是否正确,就需要马上去跑单元测试来进行验证。
持续集成
持续集成是DevOps里一个具体的实践,是指每当我们有新的代码产出时,可以通过一种自动化的方式在服务器上进行构建、打包,进而可以发布到QA、UAT或者生产环境里面。
3.“器”
“器”是提升效率的工具。在敏捷中,也有一些工具能将复杂的问题简单化。
# 项目管理工具(jira、禅道)
工具的使用因项目而异,从软件开发的角度来讲,一般都会使用一些项目管理工具,比如说常用的Jira,以及在国内比较受欢迎的禅道。
# 版本控制工具(GitLab、GitHub)
敏捷重视短迭代,所以版本的发布是非常频繁,甚至有游戏公司每天都会发布新的版本,所以必须要有一个好用的版本控制工具。
# 白板、便签
从物理的角度来讲,白板和便签都是非常实用的工具。
我们可以把任务写在便签上,把白板做成待办、处理中、完成等泳道,然后把这些便签贴到这些泳道里面,每天更新相对应的项目进度。
4.敏捷团队的特点
在认识和学习了敏捷的“道、法、术、器”后,放在具体的实践环节,一个真正的敏捷团队应该具备哪些特点呢?