本文摘自敏捷开发


20世纪90年代末,Alistair Cockburn提出水晶方法论。

自2001年的敏捷宣言提出以来,以极限编程为首的一系列敏捷方法逐渐走入大众视野,其中就包括水晶方法(Crystal Method)。在随后的发展中,各类敏捷方法都有所偏向,逐渐形成各自的特点及原则。

  • 极限编程(XP)以客户的需求变化为重点,同时强调团队合作。XP更为注重开发过程中,团队(包括客户、管理人员、开发人员)不约而同地聚在一起讨论方案,解决难题;
  • Scrum的开发模式称为“橄榄球”式方法:团队成员都对产品开发的整个过程保留自己的看法,实现自治。产品开发方式由线性方法转向集成方法,这种转变刺激团队内部各层次间的交叉学习、交流以及思维发散。
  • 功能驱动开发模式(FDD)主要针对中小型软件开发项目,“是一个以Architecture为中心的,采用短迭代期、目期驱动的开发过程。它首先对整个项目建立起一个整体的模型,然后通过两周一次‘设计功能——实现功能’的迭代完成项目开发。”

Crystal——水晶方法论是由Alistair Cockburn和Jim Highsmith建立的敏捷方法系列。Alistair Cockburn将水晶方法细化为透明水晶方法论(Crystal Clear)、黄色水晶方法论(Crystal Yellow)、橙色水晶方法论(Crystal Orange)以及红色水晶方法论(Crystal Red)。这几种水晶方法论按照项目重要程度以及参加人员规模进行划分。

一般来讲,透明水晶方法,适用于一个小团队来进行敏捷开发,人数在6人以下为宜。相比于同样适用于小规模团队的XP,水晶方法的纪律性较弱,但其管理运作与团队产出相协调。

水晶方法有七大体系特征

01.经常交付:

敏捷方法对交付成果要求很高,注重频繁小批次交付,水晶方法也不例外。通过经常交付以及时获得客户、产品经理的反馈,从而提升客户价值,使产品价值最大化。

02.反思改进:

对于在迭代开发过程中出现的问题和在交付成果中发现的问题,团队要进行及时的反思。把握住问题的关键,快速地找到解决方案。当问题发现不及时,或者团队并未进行反思改进时,常常会导致问题的叠加,最终影响可用产品的交付。

03.渗透式交流:

在两个或多个成员进行交流的时候,与他们同处于一个空间范围内的其他人员会或多或少地获取他们的对话信息。因此,这种接收并非有意创造的信息来源的方式称为渗透式交流,成员根据自己的当前工作可以选择忽略,也可以选择接收。

04.个人安全:

个人安全类似于极限编程强调的“勇气”,当个人产生问题困惑的时候,选择指出问题而不是隐瞒问题,且自己的人身安全受到保障。首先,只有坦然面对不足,才能及时改正,促使自身与团队不断得到提升。其次,人身安全又是团队中互相信任的表现,只有相互信任,才能更好地完成团队协作。

05.焦点:

焦点就是首要计划。团队制定出要完成的计划,然后安排时间。

所谓“焦点”,就是确定首先要做什么,然后安排时间,以平和的心态开展工作。确保团队成员清楚的了解他们自己最重要的任务是什么,确保他们能够有充分的时间去完成这些任务。

06.与专家、用户建立方便的联系:

建立方便的联系是保证专家、用户、团队能够形成一个短周期反应链。对于小批次交付成果、用户需求变动等建立一个快速反馈机制,可以提高团队工作效率。

07.测试、管理和集成的技术环境:

  • 自动化测试可以对代码进行自动测试,减少了人工成本,使工作变得高效、快捷;
  • 简单来说,配置管理就是可以返回上一步,能够通过撤销新操作出现的失误来解决问题;
  • 经常集成功能使团队对系统快速集成,以及时发现错误、纠正错误。

水晶方法保证了产品开发的进度,较好地满足了客户的需求,使开发过程顺利实施。但在产品开发过程中,不能运用单一的敏捷方法,应该要根据项目的具体情况,借鉴多种方法,取长补短,形成新的敏捷思维。

Crystal | 水晶方法的七大特征,你了解吗?的更多相关文章

  1. 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联

    浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸 ...

  2. DNS通道检测 国内学术界研究情况——研究方法:基于特征或者流量,使用机器学习决策树分类算法居多

    http://xuewen.cnki.net/DownloadArticle.aspx?filename=BMKJ201104017&dbtype=CJFD<浅析基于DNS协议的隐蔽通道 ...

  3. 笔试算法题(53):四种基本排序方法的性能特征(Selection,Insertion,Bubble,Shell)

    四种基本算法概述: 基本排序:选择,插入,冒泡,希尔.上述算法适用于小规模文件和特殊文件的排序,并不适合大规模随机排序的文件.前三种算法的执行时间与N2成正比,希尔算法的执行时间与N3/2(或更快)成 ...

  4. 碎碎念软件研发02:敏捷之Scrum

    一.什么是 Scrum 1.1 Scrum 定义 Scrum 是敏捷开发方法之一,它使用比较广泛. 敏捷的其它开发方法还有 XP(极限编程).FDD(特性驱动开发).Crystal(水晶方法).TDD ...

  5. 人脸识别经典算法一:特征脸方法(Eigenface)

    这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新.特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的.特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eig ...

  6. 经典文本特征表示方法: TF-IDF

    引言 在信息检索, 文本挖掘和自然语言处理领域, IF-IDF 这个名字, 从它在 20 世纪 70 年代初被发明, 已名震江湖近半个世纪而不曾衰歇. 它表示的简单性, 应用的有效性, 使得它成为不同 ...

  7. 个人博客作业-week5-敏捷开发方法读后感

    满篇英文对一个非单词狂魔来说真的是很吃力啊… 敏捷软件开发方法是一种从1990年代开始逐渐引起广发关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力,他们的具体名称.理念.过程.术 ...

  8. kaggle入门2——改进特征

    1:改进我们的特征 在上一个任务中,我们完成了我们在Kaggle上一个机器学习比赛的第一个比赛提交泰坦尼克号:灾难中的机器学习. 可是我们提交的分数并不是非常高.有三种主要的方法可以让我们能够提高他: ...

  9. Swift语言之类型方法

    Swift语言有很多特性,其中之一就是类型方法,相对于其他比较流行的编程语言(C#.Java),在Swift中类型方法最大的特征在于它的可继承性,我们举个例子说明: 俗话说,龙生龙凤生凤老鼠生儿会打洞 ...

随机推荐

  1. C++ Windows - How to get process path from its PID

    出处 https://stackoverflow.com/questions/1933113/c-windows-how-to-get-process-path-from-its-pid 注意质疑(我 ...

  2. 通过注册表查询 .Net Framework 的版本

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full 注意:即使卸载 .Net Framework 这些注册表依然 ...

  3. Docker网络与存储(三)

    Docker的网络和存储 1.1 Docker的4种网络模式 host模式,使用--net=host指定. container模式,使用--net=container:NAME_or_ID指定. no ...

  4. 一款被大厂选用的 Hexo 博客主题

    首先这是一篇自吹自擂的文章,主题是由多位非前端程序员共同开发,目前经过一年半的迭代已经到达 v1.8.0 版本,并且获得大量认可,甚至某大厂员工已经选用作为内部博客,因此我决定写这篇文章向更多人安利它 ...

  5. vue2.x学习笔记(三十一)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12683075.html. 安全 现在的企业都比较在意信息系统的安全问题,在使用vue的过程中也要注意这一点. 报告 ...

  6. Android Studio快捷键动态演示

    Android Studio出来很久了,大部分已经转过来了,相对于Eclipse又是毋庸置疑,更好的使用快捷键必定达到事半功倍的效果. 友情提示:某些电脑按F1-F12键需要先按住FN,比如我的Mac ...

  7. Error: Can't find Python executable "G:\Python27"

    错误如题,node-gyp官网介绍不够详细,应设置python.exe的具体绝对路径,如下所示: npm config set python G:\Python27\python.exe 转载于:ht ...

  8. C++条件分支结构

    一.对于近期学习知识点的摘要: 1. 从第一个.cpp文件谈起, #include<iostream> //头文件 using namespace std; //使用命名空间,namesp ...

  9. STL训练 HDU - 1716 Ray又对数字的列产生了兴趣:

    HDU - 1716 Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡片上的数字(0&l ...

  10. CodeForces-1058B B. Vasya and Cornfield

    这题,我真的不知道题解是啥,自己看代码吧. #include<iostream> using namespace std; int main() { int n, d,m,i,x,y; c ...