扫码阅读
手机扫码阅读

水晶方法概论(一):Crystal的起源之路

185 2023-08-21
1990年,IBM要求Alistair Cockburn创建一种面向对象的项目开发方法。所有人都知道,这是一项极具挑战的任务。在经过不断地研究后,Alistair得出了一个结论:实际上很多成功的团队根植于相同的模式和技术,没有任何特定的项目方法。他认为:一个方法不能应用于多个项目,也就是说不能一刀切于是,他构建了一系列项目开发方法,并将其统一命名为Crystal。

Crystal方法是最具轻量级、最灵活的软件开发方法之一。它由Crystal Clear、Crystal Yellow、Crystal Red等几种具有独特特征的敏捷方法组成。

总之,Crystal系列方法强调每个项目都有区别于其他项目的地方。因此,团队需要量身定制出适应这些特性的策略和实践。与其他敏捷方法一样,Crystal方法通过促进按时和频繁的工作软件交付,激发了用户的参与度、适应性,并为团队的工作排除干扰、消除浪费。

水晶方法基于两种关键假设:

  1. 首先,团队可以通过简化工作和项目流程来提高自身效率

  2. 其次,每个项目都与其他项目不同,都需要一些特定、具体的方法和策略

Alistair说,每个项目都是一个游戏,团队需要制定策略才有可能赢得比赛。也就是说,在计划项目时,我们应该让所有人参与进来,允许他们互动并欢迎每个人提出想法。

1

水晶方法聚焦于
  • 互动

  • 社区

  • 技能

  • 才华

  • 沟通

2

水晶方法的适用性

项目的属性会随着项目参与人数的变化而变化。

Alistair观察到,小型团队能够构建并交付项目,无需过多的书面工作或状态报告。而较大的团队主要交付大型项目,因此需要大量的文书工作、持续更新以及频繁沟通。

由此,Alistair得出,每一个策略都取决于项目的复杂程度。而Crystal方法的适用性取决于三个方面:

  • 首先是团队规模

  • 其次是关键程度

  • 最后是项目优先级

例如,一所学校根据以下几点将5年级划分为5个A、5个B、5个C等不同的部分:

  • 他们以前的课程成绩;

  • 理解能力;

  • 他们的个人能力。

划分班级的结构对教师来说很有帮助。由于每个部分中的学生的理解水平几乎相同,因此教师可以相应地来定义他们的教学策略。

那么,Alistair使用不同的颜色来区分不同的方法。反过来说,这会使我们很容易就能确定什么时候使用什么方式。

3

水晶方法系列
01
Crystal Clear
  • 1-6人的小团队;

  • 支持固定价格,无谈判合同;

  • 以人为本,不太关注流程和工件;

  • 需要文档;

  • 项目安全焦点。

02
Crystal Yellow
  • 7-20人的小型团队;

  • 明确代码区域的所有权。代码区域所有权是这样定义的,如果需要进行更改,那么只有代码所有者才能去处理;

  • 反馈来自“真实用户”。另外,它还消除了由于间接沟通而造成的进一步混乱;

  • 首选方便、直接的沟通。它减少了很多对于文档的需求,因此,开发人员很容易理解他的工作;

  • 任务是由客户定义并验证的目标;

  • 自动化测试用于更快地解决Bug;

  • 制定每月改进计划,包括制定待办事项列表,并在规定时间内实现。

03
Crystal Orange
  • 团队规模为21-40人;

  • 项目期限为1-2年;

  • 根据其职能技能拆分团队;

  • 遵循增量开发;

  • 每3-4个月发布一次;

  • 每个版本都称为“增量”;

  • 专为中型项目而设计。

04
Crystal Orange web
  • 团队规模为21-40人;

  • 在具有不断发展的代码库的项目中使用,供公众使用;

  • 它专注于缺陷最小化。

虽然“Crystal Orange web”和“Crystal Orange”大体相似,但Crystal Orange web并不处理单个项目,而是处理一系列需要编程的项目。这些计划的结果需要与代码库合并,并被开发人员使用。然而,方法还是保持不变。

05
Crystal Red

对于40-80人的团队,需要遵循传统的软件开发方法。除此之外,还会根据所需工作组建和划分团队。

06
Crystal Maroon
  • 团队规模为80-200人;

  • 适用于大型项目;

  • 此外,根据软件的需要,定义的方法也有所不同。

以上是Crystal系列的主要成员。但是,对于大型项目,还有两种方法:

07
Crystal Diamond and Crystal Sapphire

两者都适用于非常关键的大型项目的方法。他们的团队和策略会根据项目的关键程度来决定,这些项目意义非凡。

如上图所示,舒适度(C),可自由支配资金(D),基本资金(E)和项目寿命(L)是垂直因素。水平因素是“团队规模”。

因此,Alistair认为,必须考虑所有因素,才能决定采用哪种方法。

例如,对于规模为40人的项目,在提交发布日期之前,开发人员将考虑以下因素:

  • 适合工作多少小时(C);

  • 可用于该项目的资金(D);

  • 完成该项目需要多少资金(E);

  • 如果这些要求中的任何一个不满足,则可以增加 /减少项目的团队规模和寿命(L);

  • 最后,选择最可行的方法。

或根据团队规模,开发人员可以根据提供的资金(E),可用的资金(D)和资源的舒适度(C)估算项目完成情况(L)。

至此,我们已经对水晶方法做了大致阐述,Alistair对水晶方法的细分能够帮助团队更加高效地完成软件开发与项目管理,在此基础上,还有哪些角色与实践呢?请继续关注我们的后续文章~
文章来源

https://www.toolsqa.com/agile/crystal-method/

原文链接: https://mp.weixin.qq.com/s?__biz=MzUyNjQxMzAyOQ==&mid=2247485836&idx=1&sn=6f255803503ce987d1dd41d390b825f9