上一篇:没有了 下一篇:极限编程价值和原则

极限编程介绍

本章概述了敏捷编程。

什么是敏捷?

“敏捷”这个词意味着 -

  • 能够快速方便地移动身体。
  • 能够快速,清晰地思考。

在业务中,“敏捷”用于描述规划和工作的方式,其中了解到根据需要进行更改是工作的重要组成部分。“商业”意味着公司总是能够考虑市场变化。

参考:剑桥词典在线。

在软件开发中,“敏捷”一词适用于“对需求,技术和人员的变化的响应能力”。

敏捷宣言

软件开发团队于2001年发布了“敏捷宣言”,突出了开发团队的重要性,适应不断变化的需求和客户参与。

“敏捷宣言”指出,

我们通过这样做和帮助他人来发现更好的开发软件的方法。通过这项工作,我们来到了价值 -

  • 个人和交互过程和工具。

  • 全面的文档工作软件

  • 客户协同 合同谈判。

  • 响应改变计划。

也就是说,虽然在右边的项目中有价值,但我们对左边的项目更重视。

敏捷的特点

以下是敏捷的特点 -

  • 敏捷软件开发中的敏捷性侧重于整个团队的文化,具有授权和自组织的多学科跨职能团队。

  • 它促进了共同的责任和责任感。

  • 促进有效沟通和持续合作。

  • 整个团队的方法避免了延迟和等待时间。

  • 频繁和连续的交付确保快速反馈,从而使团队能够符合要求。

  • 协作有助于将不同的观点及时实现,缺陷修复和适应变化。

  • 进步是不变的,可持续的,可预测的,强调透明度。

软件工程趋势

在软件工程中观察到以下趋势 -

  • 开发前收集要求。但是,如果要求稍后更改,则通常会注意以下几点:

    • 在稍后的发展阶段抵制变化。

    • 要求严格的变更过程涉及变更控制板,甚至可能会将更改推送到以后的版本。

    • 交付过期的产品,不符合客户的期望。

    • 无法在预算内适应不可避免的范围变化和技术变革。

  • 在开发生命周期早期找到并消除缺陷,以减少缺陷修复成本。

    • 测试仅在编码完成后开始,测试被认为是测试人员的责任,尽管测试人员不参与开发。

    • 测量和跟踪过程本身。这变得昂贵,因为 -

    • 在任务级别和资源级别进行监控和跟踪。

    • 定义测量指导开发和测量开发中的每项活动。

    • 管理干预。

  • 在开发之前详细分析和验证模型。

    • 一个模型应该被用作一个框架。然而,关注模式而不是关键的发展不会产生预期的结果。

  • 编码,这是发展的核心没有给予足够的重视。原因是 -

    • 负责生产的开发人员通常不会与客户持续沟通。

    • 编码被视为设计的翻译,代码中的有效实现几乎不会循环回到设计中。

  • 测试被认为是在交付前检查缺陷的网关。

    • 通过俯瞰测试要求来弥补早期发展阶段的超支,以确保及时交货。

    • 这导致成本超支在交货后固定缺陷。

    • 测试人员对产品质量负责任,并对整个开发过程中没有涉及到产品质量。

  • 限制资源(主要是团队)以适应预算导致 -

    • 资源超额分配

    • 团队倦怠

    • 有效利用队伍能力的损失。

    • 磨损

敏捷编程 - 一种处理常见缺点的方法

软件工程涉及 -

  • 创造力
  • 通过试验和错误学习和改进
  • 迭代

敏捷编程基于这些活动和编码。它是通过有效的实施,测试和重构不断的详细(不是唯一的)设计活动与多个紧凑反馈循环。

敏捷编程基于以下值 -

  • 通讯
  • 简单
  • 反馈
  • 勇气
  • 尊重

什么是敏捷编程?

XP是开发软件的轻便,高效,低风险,灵活,可预测,科学和有趣的方式。

Ë X德特雷姆P AGC软件(XP)的设计和开发由模糊和不断变化的需求,面对小团队,以解决软件开发的特定需求。

敏捷编程是敏捷软件开发方法之一。它提供了指导团队行为的价值观和原则。该团队有望自行组织。敏捷编程提供了具体的核心做法,

  • 每一种做法都是简单和自我完善的。
  • 实践的结合产生更复杂和紧迫的行为。

迎接改变

敏捷编程的一个关键假设是,改变程序的成本可以在一段时间内保持不变。

这可以用 -

  • 强调来自客户的持续反馈
  • 短迭代
  • 设计和重新设计
  • 频繁编码和测试
  • 早期消除缺陷,从而降低成本
  • 在整个开发过程中保持客户
  • 向客户提供工作产品

敏捷编程在一个坚果

敏捷编程涉及到 -

  • 编写单元在编程之前进行测试,并保持所有测试始终运行。单元测试是自动化的,早期消除缺陷,从而降低成本。

  • 从简单的设计开始,足以编写手头的功能,并在需要时进行重新设计。

  • 成对编程(称为对编程),两个程序员在一个屏幕上轮流使用键盘。虽然其中一个是键盘,另一个不断注释并提供投入。

  • 整个系统整合和测试一天多次。

  • 将最小化的工作系统快速投入生产,并在需要时进行升级。

  • 始终保持客户的需求,并获得不断的反馈。

随着软件随着不断变化的需求而逐渐变化,迭代便于适应变化。

坚定的敏捷编程

为什么叫“敏捷”?

敏捷编程将有效的原则和实践应用到敏捷水平。

  • 代码审查是有效的代码被审查所有的时间。
  • 测试是有效的,因为有连续的回归和测试。
  • 设计是有效的,因为每个人都需要每天重构。
  • 集成测试是重要的,因为每天要集成和测试几次。
  • 短迭代作为发行规划和迭代规划的规划游戏是有效的。
有效的原则和实践

敏捷编程史

Kent Beck,Ward Cunningham和Ron Jeffries在1999年制定了敏捷编程,其他贡献者是Robert Martin和Martin Fowler。

在80年代中期,肯特·贝克(Kent Beck)和沃德·坎宁安(Ward Cunningham)在Tektronix发起了对编程。在80年代和90年代,Smalltalk文化产生了重构,持续整合,不断的测试,并且密切的客户参与。这种文化后来推广到其他环境。

在90年代初,核心价值观是在“模式社区”,“山坡集团”中开发的。1995年,肯特总结了Smalltalk最佳实践,1996年,Ward在剧集中总结了这一点。

肯特在1996年,在休伊特添加了单元测试和比喻。1996年,肯特采取了克莱斯勒C3项目,罗恩·杰弗里斯加入了教练。这些做法在C3上进行了改进,并在Wiki上发表。

Scrum实践被纳入并适应了规划游戏。1999年,肯特出版了他的书“敏捷编程解释”。在同一年,福勒发表了他的着作“重构”。

自那时起,敏捷编程一直在发展,而演变在今天继续。

行业成功

遵循敏捷编程实践的项目的成功是由于 -

  • 快速发展。
  • 立即响应客户不断变化的需求。
  • 专注于低缺陷率。
  • 系统为客户返回恒定和一致的价值。
  • 客户满意度高。
  • 降低成本
  • 团队凝聚力和员工满意度。

敏捷编程优点

敏捷编程解决了软件开发项目中经常遇到的以下问题 -

  • 滑动的时间表 - 可实现的开发周期确保及时交货。

  • 取消项目 - 专注于持续的客户参与,确保客户透明度并立即解决任何问题。

  • 变更中造成的成本 - 广泛且持续的测试可确保更改不会破坏现有功能。运行中的工作系统始终确保足够的时间来适应变化,使得当前操作不受影响。

  • 生产和交付后缺陷:重点是单元测试,以早期检测和修复缺陷。

  • 误解业务和/或范围 - 使客户成为团队的一部分,确保不断的沟通和澄清。

  • 业务变化 - 变更被认为是不可避免的,并且在任何时间点都适用。

  • 员工流动 - 强化团队合作,确保积极性和良好意愿。多学科凝聚力促进了团队精神。

Copyright © 2002-2017 vue5.com 版权所有

Top