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

2021-03-10 10:00:00
yanruiyu
翻译:
toolsqa
6634


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

 

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

 

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

 

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

  • 首先,团队可以通过简化工作和项目流程来提高自身效率。
  • 其次,每个项目都与其他项目不同,都需要一些特定、具体的方法和策略。

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


一、水晶方法聚焦于

  • 互动
  • 社区
  • 技能
  • 才华
  • 沟通

二、水晶方法的适用性

 

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

 

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

 

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

  • 首先是团队规模;
  • 其次是关键性;
  • 最后是项目优先级。

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

  • 他们以前的课程成绩;
  • 理解能力;
  • 他们的能力。

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


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

 

三、水晶方法系列

1.Crystal Clear

  • 1-6 人的小团队;
  • 支持固定价格,无谈判合同;
  • 以人为本,不太关注流程和工件;
  • 需要文档;
  • 项目 安全焦点。

2.Crystal Yellow

  • 7-20 人的小型团队;
  • 明确代码区域的所有权。代码区域所有权是这样定义的,如果需要进行更改,那么只有代码所有者才能去处理;
  • 反馈来自 “真实用户”。另外,它还消除了由于间接沟通而造成的进一步混乱;
  • 首选方便、直接的沟通。它减少了很多对于文档的需求,因此,开发人员很容易理解他的工作;
  • 任务陈述是由客户定义并验证的目标;
  • 自动化测试用于更快地解决Bug;
  • 制定每月 改进计划,包括制定待办事项列表,并在规定时间内实现。

3.Crystal Orange

  • 团队规模为 21-40 人;
  • 项目期限为1-2年;
  • 根据其职能技能拆分团队;
  • 遵循增量开发;
  • 每3-4个月发布一次;
  • 每个版本都称为“增量”;
  • 专为中型项目而设计。

4.Crystal Orange web

  • 团队规模为21-40 人;
  • 在具有不断发展的代码库的项目中使用,供公众使用;
  • 它专注于缺陷最小化。

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

5.Crystal Red

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

6.Crystal Maroon

  • 团队规模 80-200人。
  • 适用 于大型项目。

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

 

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

7.Crystal Diamond and Crystal Sapphire

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

 

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

 

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

 

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

  • 适合工作多少小时( C );
  • 可用于该项目的资金( D );
  • 完成该项目需要多少资金( E );
  • 如果这些要求中的任何一个不满足,则可以增加 / 减少项目的团队规模和寿命( L );
  • 最后, 选择最可行的方法。

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


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

文章分类
联系我们
  • 联系人:阿道
  • 联系方式: 17762006160
  • 地址:青岛市黄岛区长江西路118号青铁广场18楼
投稿邀请

如果您有优秀的原创文章,欢迎添加联系人直接与我们联系,或通过下方邮箱发送投稿文章,一经采用,我们会付以一定的稿件报酬。

  • 投稿邮箱: yanruiyu@easycorp.ltd
  • 投稿标题:向 [敏捷开发] 网站投稿
  • 稿件要求:与敏捷开发相关的任何内容

更多投稿相关请点击 更多进行了解~