当前位置: 首页 > 科技观察

敏捷软件开发:原则、团队结构和框架

时间:2023-03-19 18:41:11 科技观察

【.com快译】本文解释了关于Scrum、极限编程、动态系统开发方法(DSDM)、特征驱动开发(FDD)、和更多。敏捷软件开发使企业能够在短时间内将产品推向市场。为了让企业高管了解敏捷方法是否适用,本文分享了有关敏捷软件开发的基本原则、首选团队结构、常用方法论的信息,例如Scrum、极限编程(XP)、动态系统开发方法(DSDM)和功能驱动开发(FDD)。1.什么是软件开发的敏捷方法?敏捷是一种独特的软件开发方法,它考虑了不同的组成部分,例如客户需求、持续学习和测试、迭代开发、每两周后的有形增值等。2.敏捷软件开发的基础(1)沟通和反馈不同软件开发团队成员之间的沟通可能是一个挑战,尤其是在冠状病毒大流行期间,因为大多数人都在家远程工作。在这种情况下,可以使用通信工具使软件开发团队成员保持同步工作,同时密切合作以创建最小可行产品(MVP)。当使用敏捷方法时,团队成员是同时工作的,他们可以近乎实时地协作、分享关注点、提供反馈并高效地协同工作。敏捷软件开发过程需要遵循“少计划变更”的理念。几个冲刺周期后,更改将生效,需要仔细分析客户反馈。根据分析,为当前或即将到来的冲刺周期向选定的积压工作添加更多更改。(2)适应性创建敏捷软件开发过程应考虑的两个基本要求是:一是项目以恒定的速度推进;另一个是处理压力的能力,例如由于需求的变化而导致的截止日期、预算增加等。为了有效地管理和提高生产力,从快节奏的冲刺开始,然后休息一下。可以强制在所有冲刺周期中保持更高的生产力和快节奏的工作,但这种方法通常是不可持续的。(3)信任选择团队成员使用敏捷方法进行软件开发项目是重要的一步。选择过程的另一个重要部分是考虑技能组合和职责,此外应该有适合工作环境的个人。团队成员应该是优秀的专业人士,能够自我管理并能够相互信任。自我管理的质量在敏捷方法中至关重要,因为工作通常节奏很快,需要独立解决问题。另一方面,需要避免微观管理或指导,因为这些通常需要更多时间。团队成员预先清楚地了解软件开发需求很重要,这也意味着了解产品路线图。(4)协作在软件开发中,有两种常见的开发模型——瀑布模型和敏捷模型。在瀑布模型中只收集一次需求,这也意味着客户可以一次性参与。而在敏捷模型中,客户全程参与开发过程以收集需求。因此,客户将在维护产品积压方面发挥积极作用。在其他时候,客户可能会在修改需求方面发挥积极作用,例如在提供产品演示时、在日常会议期间等。3、敏捷软件开发的首选团队结构协作作为敏捷软件开发的核心,发挥着重要作用。协作发生在具有特定角色的不同团队成员之间。考虑到Scrum框架,其名称和角色解释如下:业务主管:业务主管在最小可行软件产品(MVSP)的开发中发挥积极作用。业务主管主要与Scrum主管和产品主管协调。产品负责人:产品负责人创建最小可行软件产品(MVSP),同时确保从开发工作中获得最大的投资回报(ROI)。产品负责人通过设置优先级来做到这一点。产品负责人的三个主要职责是:管理Scrum积压、发布和利益相关者管理。ScrumMaster:ScrumMaster负责将产品负责人或业务负责人共享的方向转化为有形价值。为此,Scrummaster帮助管理积压并协助开发团队进行自组织、管理潜在障碍等。设计、开发和测试团队:理想情况下,设计、开发和软件测试团队成员紧密合作。一旦开发了Web应用程序的前端,开发团队成员就会添加功能。最后,测试团队成员将通过开发不同的案例来检查功能。主题专家:潜在客户需要针对其行业痛点的解决方案。端到端Web和移动应用程序开发服务提供商可能拥有协助开发团队和Scrum主管的主题专家。四、敏捷中常用的方法和框架(一)ScrumScrum是一种广为流行的软件产品开发框架。它的重点主要是产品的设计、开发、测试和部署。开发是在冲刺中完成的,通常需要两到三周的时间。Scrum团队由产品负责人、Scrum主管、开发团队、主题专家和其他成员组成。敏捷软件开发项目的进度是通过在15分钟内完成的每日Scrum会议来衡量的。(2)Scrum框架的工作流程Scrum框架由冲刺、冲刺计划、每日Scrum、冲刺回顾、冲刺回顾、积压细化、冲刺取消等不同的组成部分组成。以下是对上述每个术语的简要概述。冲刺:冲刺通常持续两周。积压工作是在冲刺期间生成的,其中包含有关当前冲刺的可交付成果的信息。Sprint计划:Sprint计划过程从Scrum团队的受邀会议开始。团队就目标达成一致并定义有助于实现该目标的积压工作。每日Scrum:每日Scrum会议是限时15分钟的活动。做日常Scrum有一定的指导方针,比如开发人员发言,识别瓶颈和风险等。Sprint评审:在sprint周期结束后,进行sprint评审。理想情况下,产品负责人应该在向利益相关者展示可交付成果时出现。这提供了接收反馈的机会。SprintRetrospective:由于Scrum框架补充了持续学习的思想,因此在sprint完成后的回顾会议上讨论学习。总体思路是讨论哪些进展顺利,哪些进展不顺利。如果事情没有按计划进行,那么也会讨论背后的原因。待办列表细化:为了保持待办列表的质量,添加了一个细化步骤。待办列表细化步骤使团队成员能够将较大的需求分解为较小的需求、识别依赖关系、修改优先级等。取消冲刺:如果在冲刺期间没有达到目标:产品负责人可以取消冲刺。(3)极限编程极限编程主要侧重于广泛的测试,为此使用了“结对编程”的概念。考虑到将正常软件开发实践提升到极端水平的一般方法,该名称包括术语“极端”。极限编程中的常见活动:编码:极限编程中的编码实践包括来自其他程序员的大量反馈,因为该框架主要侧重于“测试”。测试:在软件开发阶段之后,测试对于消除错误(错误)至关重要。根据在测试阶段花费的时间,软件产品的质量可能会有所不同。在极限编程中,测试的概念被发挥到了极致,以消除最大数量的错误。这是通过“结对编程”实现的。在XP中有两种不同的测试方法——单元测试和验收测试。倾听:在极限编程中,程序员通过倾听客户的需求发挥重要作用。为此,程序员应该清楚哪些功能可以真正帮助客户,哪些业务逻辑可能需要更改。设计:好的软件设计易于维护。它还通过避免可能增加复杂性的依赖关系来增加价值,因为修改软件的一个模块可能需要更改多个其他模块。(4)动态系统开发方法(DSDM)在动态系统开发方法(DSDM)中,成本、质量和时间三个因素是预先确定的。此外,动态系统开发方法(DSDM)采用MoSCoW优先级方法修改优先级。这样做可以及时交付软件。DSDM的原则:关注业务需求:在DSDM中,业务目标与软件交付日期一样重要。管理业务需求的方式是通过某些实践来完成的,例如MoSCoW优先级排序、通过时间盒将大任务分解为较小的任务、改进可交付成果等。准时交付:强调使用MoSCoW优先级排序、截止日期管理和时间盒技术来交付成果。协作:协作的概念在DSDM中实施,利益相关者参与项目。了解赞助商和用户的需求很重要,主管会将此传达给团队成员。不妥协的质量:测试阶段很早就在DSDM中引入,并在整个开发过程中发挥积极作用。从坚实的基础逐步构建:“充分的前期设计”方法使客户和灵活的软件开发人员能够理解基本需求。在每次迭代中,团队成员都可以重新审视优先事项并考虑利益相关者的反馈。迭代开发:迭代方法增加了项目的价值,因为它涉及不断的测试。迭代软件开发方法还通过接受感兴趣的反馈来补充。持续和清晰的沟通:在DSDM中,通过非正式的每日站立会议加强沟通,这是讨论想法的好地方,研讨会使产品与利益相关者的期望保持一致。展示控制:管理软件开发项目和使用DSDM需要主动的管理技能。这包括协调利益相关者和团队成员,有效使用报告和分析,以及关注交付需求。(5)特征驱动开发(FDD)要理解特征驱动开发(FDD),你需要考虑它的三个基本组成部分。创建FDD的第一个组成部分是对象建模,第二个组成部分是使用功能列表来管理需求,而功能驱动开发的创建者JeffDeLuca利用他的专业经验设计了第三个组成部分。功能驱动开发(FDD)中的活动:开发整体模型:在此活动中,软件开发项目的范围通过高级演练最终确定。在同行评审会议上创建和评审不同的模型,最终将选定的模型合并到整个模型中。构建特征列表:完成第一个活动后,需要将复杂的特征简化并转化为小特征。这些特征代表了客户需求和业务活动的混合体。理想情况下,每个功能都有望在两周内以功能驱动开发(FDD)的方式开发出来。天生计划:一旦特征被最终确定,它们将被进一步划分并分配给每个程序员,然后由他们来改进类。这是一个三步过程;首先确定开发顺序,将业务活动分配给主导程序员,然后将类分配给其他开发人员。按功能设计:考虑时间盒方法最终确定功能列表。功能选择后不久,将创建序列图。最后执行设计检查。按功能构建:在此迭代活动中进行实际编码。单元测试在代码审查后不久执行。如果没有发现错误,代码将添加到主构建中。结束语敏捷软件开发方法在过去几年发生了根本性的变化。敏捷应用程序可以在其他领域找到,例如市场营销和销售。有了切实的成果,业务主管和项目经理必须了解敏捷软件开发的重要性并实施相关实践,并创建以客户为中心的产品或提供更多以客户为中心的服务。原标题:敏捷软件开发:原则、团队结构和框架,作者:RameshLal