自适应软件开发 - 概念


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

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

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

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

这两个世界在Behave、风格和文化上有所不同。他们呼吁 -

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

复杂的软件开发

随着软件应用范围的爆炸式增长,即使是软件开发组织也面临着上述类似的矛盾。

  • 同一个世界以确定性发展为代表,它源自植根于稳定性和可预测性基础的管理实践(用亚瑟的话说,这意味着回报递减)

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

为了解决第二世界的问题,Jig Highsmith 提供了一个框架,即自适应软件开发,它不同于确定性软件开发。

自适应软件开发侧重于解决复杂系统 -

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

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

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

自适应软件开发(ASD)基于两个角度 -

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

  • 基于实际的视角

    • 拥有多年确定性软件开发方法的经验。

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

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

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

复杂自适应系统(CAS)理论有很多概念。自适应软件开发基于其中两个概念 -

  • 紧急情况
  • 复杂

紧急情况

在复杂的软件产品开发项目中,结果本质上是不可预测的。然而,成功的产品总是在这样的环境中诞生。

正如复杂自适应系统 (CAS) 理论所示,这可以通过涌现来实现。可以通过一个简单的例子来理解,鸟类的集群Behave。

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

  • 每只鸟都试图

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

    • 将速度与其附近的鸟类相匹配。

    • 向附近鸟类的感知中心移动。

  • 该团体没有Behave规则。唯一的规则是关于个体鸟类的Behave。

  • 然而,存在一种突发Behave,即鸟类聚集。当迷失的鸟儿奋力追赶时,鸟群就会绕过障碍物,在另一边重新集结。

这表明了适应性发展中最困难的心智模式变化的要求——从管理和组织个人自由的方式到自发自组织不可预测地出现创造性新秩序的观念。

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

复杂

在软件开发环境中,复杂性是指 -

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

  • 规模和技术复杂性。

自适应软件开发实践

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

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

质量

在复杂的环境中,“第一次就把事情做好”的古老做法行不通,因为你无法在一开始就预测什么是正确的。您需要有一个目标来产生正确的价值。然而,在复杂的环境中,范围(功能、性能、缺陷级别)、进度和资源等价值要素的组合和排列是如此巨大,以至于永远不可能有一个最佳值。因此,重点是转向在竞争激烈的市场中提供最佳价值。

RAD 实践

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

  • 进化生命周期
  • 客户焦点小组、JAD 会议、技术审查
  • 限时项目管理
  • 持续软件工程
  • 设有作战室的专门团队

RAD 项目具有固有的适应性、突发性特征。许多 IT 组织反对 RAD。然而,微软和其他公司使用与 RAD 相当的技术生产了极其庞大和复杂的软件,因为这引发了对其基本世界观的质疑。

RAD 实践和 Microsoft 流程都是自适应开发实际应用的示例。给它们贴上标签(即适应性发展)并意识到科学知识体系(即 CAS 理论)的不断增长可以解释它们为何有效。这应该为更广泛地使用这些实践提供基础。