水晶方法概论(一):Crystal的起源之路
- 2021-03-10 10:00:00
- yanruiyu
- 翻译:
- toolsqa
- 6278
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
- 投稿标题:向 [敏捷开发] 网站投稿
- 稿件要求:与敏捷开发相关的任何内容
更多投稿相关请点击 更多进行了解~