自适应软件开发 - 生命周期
自适应软件开发是从 RAD 实践发展而来的。 这些实践中还添加了团队方面的内容,针对各种项目和产品类型,都使用了自适应软件开发。
Jim Highsmith 于 2000 年出版了《自适应软件开发》。
自适应软件开发实践提供了适应变化的能力,并且能够适应动荡的环境,产品在几乎不需要规划和学习的情况下不断发展。
ASD 生命周期的各个阶段
自适应软件开发与进化模型一样是循环的,其阶段名称反映了复杂系统中的不可预测性。 自适应开发生命周期的阶段是−
- 推测
- 协作
- 学习
这三个阶段反映了自适应软件开发的动态本质。 适应性发展明确地用涌现取代了决定论。 它不仅仅是生命周期的改变,而是管理风格的更深层次的改变。 自适应软件开发具有动态的推测-协作-学习生命周期。
自适应软件开发生命周期注重结果,而不是任务,结果被识别为应用程序功能。
推测
"计划"一词过于确定,表明对期望结果具有相当高的确定性。 遵守计划的隐性和显性目标限制了经理引导项目朝创新方向发展的能力。
在自适应软件开发中,术语计划被术语推测所取代。 在猜测的同时,团队并没有放弃计划,而是承认复杂问题中存在不确定性的现实。 推测鼓励探索和实验。 鼓励短周期迭代。
协作
复杂的应用程序不是构建的,而是不断发展的。 复杂的应用程序需要收集、分析大量信息并将其应用于解决问题。 动荡的环境具有很高的信息流动率。 因此,复杂的应用程序需要收集、分析大量信息并将其应用于解决问题。 这导致了多样化的知识需求,而这些需求只能通过团队协作来处理。
协作需要共同努力产生结果、分享知识或做出决策的能力。
在项目管理的背景下,协作描绘了传统管理技术的管理与创建和维护涌现所需的协作环境之间的平衡。
学习
生命周期的学习部分对于项目的成功至关重要。 团队必须不断增强他们的知识,使用诸如 −
- 技术评估
- 项目回顾
- 客户焦点小组
每次迭代后都应进行审查。 开发人员和客户都会检查他们的假设,并使用每个开发周期的结果来了解下一个开发周期的方向。 团队学习 −
关于产品变更
有关产品开发方式的基本假设发生更根本性的变化
迭代需要简短,以便团队可以从小错误而不是大错误中学习。
推测 - 协作 - 学习作为一个整体循环
正如您从上面给出的"推测-协作-学习"循环中观察到的,很明显这三个阶段是非线性且重叠的。
我们从自适应框架中观察到以下内容。
不学习就很难协作,不协作就很难学习。
不学习就很难推测,不推测就很难学习。
没有合作就很难推测,没有推测就很难进行合作。