自适应软件开发 - 简介
什么是敏捷?
从文学角度来说,“敏捷”一词指的是能够快速轻松地移动的人,或者能够快速清晰地思考和行动的人。在商业领域,“敏捷”用于描述计划和开展工作的方式,其中理解到根据需要进行更改是工作的重要组成部分。商业“敏捷性”意味着公司始终能够考虑到市场变化。
在软件开发中,“敏捷”一词被用来表示“应对变化的能力——来自需求、技术和人员的变化”。
敏捷宣言
敏捷宣言由一群软件开发人员于2001年发布,强调了开发团队的重要性、适应不断变化的需求以及客户参与的重要性。
敏捷宣言是:
我们正在通过实践和帮助他人实践来发现更好的软件开发方法。通过这项工作,我们开始重视:
- 个体和互动 高于 流程和工具。
- 可工作的软件 高于 详尽的文档。
- 客户合作 高于 合同谈判。
- 响应变化 高于 遵循计划。
也就是说,尽管右边的项目也具有一定的价值,但我们更重视左边的项目。
敏捷的特征
以下是敏捷的特征:
在敏捷软件开发中,敏捷性侧重于整个团队的文化,包括具有多学科、跨职能的团队,这些团队具有授权和自我组织的能力。
它培养了共同的责任和问责制。
促进有效的沟通和持续的协作。
整个团队的方法避免了延迟和等待时间。
频繁且持续的交付确保了快速反馈,而反馈又能够使团队与需求保持一致。
协作有助于及时将不同的观点融入到实施、缺陷修复和适应变化中。
进度是持续的、可持续的和可预测的,强调透明度。
敏捷方法
敏捷方法的早期实现包括Rational统一过程、Scrum、Crystal Clear、极限编程、自适应软件开发、特性驱动开发和动态系统开发方法(DSDM)。在2001年敏捷宣言发布后,这些方法现在被统称为敏捷方法。
在本教程中,我们将学习敏捷方法——**自适应软件开发**。
什么是自适应软件开发?
自适应软件开发是朝着自适应实践迈进的一步,它摒弃了复杂系统和复杂环境中确定性实践。自适应软件开发专注于协作和学习,将其作为构建复杂系统的技术。它源于快速应用开发(RAD)和演化生命周期的最佳实践。然后,自适应软件开发扩展到包括管理的自适应方法,用推测代替了计划。
Jim Highsmith于2000年出版了一本关于自适应软件开发的书籍。用Highsmith的话来说:
“自适应软件开发像演化模型一样是循环的,阶段名称‘推测、协作、学习’反映了日益复杂的系统的不可预测领域。自适应开发在其演化遗产基础上进一步发展了两个关键方面。首先,它明确地用涌现取代了决定论。其次,它超越了生命周期变化,实现了管理风格的更深层次变化。”