敏捷框架中的Crystal Method(水晶方法论家族)
最近复习敏捷方法里面的Crystal家族,把感受集合到这里。
Crystal方法是什么
水晶方法Crystal Methods 是敏捷框架的一种,它更加关注个体和互动,胜过流程和工具。水晶方法由Alistair Cockburn创建,Alistair是敏捷宣言的签名者之一,他于1991年为IBM创立了该方法。
当时,IBM要求Alistair为“面向对象项目”开发方法论,经过广泛的研究,他得出一个结论:所有成功的团队都使用相同的模式和技术,而无需使用任何特定的项目方法。因此,他通过研究建立了自己的方法论,称为水晶方法。
他决定不关注制定具体的分步开发策略,而是制定团队协作和沟通的方针
以人为本,项目必须根据参与者和团队的工作方式随需应变
适应性,意为方法和工具并非一开始就固定好,而是根据团队实际情况而动态调整
极简,也就是方法论不需要复杂的文档或报告
水晶方法有两个核心假设
团队会自己找到改进和优化工作流程的方法
任何项目都是独特的,且一直变化,这就是为什么团队最有资格确定他们将使用什么工具、方法来工作
水晶方法是软件开发方法中最为轻量和最具弹性的方法,它包含了很多敏捷流程,包括:
Cyrstal Clear,Crystal Yellow,Crystal Orange和其他颜色水晶。
简而言之,水晶方法认为每个项目具有不同特性,所以其使用的流程和实践,必须根据实际情况和团队做适当的裁剪。
水晶方法的三个基础维度
团队的规模
项目影响的危急程度
项目优先级
单纯计算团队规模的情况
加入项目影响的危急程度的评估的情况
一个较为复杂的项目评估逻辑:
基于以下四个维度
危及生命(Life,L)
超过项目预算(Essential Money,E)
影响项目预算(Discretionary Money,D)
影响一定的舒适性(Comfort,C)
Crystal Clear团队规模在1-6人,支撑固定价格的合同(不需要合同谈判),无需特别关注流程和工件,更多关注文档和项目的安全性
Crystal Yellow
团队规模7-20
清晰的代码所有权,当代码发生变更的时候,代码所有者需要采取行动
来自于“真实用户”的反馈,将减少未来交付的风险和误解
推崇直接沟通,减少多余的文档,同时让开发团队更好的理解他们的工作
“使命宣言”是和客户一起定义的目标
引入自动化测试使得bug修复更快速
有清晰的月度改进计划,包括待办事项的编制,和及时完成事项
Crystal Orange
团队规模21-40
项目持续1-2年
根据其人员职能和技术能力,拆分为不同团队
和其他敏捷方法一样,遵循增量开发原则,每3-4个月至少有一次发布,每个发布名为“增量”
Crystal水晶方法和Scrum的比较
Crystal水晶方法 | Scrum |
---|---|
Crystal更有弹性,它接收项目的改变,和团队规模的调整 | Scrum更有纪律性,一旦迭代开启,默认情况下不允许对迭代范围进行变更 |
Crystal根据重要性来交付 | Scrum根据backlog中的优先级来交付 |
由于灵活改变的需要,要求较为完善的文档 | 经常因为文档质量差而受到批评 |
在最终确定流程和预算后,一切都无法改变 | 接收用户的临时请求 |
Crystal根据团队人员的数量不同,有不同颜色水晶的方法 | Scrum认为一个Scrum方法就足够了,和团队的大小无关,整个团队需要拆分为数个Scrum团队,Scrum团队的数量可以增加,但是单个Scrum团队内的成员数量保持在合适的范围(7-10) |
Ref:
https://www.toolsqa.com/agile/crystal-method/