理解敏捷的价值观和原则
敏捷宣言
敏捷宣言也称敏捷软件开发宣言,软件开发业的先辈们对以下四则价值观达成了一致:
- 个体和互动高于流程和工具
- 可工作的软件高于详尽的文档
- 客户协作高于合同谈判
- 响应变化高于遵循计划
**注:**下面是这份宣言的完整内容:
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。
由此我们建立了如下价值观。
个体和互动 高于 流程和工具
可工作的软件 高于 详尽的文档
客户协作 高于 合同谈判
响应变化 高于 遵循计划
也就是说,虽然右项有其价值,但是我们更重视左项的价值。
个体和互动高于流程和工具
盲目的遵循流程会让人走入误区,好的工具有时会让人更快速的犯错误。软件世界中存在很多优秀的实践经验,但并不是所有的这些实践都适合项目的当前情况。这个原则团队中的所有成员应该都要心里有数。他们需要理解团队在一起的工作方式,明白每个人的工作会对其他人造成怎样的影响。当我们打算在团队中实施一项流程或工具时,即使在逻辑上和理性上看上去很合理,你还需要做的是(推销流程和技术)让大家明白这么做的理由,知道团队到底在为此做什么。如果不能让团队很好的理解你的目的或初衷,那么在他们看来你只是在发号施令。
可工作的软件高于详尽的文档
在一个软件项目中,有太多的事情可以文档化。很多团队都会决定采用详尽的文档,事无巨细地全部记下来。也不考虑以后会不会有人来阅读。敏捷团队更注重可工作的软件,即可以给公司带来价值的软件(公司可出售或运营的软件,帮助员工高效工作的软件等等)。
所谓的价值:项目能交付的价值或能节省的成本 > 开发软件本身的成本
虽然如此,文档还是要写的很多种类的文档还是很有用的。好文档能帮助团队理解问题,与用户沟通,以及避免将错误的需求开发进软件中。这种文档消耗的成本与后期文档给团队节省的时间和精力相比是划算的。另一方面,关注可工作的软件可以确保团队没有偏离正轨,如果文档能清晰地表明可工作软件的方向,那么这种文档对项目就是有贡献的。团队通常可以采用一些将文档嵌入软件内部的实践,比如TDD(测试驱动开发),关于TDD大家可以查看这里。
客户协作高于合同谈判
当公司的组织架构是按照职能来划分的时候,即程序员,测试人员,产品经理以及运营人员等产品相关的其他人员在不同的部门的时候。那么他们的工作就像是互相遵照合约合作,不同部门团队之间都会把服务级别协议放在台面上讨论。这样做也许会降低风险,减少与老板上级之间的矛盾,因为你可以凭借一纸之文来指责其他团队影响了软件的交付,从而助长所谓的”甩锅文化“。当公司的目标是给公司外的用户交付软件时这种方式只会适得其反。
敏捷团队落实这项价值观的一项实践是在团队中安置一名产品所有者,他可能不会参与具体的开发,但是他会参加会议,贡献想法,最重要的是所有人都把最终的产品当作是自己的东西。
响应变化高于遵循计划
项目管理中通常流行”怎么计划怎么来“,遗憾的是如果计划有误,那么构建出来的产品就是错误的产品。团队需要不断的发现变化,适应变化并且最后能快速的响应变化。制定计划的人抗拒变化是很常见的事情,因为改变计划需要消耗精力。
”任务板“是一项良好的实践,可以帮助团队做出响应变化的正确决策。
敏捷团队通常会使用任务板来展示任务并跟踪进度。他们会把任务或者用户故事写在索引卡片上面,然后根据项目的进展移动这些卡片。很多团队还会在任务板上画图跟踪进度。这样做可以让大家跟上进展,让计划不断地实时地更新。
我们要意识到计划是会变的,交付软件产品比严格遵守计划更重要。
没有具体的实践,原则是贫瘠的;但如果缺乏原则,实践是没有生命,没有个性,没有勇气的。
敏捷软件开发的12条原则
交付项目
1.最优先要做的是尽早、持续地交付有价值的软件,让客户满意。
2.欣然面对需求的变化,即使是在开发后期。敏捷过程利用变化为客户维持竞争优势。
3.频繁交付可工作的软件,从数周到数月,交付周期越短越好。
沟通与合作
4.在团队内外,面对面交谈是最有效、也是最高效的沟通方式。
5.在整个项目过程中,业务人员和开发人员必须每天都在一起工作。
6.以受激励的个体为核心构建项目,为他们提供环境和支持,相信他们可以把工作做好。
项目实施-推进项目
7.可工作的软件是衡量进度的首要标准。
8.敏捷过程倡导可持续开发。赞助商、开发人员和用户要能够共同、长期维持其步调,稳定向前。
9.坚持不懈地追求技术卓越和设计优越,以此增强敏捷的能力。
项目和团队的持续改进
10.简单是尽最大可能减少不必要工作的艺术,是敏捷的根本。
11.最好的架构、需求和设计来自自组织的团队。
12.团队定期反思如何提升效率,并依此调整。
总结
本文主要讲述了敏捷开发中的价值观和原则。正如文章那句话(没有具体的实践,原则是贫瘠的;但如果缺乏原则,实践是没有生命,没有个性,没有勇气的。)所描述的。围绕着敏捷开发的价值观和原则,我们发展出了很多有效的实践,Scrum、XP极限编程、看板方法、精益思维等等。有一个很大的误区是时常在行业内有许多人认为某一项实践就代表着敏捷开发。但是正如本文所描述的敏捷开发提供了他的价值观和原则,敏捷开发并没有一个强制的配套的实践,甚至某些优秀的团队并没有遵循已有的敏捷相关实践,只是在项目进行的过程中遵循的敏捷的价值观和原则,仅仅如此,他们所做的也被称的上敏捷开发。即敏捷的独特之处在于从价值观和原则出发。
关注笔者公众号,推送各类原创/优质技术文章 ⬇️
理解敏捷的价值观和原则相关推荐
- 【敏捷那些事儿 02期】如何理解敏捷价值观和原则?
目录 敏捷开发宣言 左右事项的辩证关系 四条价值观剖析 敏捷十二原则 原则一 价值优先 原则二 拥抱变化 原则三 短迭代交付 原则四 业务参与 原则五 以人为本 原则六 面对面沟通 原则七 成果导向 ...
- 敏捷 | 如何正确理解敏捷?
[敏捷开发]| 作者/Edison Zhou 在过去的五年时间里,我所在的公司和团队一直使用的都是敏捷开发模式,我也在2018年底获取了Scrum联盟的CSM认证,对于敏捷的理解也是从最初的感性认识到 ...
- 理解敏捷价值观(学习敏捷笔记)
理解敏捷价值观 敏捷是指能够让团队思考更加有效.工作更为高效.并且做出更好决策的一组方法和相关理念.敏捷也是一种思维模式 敏捷宣言 我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人 个 ...
- 软件过程的价值观、原则以及实践——从敏捷说起
[写在最前:文章的很多观点是S老师讲授并且我觉得能引发我许久不动的大脑的一点零星火花的内容.在S老师上课之前,R老师曾就敏捷开发提出了诸多质疑,敏捷真的是拥抱变化的么?开发人员真的欢迎变化么?敏捷的方 ...
- 敏捷思维要点--价值观、原则、敏捷方法定义
总结:敏捷思维由价值观定义,以十二原则为指导,并在不同实践中体现. (1)敏捷思维价值观 (2)敏捷原则 (3)价值观.原则和通用实践之间的关系 (4)敏捷方法定义 "敏捷方法"是 ...
- 质量管理14条原则、敏捷开发宣言、敏捷开发十二原则
一.质量管理大师爱德华·戴明博士经典的质量管理14条原则 1. Create constancy of purpose toward improvement of product and servic ...
- 4.敏捷宣言 - 12大原则
<敏捷宣言>背后有十二个原则,如图2-3所示,句首关键字可帮大家抓住要点. (敏捷宣言遵循的原则). (1)我们最重要的目标,是通过持续不断地及早交付有价值的软件来使客户满意. ● 客户满 ...
- 敏捷个人 - 敏捷个人价值观,欢迎提出你的意见和你的价值观
在<敏捷个人方法,指引个人成长>中我介绍了一个敏捷个人项目,在<敏捷个人 - 我是这么理解方法论的>中介绍了方法论之首the way of thinking,本篇将探讨一下敏捷 ...
- 理解敏捷思想的63句话!
序号 类别 箴言 解释 1 持续提升 敏捷转型是文化变革,前景美好,道路曲折,,必须领导先行. 冰冻三尺,非一日之寒.要想转型到敏捷文化,需要领导投入.开发人员配合.管理部门理解和支持才可能成功. 敏 ...
最新文章
- linux驱动:TI+DM8127+GPIO(五)之plarform
- java Ext安装_eclipse中ext插件安装方法
- 类属性和实例属性冲突
- ffmpeg-win32-v3.2.4 下载_MVBOX下载|MVBOX 7.1.0.4官方版
- 刚接触电子时,有过哪些百思不得其解的问题?
- python提取文本中的数字_EXCEL中提取汉字、字母、数字如此简单
- 《Java程序设计》第4周学习总结
- php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法
- 阿里python400集_自学成才的阿里大牛整理的400集自用Python视频资料,万物皆可爬...
- 高中电子技术——继电器
- ps aux 和ps -aux和 ps -ef的选择
- 论文阅读-多任务(2021)-YOLOP:用于自动驾驶目标检测与语义分割的实时多任务模型
- html字体样式不显示不出来,css怎么设置不显示文字
- 【老生谈算法】matlab实现非线性拟合曲线源码——非线性拟合曲线
- mysql按 结束不了语句_每一条 mysql 命令必须以( )结束,否则系统判断语句尚未结束,暂不执行_大学计算机A1重修答案_学小易找答案...
- web前端高级React - React从入门到进阶之React条件渲染
- 基于JSP动漫论坛的设计与实现(论文+PPT+源码
- 再获殊荣 用友U9 cloud荣获“2022中国制造业云ERP状元奖”
- JavaScript 教程「6」:数组
- Your PHP version does not satisfy that requirement