关于敏捷宣言的解读
什么是敏捷软件开发宣言
2001年2月,在美国犹他州瓦萨奇山雪鸟滑雪胜地,17位软件开发领域的大师共同发布了《敏捷软件开发宣言》(Manifesto for Agile Software Development)。大师们包括来自于极限编程、Scrum、DSDM、自适应软件开发、水晶方法、特征驱动开发、实效编程的代表们,还包括了希望找到文档驱动、重型软件开发过程的替代品的一些推动者。
敏捷软件开发宣言被视为敏捷软件开发的指导思想。
敏捷软件开发宣言的内容
敏捷软件开发宣言简称敏捷宣言,包括价值观和原则两项内容。
价值观
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划
也就是说,尽管右项有其价值,我们更重视左项的价值。
敏捷宣言遵循的原则
- 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
- 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
- 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
- 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
- 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
- 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
- 可工作的软件是进度的首要度量标准。
- 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
- 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
- 以简洁为本,它是极力减少不必要工作量的艺术。
- 最好的架构、需求和设计出自自组织团队。
- 团队定期地反思如何能提高成效,并依此调整自身的举止表现。
敏捷软件开发宣言的理解
宣言的第一句:我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。其中有四个关键词:
- 实践:所谓实践出真知,宣言是从实践中得出的,具有可参考和可落地的指导意义。
- 软件开发方法:敏捷宣言是从软件开发实践中得出的,主要用来指导软件开发,其他领域的推行要因地制宜。
- 身体力行:敏捷要先从自身做起,以自己为中心去影响其他人。
- 帮助他人:将敏捷的价值观和方法论分享给更多需要的人,普惠大众。
接下来是四句价值观,每个价值观都遵循相应的敏捷原则。
要重视个体的意愿和能力的提高,同时要重视团队内和团队间的沟通、合作,构建自组织团队,定期反思、持续提高和改进。
遵循的敏捷原则 |
理解 |
业务人员和开发人员必须相互合作,项目中的每一天都不例外 |
强调跨团队的交互合作 |
激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。 |
强调个体的重要性,决定员工表现的两个核心要素是能力和意愿,给予信任和支持、激发斗志都能够极大提升意愿。 |
不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。 |
沟通的有效性比较为:见面沟通>语音沟通>文字沟通。面对面的沟通可以有肢体语言和情绪的辅助,提升有效性。 |
最好的架构、需求和设计出自自组织团队。 |
根据J. Richard Hackman的授权矩阵(注),自组织团队接近自管理和自规划型团队,自组织解放了知识工作者的创造力和主观能动性,最有可能做出最好的架构和设计。 |
团队定期地反思如何能提高成效,并依此调整自身的举止表现。 |
通过定期反思和调整,实现团队和个体的持续改进 |
坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。 |
提高团队和个人能力的必经之路。只有能力提高,才能在有意愿的情况下胜任工作。 |
软件开发的目标和进度衡量标准都是交付可工作的软件,给客户带来价值。让客户满意,因此我们要小步快跑,频繁交付、及早获得反馈。
遵循的敏捷原则 |
理解 |
我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。 |
关键词:目标、持续不断、及早交付、有价值、客户满意。 |
经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。 |
关键词:经常地交付、可工作、短周期 |
可工作的软件是进度的首要度量标准。 |
关键词:可工作 |
以简洁为本,它是极力减少不必要工作量的艺术。 |
关键词:简洁、减少不必要的工作量。体现了精益思想中的减少浪费。 |
作为软件开发方,我们和客户之间从来不是对立面,不是零和博弈,而应该建立的是双赢的关系,只有为客户创造有价值的产品,团队的付出和劳动才是有价值的,所以在项目过程中我们要做的是客户合作,而不是单纯依赖于最初的一纸合同去谈判。
遵循的敏捷原则 |
理解 |
业务人员和开发人员必须相互合作,项目中的每一天都不例外。 |
业务人员代表的是客户需求,我们要与业务人员合作,进而和客户合作,高质量的完成任务,为客户带去价值,实现双赢。 |
我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。 |
项目的目标是客户满意,通过交付有价值的软件,给客户带来收益,实现双赢。 |
遵循的敏捷原则 |
理解 |
欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。 |
整个开发过程我们都是围绕客户的目标去进行项目的规划,当市场环境和客户的需求有变更时,我们应该做的是及时响应和调整,而不是遵循原始计划,在敏捷中,计划也是分层次的,从愿景、产品路线图、版本计划、迭代计划到每日计划渐进明细,不是一蹴而就。 |
最后一句:尽管右项有其价值,我们更重视左项的价值。工具流程、文档、合同和计划对于项目很重要,不可或缺,但是相对来说,个体交互、可以工作的软件、客户合作和及时响应需求变化的价值更大。
注:J. Richard Hackman的授权矩阵
- 点赞
- 收藏
- 关注作者
评论(0)