📜  自适应软件开发-概念

📅  最后修改于: 2021-01-23 07:05:29             🧑  作者: Mango


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

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

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

布莱恩·亚瑟(Brian Arthur)在过去的20多年中达到了顶峰,他试图说服主流经济学家,他们的观点以降低收益,均衡和确定性动力的基本假设为主导,已经不足以理解现实。新世界是回报不断增加,不稳定以及无法确定因果关系之一。

这两个世界的行为,风格和文化不同。他们呼吁-

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

复杂软件开发

随着软件应用程序范围的扩大,甚至软件开发组织也遇到了如上所述的类似矛盾。

  • 确定性发展代表了一个世界,这种发展源自管理实践,这些管理实践源于稳定性和可预测性的基础(在亚瑟的术语中,这意味着收益递减)

  • 第二世界的代表行业是不可预测,非线性和快速的,从减少到增加的回报环境。

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

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

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

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

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

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

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

  • 基于实践视角

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

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

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

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

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

  • 紧急情况
  • 复杂

紧急情况

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

如复杂自适应系统(CAS)理论所示,这种情况可能会因紧急情况而发生。可以通过一个简单的例子来理解鸟类的植绒行为。

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

  • 每只鸟都试图

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

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

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

  • 该小组没有行为准则。唯一的规则是关于个别鸟类的行为。

  • 但是,存在着一种涌现的行为,即鸟群。当错误的鸟儿赶上追赶时,羊群会在障碍物周围分裂并在另一侧进行重整。

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

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

复杂

在软件开发环境中,复杂度约为-

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

  • 规模和技术复杂性。

自适应软件开发实践

自适应软件开发对软件管理实践提供了不同的观点。在下面的部分中,您可以了解两个重要的实践-质量和RAD,这两个对收集需求都有影响。

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

质量

在复杂的环境中,“一开始就做正确”的古老做法行不通,因为您无法一开始就预测出正确的方法。您需要以产生正确的价值为目标。但是,在复杂的环境中,诸如范围(功能,性能,缺陷级别),进度表和资源之类的价值成分的组合和排列是如此之大,以至于永远不可能有一个最佳值。因此,重点是转向在竞争激烈的市场中提供最佳价值。

RAD实践

RAD实践通常涉及以下方面的组合-

  • 进化生命周期
  • 客户焦点小组,JAD会议,技术评论
  • 定时项目管理
  • 连续软件工程
  • 有作战室的专用团队

RAD项目具有内在的适应性,突现性。许多IT组织都反对RAD。但是,Microsoft和其他公司使用与RAD相当的技术生产了非常庞大和复杂的软件,因为它引起了人们对其基本世界观的质疑。

RAD的实践和Microsoft的流程都是“自适应开发”实践的例子。给他们一个标签(即自适应开发)并意识到科学知识的增长(即CAS理论)解释了它们为什么起作用。这应该为更广泛地使用这些做法提供基础。