自适应软件开发 - 概念



在本章中,我们将了解自适应软件开发的各种概念。

复杂自适应系统 (CAS) 理论

圣达菲研究所的布莱恩·亚瑟及其同事利用复杂自适应系统 (CAS) 理论彻底改变了对物理学、生物学、进化和经济学的理解。

布莱恩·亚瑟花了二十多年的时间试图说服主流经济学家,他们以收益递减、均衡和确定性动态的基本假设为主导的观点,已经不足以理解现实。新世界是一个收益递增、不稳定且无法确定因果关系的世界。

这两个世界在行为、风格和文化上有所不同。它们需要:

  • 不同的管理技术
  • 不同的策略
  • 不同的理解

复杂的软件开发

随着软件应用范围的扩大,即使是软件开发组织也积累了如上所述的类似矛盾。

  • 一个世界由确定性开发表示,该开发源于植根于稳定性和可预测性基础的管理实践(用亚瑟的话来说,这意味着收益递减)。

  • 第二个世界由从收益递减转向收益递增环境的行业代表,这些环境是不可预测的、非线性的和快速的。

为了解决这个第二世界的问题,吉格·海斯密斯提供了一个框架,即自适应软件开发,它不同于确定性软件开发。

自适应软件开发专注于解决复杂系统:

  • 用于开发生命周期的自适应软件开发。

  • 自适应管理技术要求与传统项目管理实践不同的思维方式。

在本教程中,您可以了解这两种实现。

自适应软件开发 (ASD) 基于两种视角:

  • 基于复杂自适应系统 (CAS) 理论的概念视角,如本章第一节所述。

  • 基于以下内容的实践视角:

    • 多年来使用确定性软件开发方法的经验。

    • 咨询、实践和撰写有关快速应用开发 (RAD) 技术的文章;以及与高科技软件公司合作管理其产品开发。

在本章中,您将了解自适应软件开发的概念视角。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

复杂自适应系统 (CAS) 概念

复杂自适应系统 (CAS) 理论包含许多概念。自适应软件开发基于其中的两个概念:

  • 涌现
  • 复杂性

涌现

在复杂的软件产品开发项目中,结果本质上是不可预测的。但是,成功的产品始终从这样的环境中涌现出来。

这可以通过复杂自适应系统 (CAS) 理论中说明的涌现来实现。可以通过一个简单的例子来理解,例如鸟类的群体行为。

当你观察一群鸟时,你会注意到:

  • 每只鸟都试图

    • 与环境中的其他物体(包括其他鸟类)保持最小距离。

    • 与邻近的鸟类保持相同的速度。

    • 朝向其邻近鸟类的感知质心移动。

  • 没有关于群体行为的规则。唯一的规则是关于个体鸟类的行为。

  • 然而,存在一种涌现行为,即鸟类的群体行为。当偏离路线的鸟类急于追赶时,鸟群会在障碍物周围分开并在另一侧重新形成。

这表明了自适应开发中最困难的思维模型变化的要求——从管理和组织个体自由的方式到一个创造性的新秩序从自发的自我组织中不可预测地涌现出来的概念。

除了开发之外,涌现也是从管理角度来看最重要的概念。

复杂性

在软件开发的上下文中,复杂性是指:

  • 团队成员,例如开发人员、客户、供应商、竞争对手和股东,他们的数量和速度。

  • 规模和技术复杂性。

自适应软件开发实践

自适应软件开发对软件管理实践提供了不同的视角。在下面的部分中,您可以了解两个重要的实践:质量和 RAD,它们都对收集需求产生影响。

您可以在本教程的“自适应软件开发实践”章节中找到所有实践的详细信息。

质量

在复杂的环境中,“第一次就把事情做对”的古老做法不起作用,因为您无法预测一开始什么是正确的。您需要有一个目标来产生正确的价值。但是,在复杂的环境中,价值组件(如范围(功能、性能、缺陷级别)、时间表和资源)的组合和排列是如此之多,以至于永远不可能存在最佳价值。因此,重点是转向在竞争市场中交付最佳价值。

RAD 实践

RAD 实践通常涉及以下内容的组合:

  • 演化生命周期
  • 客户焦点小组、JAD 会议、技术审查
  • 时间盒项目管理
  • 持续软件工程
  • 配备作战室的专用团队

RAD 项目具有内在的自适应、涌现特征。许多 IT 组织反对 RAD。但是,微软和其他公司已经使用与 RAD 相当的技术生产了难以置信的大型和复杂的软件,因为它对他们的基本世界观提出了质疑。

RAD 实践和微软流程都是自适应开发在行动中的例子。为它们贴上标签(即自适应开发)并认识到存在越来越多的科学知识(即 CAS 理论)解释了它们为何有效。这应该为更广泛地使用这些实践提供基础。

广告