首页 > 其他分享 >敏捷宣言

敏捷宣言

时间:2023-12-05 09:01:08浏览次数:17  
标签:软件开发 宣言 客户 开发 敏捷 团队

1、什么是敏捷宣言?

  敏捷宣言(Manifesto for Agile Software Development),也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法。敏捷软件开发关注保持简洁的代码,经常性测试以及及时地交付应用的功能模块。敏捷宣言的创建是为了替代文档驱动的繁重的软件开发流程,例如瀑布式方法。

2、敏捷宣言的诞生

  2000年9月,来自芝加哥Object Mentor公司的Bob Martin用一封电子邮件吹响了下次会议的集合哨。“我想召集一个为期2天的小型会议,时间是2001年1月或2月,地点在芝加哥,目的是让所有轻量级方法论的领袖们汇聚一堂。您们都被邀请了。如果您们觉得还有谁该来,请告诉我。”

  2001年2月11日到13日,17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地雪鸟(Snowbird)雪场。经过两天的讨论,“敏捷”(Agile)这个词为全体聚会者所接受,用以概括一套全新的软件开发价值观。这套价值观,通过一份简明扼要的《敏捷宣言》,传递给世界,宣告了敏捷开发运动的开始。参会者们包括来自于极限编程、Scrum、DSDM、自适应软件开发、水晶系列、特征驱动开发、实效编程的代表们,还包括了希望找到文档驱动、重型软件开发过程的替代品的一些推动者。

3、具体内容

官网:https://agilemanifesto.org/iso/zhchs/manifesto.html

1. 四大核心价值

个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作  高于 合同谈判
响应变化 高于 遵循计划

也就是说,尽管右项有其价值,
我们更重视左项的价值。

2. 十二原则

我们遵循以下原则:

1、我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

2、欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

3、经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

4、业务人员和开发人员必须相互合作,项目中的每一天都不例外。

5、激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

6、不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

7、可工作的软件是进度的首要度量标准。

8、敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

9、坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

10、以简洁为本,它是极力减少不必要工作量的艺术。

11、最好的架构、需求和设计出自自组织团队。

12、团队定期地反思如何能提高成效,并依此调整自身的举止表现。

3、解读

1. 四大核心价值的解读

1、个体与互动高于流程和工具

  这意味着虽然流程和工具重要(尤其是大型组织),但是它们无法替换有能力的个体和高效的互动。个体的技能和他们之间的互动才是最关键的。

当我们开发产品、解决问题或改进工作方式时,我们要寻找改进互动和提高能力的方法
在项目期间,产品管理和开发团队必须在一起工作
在项目期间,架构师、设计师和测试人员必须每天在一起工作
面对面沟通是极其重要的,它不能被其它形式完全替换
2、工作的软件高于详尽的文档

  这意味着已集成、已测试、潜在准备发布的产品才是关键度量,它能够有效地跟踪项目进度和对发布做出决策。

要以小步增量的方式构建产品:做一些分析、设计,然后开始编码和测试以验证设计
设计需要做,比如敏捷建模工作坊(设计与文档不一样)。如果需要传递信息给客户、维护工作的人员,简易文档还是必要的
好架构是持续开发产品的关键,架构是设计出来的,建立一个可实现的简单架构是持续化开发的第一步。随着时间的推移,架构会演进,所以持续追求卓越技术和好设计能够增强产品敏捷性。
3、客户合作高于合同谈判

  这意味着我们应该超越谈判并尝试提升与客户的合作。我们还应该建立以合作为基础的关系,而不是靠公司内的正式接口。

在实践中,意味着产品经理、市场或销售人员在产品开发期间要经常从客户那里请求反馈并排列优先级。
在与我们自己的业务方合作中,我们应该寻找开发期间增进和改善合作的方法。
产品管理和开发应该密切合作,而不是通过契约或手续。
4、响应变化高于遵循计划

  这意味着欢迎需求变化,哪怕是开发后期。

首先,预先知道所有需求是不可能的。每个项目都会有浮现和继承的需求。
如果我们对客户需求变更做的好,我们就会增强客户的竞争优势还有我们自己。
为了鼓励响应变化并使其更容易操作,需要建立流程和工作方式。承认计划的不确定性
计划是必要的,但计划必须适应变化:我们需要持续调整计划。前期花很长时间制定详尽的计划的结果会导致大量的返工。同时,我们需要有足够的计划水平来评估业务需求和对其长期影响的判断。这是一种平衡的艺术。

2. 十二原则的解读

1、我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

  客户满意和有价值的软件是关键词。要确保我们开发的软件产品能够给客户带来真正的价值,这完全取决于在开发期间与客户的密切合作。产品管理是确保客户需求在开发期间被正确理解的关键。我们应该集中精力在对客户最有价值的工作上。

  尽早并持续交付的能力是满足客户的关键。及时交付部分功能比最后交付全量功能更好,至少我们应该给我们客户一个选择。

2、欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

  我们的目标是为了开发能够帮助客户提升价值的产品,要支持任何变化。变化不是一种否定,它体现了团队和产品负责人在敏捷开发过程中的一种工作方式。

3、经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

  开发周期和发布周期完全不同。尽管有发布周期,但我们的目标是短开发周期。发布周期的长度依赖业务决策,并且和客户的期望紧密关联。短开发周期的频繁交付缩短了反馈周期并增强了学习。频繁交付还能让团队及早暴露弱点并及时移除障碍,增加了敏捷性和灵活性。

4、业务人员和开发人员必须相互合作,项目中的每一天都不例外。

  只要在业务和研发之间建立起桥梁,我们就能从中受益。业务人员和产品管理知道市场状况、客户需求和客户的价值。开发团队知道产品和技术可行性。如何将这两方面结合?我们需要作出睿智的决策

5、激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

  知识类工作(比如软件开发)是由具有技能和激情的人来做的。为了激发个体的斗志和创造力,自由是最重要因素。要让角色去适应人而不是让人去适应角色。

6、不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

  面对面交谈在分布式开发中尤为重要。当我们看到人们彼此交谈时,信息更多以听说的形式被传递。文档(虽然它很重要)不能代替交谈,将每件事都写下来简直是不可能的。我们不应该只依靠写文档来传递重要信息。

7、可工作的软件是进度的首要度量标准。

  跟踪有多少功能已经实现,集成,测试是一种更可靠的进度度量。

8、敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

  目标是为了消除高负荷工作并保持可持续的速度工作(例如,不加班工作)。质量问题通常牺牲长期收益,人们越是疲劳创造力就越低。因此可持续开发吧!

9、坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

  任何技术负债(代码缺陷、架构缺陷)都会使开发减慢。我们不应该让技术负债积压,所以要持续地做重构,更改发现的缺陷,持续关注实现架构的质量。

10、以简洁为本,它是极力减少不必要工作量的艺术。

  这种简单原则既适用于产品的功能特性也适用于流程。多余的功能不要增加。所有流程步骤应该时刻面临挑战(例如,这步真的需要吗? 谁会读这个文档?…)。

11、最好的架构、需求和设计出自自组织团队。

  架构、设计和需求会随着团队一起工作慢慢浮现,并且团队会从中学到很多。一些前置需求、架构和设计工作是需要的,但是不能把它们定义在纸面上传递。架构师和系统工程师是自管理研发团队的一部分,不要成为“孤岛”。

12、团队定期地反思如何能提高成效,并依此调整自身的举止表现。

  花时间反思和从经验中学习能够促进持续化开发。因此“检查与调整”是敏捷核心实践之一。

4、背景和意义

   Kent Beck分享了他早年的一次亲身工作经历。当时他估算的开发工作量是2个人做6个星期。结果在项目开始的时候,经理临时换了另一个人和他一起工作,最后他们花了12个星期才完成项目。他的感觉很糟,因为在后面6个星期中间,经理一直喋喋不休,嫌他太慢。Kent有点沮丧,觉得自己作为一个程序员实在是太失败。到最后,他终于意识到最初2个人做6个星期的估计其实是相当准确的。这不是他的失败,是管理者的失败(指临时换人这件事),实际上是那些持续祸害着我们这个行业的,所谓标准化、流程化的“僵化”头脑的失败。

  同样的事情每天都在重复发生。市场人员、经理、外部客户、内部客户,当然,也包括开发人员,谁都不想难为自己,去做出那些艰难的、需要折衷的决定。于是他们利用组织的权责划分将难题转嫁给他人,甚至提出荒谬的要求。这不仅仅是软件开发的问题,而是无处不在。


参考
[1]  敏捷软件开发宣言-简体中文 2016/09/15 http://agilemanifesto.org/iso/zhchs/manifesto.html

[2]  51CT0博客-历史:敏捷宣言诞生记 2016/09/15 http://davidzhang33.blog.51cto.com/3095817/1103860/

[3]  TechTarget中国-敏捷宣言:四大核心价值和十二原则 2016/09/15 http://www.searchcio.com.cn/showcontent_54322.htm

[4]  推酷-敏捷宣言及原则解读 2016/09/15 http://www.tuicool.com/articles/ziqIN3Y

[5]  CSDN博客-敏捷宣言思想认识误区 2016/09/15 http://blog.csdn.net/youcharming/article/details/41865893

标签:软件开发,宣言,客户,开发,敏捷,团队
From: https://www.cnblogs.com/binbingg/p/17876457.html

相关文章

  • 个人独立开发者能否踏上敏捷之路
    很多软件开发团队都在使用Scrum、极限编程(XP)、看板等敏捷方法管理项目流程,持续迭代并更快、更高效地为客户持续交付可用的产品。除了团队,国内外很多个人独立开发者也在尝试将敏捷应用到自己的开发工作流程中,但大多数的结果都是收效甚微,这是为什么呢?个人践行敏捷是否可行? 敏捷开......
  • DevOps|研发提效-敏捷开发之每日站立会
    对于研发效能团队建设和组织,本文不再赘述,可以参考之前的文章,已经讲得很透彻了。本文重点讲我们日常是怎么开站立会,怎么让团队跑起来,高效能产出的。每日站立会,15分钟到30分钟,看似非常短的一个会,但是对团队成功、业务发展有着非常重要的作用。站立会意义团队之间可以在极短的时......
  • 进行敏捷开发培训有助于团队更好地理解敏捷方法、提高工作效率和质量,促进团队协作
    ​敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、客户需求和适应变化。进行敏捷开发培训其实有多种原因,我整理了一些,可以作为参考:理解敏捷原则和实践: 敏捷开发不仅是一种方法论,更是一种思维方式和文化。培训能够帮助团队成员了解敏捷的核心原则......
  • Aloudata 余俊:数据虚拟化技术如何实现敏捷高效的逻辑数据集成与链路编排
    一、Data Fabric 与数据虚拟化简介在正式介绍 Data Fabric 之前,我想先回顾一下我们现有的数据仓库体系面临的问题。当提到数据仓库时,许多从事数据工作的人可能会想到 ETL(抽取、转换、加载)和一些技术工具,如 Hive、Hadoop 和 Spark。我在过去十多年一直在数据仓库领域工作,与......
  • Scrum敏捷开发流程核心及敏捷支持工具
    ​Scrum是一种敏捷开发框架,用于管理复杂的项目。以下这些步骤构成了Scrum敏捷开发流程的核心。通过不断迭代、灵活应对变化和持续反馈,Scrum框架帮助团队快速交付高质量的产品。以下是Scrum敏捷开发流程的基本步骤:产品Backlog创建: 产品负责人与利益相关者合作,制定产品Backlog......
  • 为什么需要进行敏捷开发培训?有哪些好处?
    ​敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、客户需求和适应变化。进行敏捷开发培训其实有多种原因,我整理了一些,可以作为参考:理解敏捷原则和实践: 敏捷开发不仅是一种方法论,更是一种思维方式和文化。培训能够帮助团队成员了解敏捷的核心原则......
  • 敏捷冲刺——第八天
    团队作业4——项目冲刺这个作业属于哪个课程计科21级12班这个作业要求在哪里团队作业4——项目冲刺这个作业的目标进行敏捷冲刺开发团队队名:KAODAPU团队组成张建文(组长)3121004845叶飞池3121004843林智谦3121004831刘晋延3121004832......
  • 敏捷冲刺11.25
    所属课程软件工程导论作业要求项目冲刺作业目标连续七天的敏捷冲刺github链接CampusSecond-handMarket--NoBailanGroup目录一、团队介绍1、团队名称:摆烂就不队2、团队成员二、站立式会议三、任务情况1、昨天已完成任务2.今天计划完成任务3、工作中遇到的困......
  • 敏捷冲刺——第七天
    团队作业4——项目冲刺这个作业属于哪个课程计科21级12班这个作业要求在哪里团队作业4——项目冲刺这个作业的目标进行敏捷冲刺开发团队队名:KAODAPU团队组成张建文(组长)3121004845叶飞池3121004843林智谦3121004831刘晋延3121004832......
  • 敏捷冲刺11.24
    所属课程软件工程导论作业要求项目冲刺作业目标连续七天的敏捷冲刺github链接CampusSecond-handMarket--NoBailanGroup目录一、团队介绍1、团队名称:摆烂就不队2、团队成员二、站立式会议三、任务情况1、昨天已完成任务2.今天计划完成任务3、工作中遇到的困......