PHP前端开发

解锁敏捷:超越框架

百变鹏仔 2个月前 (10-14) #JavaScript
文章标签 敏捷

敏捷是一系列技术和方法的集合,可提高团队内的决策、生产力和思维能力。
这些技术涵盖了传统软件工程的各个方面,例如项目管理、软件设计和架构以及流程优化。为了使它们尽可能简单地实施,它们由经过简化和优化的程序组成。

因为适当的心态可以显着影响团队应用技术的程度,所以敏捷也是一种心态。这种心态有利于团队成员之间的信息共享,以便可以集体做出重要的项目选择,而不是由经理单独充当决策者。拥抱敏捷心态需要让整个团队参与规划、设计和流程优化。敏捷团队的每个成员都参与技术的应用,并与整个团队共享相同的信息。

对于许多没有经历过如此成功的团队来说,敏捷与它所承诺的有很大不同,而这种差异的很大一部分往往是团队对每个项目的态度。大多数软件开发企业都涉足敏捷,虽然其中许多企业取得了成功,但一些团队的成果并不理想。他们在项目运行方式方面取得了一些进展,足以让拥抱敏捷的努力变得值得,但他们还没有看到敏捷所承诺的重大变化。这是心态转变背后的主要思想:“敏捷”是指帮助团队培养高效的心态。
然而,“心态转变”到底是什么意思呢?在软件团队工作需要每天规划、设计、开发和发布软件。 “心态”与此有何关系?事实证明,您和您的队友处理这些问题的方式会影响您在日常工作中采用的许多程序。
这是一个例子。 每日站立是团队成员讨论目标和问题的聚会,是团队最流行的敏捷方法之一。我们让每个人全程站立,以保持会议简短。对于许多团队来说,在项目中添加每日站立会议已被证明是非常成功的。

理解敏捷价值观(敏捷宣言)

敏捷价值观要点

• 敏捷宣言包含可打造高效团队的共同价值观和想法。
• “个人和交互重于流程和工具”意味着团队应该首先关注团队中的人员以及他们如何沟通,其次才是他们使用的工具和实践。
• “工作软件胜过全面文档”意味着交付满足用户需求的软件比交付描述软件的规范更重要。
• 可用软件是指能够为公司创造价值的软件。
• “客户协作胜过合同谈判”意味着对待每个人都像同一个团队一样。
• 许多高效的敏捷团队将产品负责人视为项目团队的成员来进行协作,而不是作为客户进行谈判。
• “响应变化胜过遵循计划”意味着认识到计划会变得不准确,并且交付软件比执行计划更重要。
• 任务板是一种敏捷的规划工具,其中用户故事被附加到板上,并根据其在当前项目或迭代中的状态分类为列。

敏捷软件的 12 条原则

  1. 我们的首要任务是通过尽早持续交付有价值的软件来满足客户 - 客户永远是对的。

  2. 欢迎不断变化的需求,即使是在开发后期。敏捷流程利用变革来为客户带来竞争优势。意思是:
    a.当发生变化时,没有人会陷入“麻烦”。
    b.我们同舟共济。每个人都在合作。
    c.我们不会坐等改变,直到为时已晚。
    d.我们不再将改变视为错误。
    e.我们从变化中学习。这是团队成长并更好地共同构建软件的最有效方式。

  3. 经常交付工作软件,从几周到几个月不等,优先考虑较短的时间范围。通过使用限时迭代来频繁交付工作软件,敏捷团队不断调整项目,以便为客户提供最大价值

  4. 向开发团队以及在开发团队内部传达信息的最高效、最有效的方法是面对面的对话。当团队中的人们不进行面对面的沟通时,他们可能会在大体上达成一致,但最终会朝着不同的目标努力。全面的文档可能会让情况变得更糟,因为很容易引入歧义。

  5. 业务分析师和开发人员在整个项目中的日常协作可以提高效率。这是因为业务专业人员必须等到项目结束时才能审查团队的绩效并提供意见,而此时完成项目修改的成本要高得多。

  6. 围绕积极主动的个人构建项目。为他们提供所需的环境和支持,并相信他们能够完成工作。

  7. 工作软件是进度的主要衡量标准。它比进度报告更好,为每个人提供项目状态的最新更新,因为它是团队沟通他们所完成的事情的最有效方式。这是敏捷团队使用迭代开发的原因之一。通过在每次迭代结束时交付工作软件,并进行真实的产品演示,向每个人准确展示团队所做的事情,他们以一种几乎不可能误读的方式让每个人都了解软件的最新进展。

  8. 敏捷流程促进可持续发展。赞助商、开发者和用户应该能够无限期地保持恒定的步伐。

  9. 持续关注卓越的技术和良好的设计可以增强敏捷性。

  10. 简单性 - 最大化未完成工作量的艺术 - 至关重要。敏捷团队通过避免构建不必要的功能或过于复杂的软件来使解决方案尽可能简单。

  11. 最好的架构、需求和设计来自自组织团队。自组织团队分担项目各个方面的责任,从产品构思到项目管理再到设计和实施。

  12. 团队会定期反思如何变得更加高效,然后相应地调整其行为。通过花时间回顾并讨论他们在每次迭代后以及结束时学到的经验教训在项目中,敏捷团队在构建软件方面不断进步。

流行的敏捷方法

只是它们的简短定义:
Scrum、极限编程(XP)、精益和看板

1。 Scrum 和自组织团队
Scrum 是一个强大的框架,强调敏捷项目管理中的渐进式进步、持续改进和合作。 Scrum 强调以小增量交付价值并培养强大的团队活力,帮助组织应对产品开发的复杂性和不确定性。

2。极限编程(XP)
极限编程是一种强大的敏捷方法,非常强调客户和开发人员的密切合作以及技术质量。通过使用结对编程、TDD 和持续集成等技术,XP 支持团队开发高质量的软件,以满足快速变化的环境中的用户需求。由于其强调反馈、简单性和沟通,它特别适合需求经常变化的项目。

3。瘦
在敏捷中,精益方法强调效率、持续改进和客户满意度,同时以很少的浪费提供最大的价值。团队可以通过实施精益概念和实践来提高协作能力,更快地响应不断变化的需求并简化运营。这种方法非常适合灵活性和以客户为中心的开发的敏捷原则,这使其成为当代软件开发中的一种有效策略。

4。看板
有效的敏捷方法看板非常重视效率、可视化管理和持续开发。通过实施看板和概念,团队可以改进工作流程管理、促进协作并提高客户价值交付。由于它的适应性和对流程的重视,它在优先级和要求经常变化的环境中尤其有效。


上图展示了 Scrum、XP 和 Lean 如何以敏捷价值观为核心,并相互分享一些价值观、想法和实践。

敏捷软件开发生命周期

敏捷 SDLC 是产品从开始到结束所经历的一系列结构化阶段。它包含六个阶段:
1。概念:定义项目范围和优先级
2。启动:根据项目需求组建敏捷团队
3。迭代: 在客户反馈中创建代码分解
4。发布: 测试代码并解决任何问题。当所有这些完成后,产品的最终迭代就可以发布到生产中。
5。维护:提供持续的技术支持,以确保产品保持可用
6。报废: 产品寿命的结束,通常与新产品寿命的开始同时发生。如果产品正在被新软件取代,或者随着时间的推移系统本身已经过时或与组织不兼容,那么产品就会进入这个阶段。软件开发团队会首先通知用户该软件即将退役。如果有替换,用户将迁移到新系统。

根据团队选择的项目管理方法,敏捷生命周期会略有不同。例如,Scrum 团队以称为冲刺 (sprint) 的短暂间隔进行操作,这与迭代相当。此外,他们还有明确定义的角色——比如 Scrum master。另一方面,看板团队的运作更像是连续流程,没有必要的角色。极限编程是另一个例子,团队优先考虑工程技术并以更短的迭代进行工作。然而,所有软件开发团队的目标都是相同的:按时向用户交付可用的软件。