fbpx
成功敏捷软件开发的10个特征
分享在linkedin
在twitter上分享
在facebook上分享
共享电子邮件
在打印

 

The companies that are the most successful embracing agile software 开发ment understand that agile is not something that companies do; instead, 敏捷是公司所需要的. 变得敏捷需要很长时间,但回报已经被证明了. 不同行业的组织, 从医疗保健到银行业, 从公共部门到媒体, 是否实现了敏捷软件开发带来的巨大价值:更好质量的产品, 更快的上市时间, 以及更高质量的决策. 

 

关于敏捷的文章已经写了很多 手机应用程序开发:工具和方法, 跨职能团队和短迭代的好处, 以及成功所必需的文化. 然而, 有必要考虑敏捷开发的基本特征,以及它们如何应用于实际软件开发项目的执行. 

 

下面的文章详细介绍了敏捷软件开发的十个核心特征.

1. 定长短跑 

敏捷软件开发方法有两个中心交付单元:sprint和release. 一个发行版包含几个sprint,每个sprint本质上都是一个单独的小项目. 功能, 维护, 增强请求都是有组织的, 估计, 并且在分配到发布之前按sprint优先级排序. 

 

开发项目按照可预测的固定长度的冲刺节奏推进. 新产品的稳定交付, 工作, 在每个sprint结束时测试的特性提供了反馈,允许产品团队保持项目和系统在正轨上运行. 通过使用固定长度(或时间限制)的冲刺, 产品团队可以有效地回答以下关键问题: 

 

  1. 与预测的数量相比,团队在上一个sprint中完成了多少工作? 
  2. 与之前的sprint相比,团队完成了多少工作? 
  3. 在这个冲刺的最后期限之前,有多少功能是可以完成的? 

 

固定冲刺的核心好处是,整个团队仍然专注于几个优先级的目标, 而不是试图理解系统的每一个细节. 在之前的每一次冲刺中都能看到非常明显的结果(包括积极的和消极的), 团队可以从构建-度量-学习过程中获得最大的收获,并确定用于下一个sprint的过程的细化区域. 团队更有可能正确地划分特性的优先级,而不太可能成为范围蔓延的牺牲品. 每个团队成员帮助彼此专注于每个交付单元交付最高的业务价值. 

2. sprint总是交付可工作的软件 

提供测试, 接受, 每个sprint结束时的产品特性是敏捷软件开发团队衡量进度的第一个标准. 工作特性允许团队改进协作, 增加项目可见性, 战略性地回答客户的反馈. 可工作的软件提供了项目处于正轨的具体证据. 

 

在新项目的前几个阶段, 团队可能不会交付大量的特性. 尽管如此,随着项目的进展,团队通常会找到一个可预测的交付进度. 随着系统的发展 用户体验(UX)设计、体系结构和业务目标的持续评估. 在项目的每一个阶段, 团队的工作是合并来自客户的最新输入, 用户, 和其他涉众达成最有价值的业务解决方案. 冲刺,冲刺, 参与其中的每个人都可以看到项目是否正在进行,以准确地满足最有价值的业务目标. 根据实际工作的软件反复测量进度,有助于向工程师灌输一定程度的信心, 客户, 经理, 以及其他传统瀑布方法无法匹配的涉众. 

 

新的文字-动作

3. 值为优先级  

敏捷软件开发坚持尽早且一致地交付业务价值, 通过测试, 接受, 和工作软件. 由于这个原因,产品特性是计划、跟踪和交付的中心单元. 从一个冲刺到另一个冲刺, 产品团队度量每个版本的功能和测试特性的数量. 而其他文档和工件有时是必要的, 工作特性是最重要的. 这种软件开发方法, 反过来, 要求每个特性都足够小,可以在一个sprint中发布. 功能的优先级 对于实现每个sprint的目标以及交付业务价值来说是必要的吗. 

4. 正在进行的滚波规划 

It’s a misconception that agile methodologies rule out upfront planning; however, 敏捷方法确实要求任何前期的计划都要对耗尽的资源负责. 更重要的是,敏捷方法坚持在整个项目中进行计划. 敏捷软件开发中的任何计划都必须反复证明其有效性. 

 

在项目的开始, 产品团队 是否有足够的计划来开始第一个冲刺. 这种准备方法被称为滚波计划(或即时计划)。, 这是一种延迟产品决策的做法,直到团队处于最佳位置才能做出决策. 再一次, this doesn’t mean 这个团队 won’t plan; instead, 随着产品的发展,团队会做出更加明智和可操作的决策, 更多的知识变得可用. 迭代是滚动波规划的关键. 想象一下,每个sprint都是一个小规模的项目,它收到了“刚好足够”的计划. 在冲刺开始的时候, 产品团队确定一组要实现的特性,并估计每个特性的技术需求. 这个计划过程在每个sprint和发布周期中重复. 

 

事实证明, 与瀑布方法相比,敏捷软件开发项目包含了更多的计划和更好的质量计划. 瀑布式方法的一个重要缺陷是项目会完成, 产品满足了所有的技术要求, 但从业务的角度来看,这并不是涉众所需要的. 这些缺点的出现是因为瀑布方法在项目进展过程中没有考虑到新信息或用户研究. 滚波计划是基于事实,准确,最近的数据. 它使敏捷流程能够允许灵活的优先级和范围更改, 内部原因, 适应业务需求和市场需求不断变化的不可避免的方式. 

5. 多层规划 

当它发生在两个层面时,滚动波规划会更有效: 

 

  1. 在发布级别上, 团队确定产品必须具有的特性,并对其进行优先级排序, 想要, 并且可以在发布截止日期之前不做. 
  2. 在冲刺阶段, 团队根据优先级选择并计划要实现的下一系列特性. 如果某些功能过于复杂,无法在单个功能中进行适当的评估或完成, 团队进一步分解它们. 

 

当特性被划分出优先级并为sprint做计划时,它们就被分解成技术任务. 

 

软件开发的滚动波规划方法比任何广义的方法都更易于管理和准确, 预先计划策略,因为它将产品团队可用的信息级别与当时所需的详细级别相一致. 试图在可用数据不支持的细节层面上制定计划是浪费时间. 

 

新的文字-动作

6. 相对估计 

许多敏捷软件开发过程使用产品特性的相对估计应用来加快计划阶段并消除复杂性. 而不是根据单位长度的范围来估计特征, 团队选择少量的相对评估类别,并根据类别的条款评估每个特征. 例如: 

 

  • 1 - 5天
  • 1、2或3个故事点
  • 4 8 16 40或者80个小时 

 

相对估计的概念防止团队浪费时间讨论特征估计的细节. 使用相对估计可以节省大量的时间和精力, 而且这个过程通常会超过不精确估算的成本. 就像敏捷软件开发的其他方面一样, 产品团队随着项目的进展不断改进相对评估,并不断细化评估. 

 

如果任何特征超过了约定的最大估计,则将其分割为多个特征. 再一次, 由于分离而出现的特性也需要在一个sprint中完成. 所以如果产品团队确定功能不应该超过16小时, 然后,任何超出时间框架的功能都需要分解. 使用这个过程可以标准化产品特性的粒度:特性大小的比例从来都不是不可测量的. 

7. 特性从高层次开始 

而不是在开发之前花一段时间详细描述特性需求, 敏捷软件开发项目通常会对特性进行优先排序和评估, 并不断完善细节. 在大多数情况下, 项目的发现阶段 遵循设计思维框架,快速制定项目时间表, 记录产品需求, 产品愿景陈述, 用户角色, 以及一份有市场价值的功能列表. 随着客户的输入,sprint的特性变得更加详细, 测试人员, 和开发人员一起工作. 在为sprint确定优先级之前,不会详细描述功能. 

8. 连续测试 

没有什么比将所有测试推迟到项目结束更有风险的了. 通过持续的测试,产品团队确定地测量进度并防止缺陷. 这种测试方法极大地降低了项目后期的失败风险. 许多瀑布项目在发现问题后就崩溃了, 在一个不断延迟的项目测试和修复阶段, 体系结构是有缺陷的, 或者系统的特定组件不能被集成, 或者功能是无用的,完全无用的. 所有这些缺陷都被发现得太迟而无法进行更改. 通过练习连续测试, 产品团队既可以避免这些问题发生的风险,也可以避免对可能出现的最坏结果的持续担忧. 

9. 持续改进 

在敏捷软件开发中,产品团队不断地完善系统和项目. 通过使用像运行和测试功能这样的硬性指标以及更主观的数据来进行冲刺回顾, 产品团队可以相应地调整特性估算和项目计划. 在项目中的重要里程碑结束时,敏捷软件交付的持续改进方面变得特别重要. 有时候冲刺计划会出现问题, 或者使用构建和集成过程, 或者知识转移, 或者其他问题. 重要的是要不断寻找方法来适应这个过程,并继续在单位时间内向客户交付尽可能多的价值, 这个团队, 和组织. 敏捷软件开发方法总是像有生命的东西一样成熟和发展. 

10. 小规模、跨职能的团队 

事实证明,小型敏捷开发团队比大型团队的生产效率更高. 通常,这些小分队被称为小队. 每个小组不超过8名成员,是跨职能的,一起计划,坐在一起. 基于团队的敏捷开发的好处 团队是否在一起工作以确定如何最好地利用彼此的技能并互相指导. 团队从自上而下的管理方法过渡, 每个成员帮助完成任何需要完成的冲刺. 个体团队成员开始从成为富有成效和高效率团队的一员中获得满足感. 

在敏捷软件开发中实现成功

不同的敏捷方法可以有不同的具体实践, 但是有一些共同的特征标志着敏捷软件开发过程的成功. 从根本上, 通过早期和频繁的迭代实现敏捷软件开发的成功. 从一个冲刺到另一个冲刺, 随着新信息的出现和需求的变化,产品团队使用持续计划来定义和重新定义发布计划的范围. 随着团队对速度(每单位时间内完成的测量工作)了解的更多,sprint计划变得更加精确。. 通过在软件开发生命周期中实现上述特征, 产品团队增加了发布成功手机产品的可能性. 

继续阅读:

敏捷应用开发中灵活性的重要性

如何在敏捷开发中确定时间框架和范围

使用敏捷Scrum开发一款应用需要多长时间?

 

新的文字-动作

 

友情链接: 1 2 3 4 5 6 7 8 9 10