📅  最后修改于: 2021-01-23 07:07:08             🧑  作者: Mango
适应性软件开发实践是由对持续适应性的信念所驱动的,其生命周期旨在接受持续的变化作为规范。
自适应软件开发生命周期致力于-
自适应软件开发将RAD与软件工程最佳实践结合在一起,例如-
自适应软件开发实践可以说明如下-
如上所示,自适应软件开发实践分布在以下三个阶段:
推测-启动和计划
计划启动
为整个项目建立时间表
确定迭代次数,并为每个迭代次数分配一个时间框
为每次迭代制定主题或目标
为每个迭代分配特征
协作-并发功能开发
分布式团队合作
小型项目的合作
大型项目合作
学习-质量审查
从客户角度看结果质量
从技术角度看结果质量
交付团队的职能和实践团队成员正在利用
项目状态
在自适应软件开发中,推测阶段有两个活动-
推测有五个实践,可以在启动和计划阶段重复执行。他们是-
项目启动涉及-
项目启动数据应在JAD的初步会议中收集,以速度为主要方面。对于中小型项目,启动可以集中进行2至5天的工作,而对于大型项目,则可以进行2至3周的工作。
在JAD会话期间,将收集足够详细的需求以识别功能并建立对象,数据或其他体系结构模型的概述。
应该根据项目启动工作产生的范围,功能集要求,估计和资源可用性来确定整个项目的时间范围。
如您所知,推测并不会放弃估算,但这只是意味着接受估算可能会出错。
根据总体项目范围和不确定性程度,确定迭代次数和各个迭代长度。
对于中小型应用程序-
根据您的需要选择时间。一旦确定了迭代次数和每个迭代的长度,就可以为每个迭代分配时间表。
团队成员应为每次迭代制定一个主题或目标。这类似于Scrum中的Sprint目标。每次迭代都应提供一组功能,这些功能可以演示产品功能,使产品对客户可见,以便进行审核和反馈。
在迭代过程中,构建应该最好每天提供工作功能,以实现集成过程并使产品对开发团队可见。测试应该是功能开发中不可或缺的一部分。它不应延迟到项目结束。
开发人员和客户应共同为每个迭代分配功能。此功能分配的最重要标准是,每次迭代都必须向客户交付一组具有相当功能的可见功能。
在将要素分配给迭代期间-
开发团队应提出功能估计,风险和依赖性,并将其提供给客户。
客户应使用开发团队提供的信息确定功能优先级。
因此,迭代计划是基于功能的,并与开发人员和客户一起完成。经验表明,与项目经理基于任务的计划相比,这种类型的计划可以更好地理解项目。此外,基于功能的计划反映了每个项目的独特性。
在协作阶段,重点放在开发上。协作阶段有两项活动-
开发团队合作并交付有效的软件。
项目经理促进协作和并发开发活动。
协作是共享创造的行为,包含开发团队,客户和经理。信任和尊重是共同创造的基础。
团队应该合作-
以下是与自适应软件开发中的“协作”阶段相关的实践-
在涉及分布式团队的项目中,应考虑以下内容-
在较小的项目中,当团队成员在距离很近的地方工作时,应鼓励与非正式的走廊聊天和白板涂鸦进行协作,因为这样做是有效的。
较大的项目需要其他实践,协作工具和项目经理的互动,并且应根据上下文进行安排。
自适应软件开发提倡“实验与学习”的概念。
从错误和实验中学习,团队成员必须尽早共享部分完成的代码和工件,以便-
在每个开发迭代的末尾,有四大类要学习的东西-
在自适应软件开发项目中,获得客户反馈是第一要务。建议的做法是客户焦点小组。这些会议旨在探索应用程序的工作模型并记录客户变更请求。
客户焦点小组会议是便利会议,类似于jad会议,但不是生成需求或定义项目计划,而是旨在查看应用程序本身。客户提供有关迭代产生的工作软件的反馈。
在自适应软件开发项目中,对技术工件的定期审查应该给予重视。代码审查应连续进行。可以每周或在迭代结束时对其他技术工件(例如技术体系结构)进行审查。
在自适应软件开发项目中,团队应定期监视自己的性能。回顾会鼓励团队一起学习自己和他们的工作。
迭代结束回溯有助于定期进行团队绩效自我检查,例如-
项目状态审查有助于计划进一步的工作。在自适应软件开发项目中,确定项目状态是基于功能的方法,每次迭代的结束均以完成的功能为特征,从而导致可运行的软件。
项目状态审查应包括-
由于自适应软件开发项目中的计划是推测性的,因此,除了上面的问题2以外,问题3也很重要。也就是说,项目团队和客户需要不断地问自己:“到目前为止,我们学到了什么,这是否改变了我们对下一步工作的看法?”