0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

美国犹他州瓦萨奇山滑雪胜地《敏捷宣言》提供12条原则

发表时间:2023-11-05 11:04:42

文章来源:炫佑科技

浏览次数:213

菏泽炫佑科技

美国犹他州瓦萨奇山滑雪胜地《敏捷宣言》提供12条原则

2001年2月,17位软件专家聚集在美国犹他州瓦萨奇山脉的雪鸟滑雪场。 经过几天的讨论和辩论,他们共同起草了《敏捷软件开发宣言》,简称《敏捷宣言》。 这些专家包括来自极限编程、Scrum、DSDM、自适应软件开发、水晶系列、功能驱动开发和实用编程的代表。 许多人已经拥有自己创建的方法并正在传播,他们都拥有丰富的软件编写经验,并且正在寻找文档驱动的重量级软件开发流程的替代方案。

敏捷宣言的四个价值观

也就是说,虽然右边的物品有它的价值,但是左边的物品的价值应该更被看重。

除了四个价值观之外,敏捷宣言还提供了 12 条原则:

1. 我们*重要的目标是通过持续尽早交付有价值的软件(价值**)来满足客户。

2. 愿意面对需求的变化,即使是在开发的后期。 为了客户的竞争优势,通过敏捷流程控制变革(拥抱变革)。

3. 频繁地交付工作软件,间隔几周或一两个月,倾向于采用较短的周期(短迭代交付)。

4.业务人员和开发人员必须互相配合,项目中的每一天也不例外(业务参与)。

5、激发个人的斗志,以个人为核心建设项目。 提供必要的环境和支持,辅以信任,实现目标(以人为本)。

6、无论团队内部还是外部,传递信息*好、*有效的方式就是面对面的交谈(面对面的沟通)。

7. 工作软件是衡量进展的主要标准(以结果为导向)。

8.敏捷流程倡导可持续发展。 赞助商、开发者和用户必须能够共同努力,以保持其步伐的稳定延续(保持节奏)。

9. 敏捷能力通过对技术卓越和良好设计(追求卓越)的不懈追求而增强。

10、以简单为基础,是尽量减少不必要工作量的艺术(简单务实)。

11、*好的架构、需求和设计来自组织团队(团队自组织)。

12. 团队定期反思如何提高有效性并相应地调整其行为(持续改进)。

尽管这些价值观和原则起源于软件行业,但敏捷方法的应用此后已经传播到许多其他非计算机软件开发行业,将其发展成为一种思维方式并体现在许多不同的实践中。

敏捷软件开发

“敏捷”是一个涵盖各种框架和方法的总称。 它是指任何符合敏捷宣言的价值观和原则的方法、技术、框架、手段或实践。 敏捷软件开发,简称敏捷开发,是自20世纪90年代以来逐渐引起广泛关注的一些新的软件开发方法,以应对快速变化的需求。 它们的具体名称、概念、过程和术语都不同。 与“非敏捷”相比,他们强调程序员团队和业务专家的密切协作、面对面的沟通、频繁交付新的软件版本、紧凑性和自组织。 一种能够很好地适应需求变化,同时也更加注重人的作用的团队、编码和团队组织方法。

在敏捷开发的发展过程中,出现了许多不同的流派,如:极限编程(XP)、自适应软件开发(ASD)、动态系统开发方法(DSDM)、水晶方法、特征驱动开发(FDD)等。 ,但基本原理是相同的。 从开发人员的角度来看,主要特点包括站立会议、看板、小版本发布、文档少、注重协作、客户参与、自动化测试、自适应计划调整、结对编程等。从管理者的角度来看,主要特点是:重点是测试驱动开发(TDD)、持续集成(CI)、重构等。在特定项目上,每个团队可能会选择适合其项目和组织文化的不同方法和实践。

敏捷方法也可以被认为是精益方法的一个子集,它们都是精益方法的具体实例。

敏捷是许多方法的总称

尽管看板方法是精益阵营中的重要方法,但它也普遍被视为重要的敏捷框架,并广泛应用于敏捷环境中。

所有这些方法都具有以下共同特征:

1.迭代开发。 即整个开发过程分为若干迭代周期。 每个迭代周期是固定或可变长度的时间块。 每个迭代周期的持续时间通常很短,通常为一到六周。

2.增量交付。 产品在每次迭代结束时增量交付,而不是在整个开发过程结束时一次性交付。 每一次交付都是一个可以部署到用户的应用环境中并被用户使用的产品,能够给用户带来立竿见影的效益和价值。

3.开发团队和用户反馈推动产品开发。 敏捷开发方法提倡用户可以参与整个开发过程。 这使得需求变化和用户反馈能够得到动态管理并及时集成到产品中。 同时,团队还可以及时反馈用户需求。

4.持续集成。 新功能或需求变化总是尽可能频繁地集成到产品中。 有些项目在每次迭代结束时进行集成,而另一些项目则每天都进行集成。

5.开发团队自我管理。 拥有一支积极主动、自我管理且沟通方式自由的开发团队是每个敏捷项目的必备条件。 人是敏捷开发的核心。 敏捷开发始终建立以人为中心的开发流程和机制,而不是将流程和机制强加于人。

敏捷开发流程

敏捷开发流程

在敏捷开发过程中,通过审查频繁交付的可交付成果,团队将能够获得更多信息来进行计划和重新计划。 从业务角度来看,敏捷是指建立组织更快(尽早)交付有价值的产品并灵活响应变化的能力。

结构化需求管理

Epic、Story和Task是用于划分需求粒度的标签。 将需求按照粒度划分为不同的级别。

Epic--Stroy-Task是一种对需求进行结构化管理的方法,将需求从上到下逐层分解,形成自下而上的依赖关系。 在实际开发过程中,当需要变更和动态调整时,需要避免偏离目标方向,并保证添加的和Task与其上层相关。 这确保了团队的工作朝着目标迈进。

敏捷团队

敏捷团队专注于快速开发产品。 在实践中,*有效的敏捷团队往往由 5 到 9 名成员组成。 理想情况下,敏捷团队应该在团队工作场所中与专门的团队成员一起工作。 敏捷提倡自我管理的团队。 敏捷团队与完全信任和支持团队工作方法的仆人式领导一起成长。

特点一:自组织、自管理

自组织自管理是指当团队遇到问题时,团队成员需要自己研究解决方案并解决问题,而不需要领导监督,实现自驱动。 例如:如果一个团队成员承诺在8小时内完成某个开发任务并认领该任务美国犹他州瓦萨奇山滑雪胜地《敏捷宣言》提供12条原则,那么他不需要其他人来监督他。 他可以主动完成任务、反馈问题、寻求帮助等。

特征2:自适应

通过对前期项目的研发流程、技术方案、团队协作、可交付成果、客户反馈、存在问题等进行回顾、回顾、反思,团队可以自行优化和调整,以更好地进行下一次迭代过程。

特点三:完全透明

项目过程中,团队成员彼此清楚地了解自己每天在做什么,遇到什么问题,完成什么任务。 该信息可以在日常站立期间提供或显示在仪表板上。

常见的敏捷实践

敏捷开发过程有一些通用的实践,可以在实际开发过程中参考或选择性地实施。

审查

回顾,也常被称为“回顾”和“阶段性总结”,是*重要的实践,因为它可以帮助团队从以前的产品开发工作及其流程中学习、改进和调整其流程。 敏捷的原则之一是“团队定期反思如何提高绩效并相应地调整行为”。 回顾可以在项目中期或项目结束时进行。 您通常可以选择在这些关键时刻执行此操作:

通过审查,基于定性或定量数据,然后利用这些数据找到根本原因,设计对策,对所有需要改进的事项进行优先排序并制定行动计划,然后团队选择适当数量的项目添加到下一个项目中迭代规划。

重要的是,回顾不是为了责备,而是为了让团队学习和改进。

待办事项清单

待办事项列表可以理解为一个需求池。 我们收集到的客户需求和反馈,以及团队内部的产品规划和反馈,都可以存储在需求池中,每个需求都标记有优先级和计划版本。 ,显示预期的可交付成果的顺序。 根据实际情况,优先级和计划版本也可以动态调整。 根据待办事项列表,可以定义下一次开发迭代的范围。

每日站立会议

团队成员利用日常 scrum 相互做出小承诺、发现问题并确保团队工作顺利进行。 每天的站立会议需要设定时间限制,比如不超过15分钟。 通过某种形式的“演练”板或任务列表,团队中的任何人都可以主持站立会议。

通常,在基于迭代的敏捷中,每个团队成员轮流回答以下问题:

从这些问题得出的答案使团队能够自组织并让团队成员相互负责,以完成他们在迭代之前和整个迭代过程中承诺的工作。

举行站立会议是为了发现问题,而不是解决问题。 记录问题,然后在站会后立即或在适当的时间召开另一次会议,以便解决问题。

鼓励任何团队成员而不是项目经理或领导者来主持会议,以确保会议不会变成状态报告会议,而是一场自我组织和团队相互承诺的会议。

看板

在敏捷项目管理中,团队常用的工具是白板加便签。 我们可以把任务写在便签上,将白板做成待办、正在处理、已完成等泳道,然后将这些便签贴到相应的泳道上,每天更新每项任务的进度。 团队成员还可以根据仪表板清楚了解每项任务的进度等信息。

陈述/判断

当团队以用户故事的形式完成特定功能时,团队会定期展示他们的工作成果。 看完演示后,产品负责人接受或拒绝这个故事。 一般准则是至少每两周展示一次团队的工作产品。 这个频率对于大多数团队来说已经足够了,这样团队成员就可以获得反馈,防止他们走错方向。

演示/评审的作用还体现在确保产品、开发和测试对需求的理解一致。 我们通过敏捷流程中的版本计划审查、需求审查、设计审查、测试用例审查和开发等关键活动来确保这一点。 在版本计划审核和需求审核期间,产品经理解释版本范围、需求和上下文影响。 开发和测试都将参与。 如果对需求理解有不一致的地方,会立即沟通,产品经理进行检查。 到了测试用例评审的时候自动化软件开发,将需求一一细化为测试用例,以便开发和测试能够进一步了解需求并达成共识。 开发的功能完成后,测试人员和产品再次进行检查,看开发的功能是否符合要求。 明显的不一致之处当场指出,并在开发人员改正后提交给测试人员进行测试,这样开发就能及早发现。 避免将一些问题带入测试环境,以提高测试的有效性。

持续集成

持续集成意味着每当我们有新的代码输出时,都可以以自动化的方式在服务器上构建和打包,然后发布到集成环境、测试环境或生产环境。 以持续集成为基础,我们可以快速重构代码(重构就是响应变化),尽快收到反馈,并频繁发布。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多