首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Coding
V2EX  ›  问与答

敏捷开发——互联网时代的软件开发方式

  •  
  •   cornerstone · 27 天前 · 320 次点击

    前言:

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

    当前,似乎每个公司每个人都在践行敏捷。这主要归功于敏捷能够适应变化并整合客户反馈的特质。 现代社会这两者是非常重要的,因为技术在不断地革新,且人们获取信息的方式越来越容易——包括公开的客户反馈。

    快速响应并将客户反馈纳入产品和流程,要求自组织团队不断调整工作的内容以提高效率。团队可以进行定期调整以满足每天出现的新需求。在项目规划方面,这种波动环境可能会使事情变得棘手:因为几乎不存在明确的截止期限和可预期的交付成果。

    正因为敏捷开发的这种不断迭代升级的开发模式,使得其更加适合当今瞬息万变的互联网,可以说是互联网时代的软件开发方式。因此,如果践行敏捷的基础正在快速变化,那么在不断迭代项目的同时,敏捷中如何定义完成?我们如何知道已经真正完成了任务?这是一个有趣的问题。在回答这个问题之前,让我们先了解关于敏捷及其方法论。

    一、在敏捷中如何完成工作

    简单来说,在项目管理中,敏捷用迭代方法来规划和指导项目过程,这将鼓励变革。这种方法与传统的项目管理方法(如瀑布式)截然相反,因为瀑布式设定了严格的流程和结构。

    敏捷是为短时间内进行冲刺( sprint )的小团队设置的过程,可以帮助团队在项目中快速响应变化。小组在冲刺前后定期碰面,根据项目变化调整工作方式。

    通过敏捷框架,团队才可能打造客户需要的产品,而不是闭门造车,交付不符合市场需求和趋势的产品。有了敏捷模式,在项目过程中,团队可随时根据需要进行调整工作,从而找到更好的路径去开发合适的产品。这将使得组织更具竞争力,但当存在无穷尽的功能更新和其他修复任务时,我们也很难界定某些任务是否可以标记为已经完成。

    image.png (图为CORNERSTONE需求管理页面)

    二、敏捷中完成的定义

    了解了相关背景后,让我们来回答前面的问题,即如何确定我们是否完成了敏捷任务。其中一种答案认为在完成冲刺后,敏捷任务即可视为完成。冲刺通常是项目过程中持续时间较短的任务,通常为一天、几天,但最长不会超过一个月。冲刺完成之后,团队开会并回顾已完成的工作、需要调整的地方和未来的行动规划。计划依然存在,但已经被调整以符合实际工作情况。

    完成迭代

    理论上,每完成一次迭代就意味着项目的完结。但事实并非总是如此。一旦出现了必须解决的问题,项目就必须快速对这些变更做出响应。因此,我们不建议在每个冲刺( sprint )后发布产品。但需要确保在 sprint 阶段完成各个功能,以便追踪项目的进度。

    因此,完成工作意味着产品的各项功能得到充分地开发、测试、设计并得到产品负责人的认可。只有这样才可算完成。敏捷中有很多“完成”,但如果有任何存疑之处,sprint 就没有真正完成,因此也不应交付。

    在产品真正完成和交付之前,每个功能是否完工都需要取决于其他功能的完成情况。这就意味着需要整体的完成。但每个 sprint 都应该在结束是完成某个特定功能。这就意味着如有必要,该功能在 sprint 结束时可以单独交付。

    image.pngimage.png 在这里插入图片描述 (图为CORNERSTONE迭代信息页面)

    团队差异

    但每个团队都有自己专属的完成定义,这从另一方面说明所有的用户故事标准已经得到认可。但无论这个定义是什么,它要能提高工作质量,并在用户故事完成时进行评估。

    在软件开发方面,完成指的是某些内容按照标准进行了编码,经过了审查、实施、测试、整合和记录。在服务支持方面,指的是用户故事的每个任务都已经完成,产品所有者对其进行了审核,并确定所交付产品满足了需求。

    在敏捷中,完成意味着团队知道需要交付什么,并且按要求进行了交付。完成是一种确保透明的手段,能够确保工作的质量符合产品要求和组织目的。

    三、完成的定义是否会变化?

    敏捷这种至关重要的管理方法可以在各类框架中执行,包括 Scrum、极限编程、自适应软件开发、DSDM、特性驱动开发、看板和水晶方法等。

    这些流程是可在敏捷框架内工作的方法,但它们具备不同的方法和功能,可以适用于不同类型的项目并发挥最佳的成效。具体哪一种更好可能需要取决于具体项目的情况。但这并不意味着每个项目只能选择一种方法。综合运用一个或多个方法,可能更适合项目的需求。敏捷之所以广受欢迎,也恰好是因为其灵活性及过程的多样性。尽管敏捷包含不同类型的进程,它们都遵循了同样的完成定义。

    image.png (图为 Scrum 敏捷开发流程)

    四、完成的原则是不变的

    2001 年发布的《敏捷宣言》宣告了敏捷的诞生。宣言的发表是为了回应传统的软件开发管理方法,它概述了每个敏捷框架中存在的基本概念。敏捷宣言强调的四个核心价值是:

    个体和互动高于流程和工具

    工作的软件高于详尽的文档

    客户合作高于合同谈判

    响应变化高于遵循计划

    敏捷软件开发还提出了 12 条原则。这些原则充分体现了我们对任务或项目何时真正完成的理解:

    image.png (图为敏捷开发之 12 条敏捷原则)

    五、软件开发之外的敏捷

    虽然敏捷诞生于软件开发,但目前已经应用于更广泛的商业领域。敏捷、精益和组织学习的想法概念已经超越了软件开发的小圈子,其他行业也开始采用站立会、优先级和可视化管理。

    image.png (图为CORNERSTONE可视化任务看板)

    敏捷从不仅是作为 IT 项目管理的工具,它还可以改变其他企业的管理流程,使用敏捷思想来改变管理项目就是一个非常好的例子。

    敏捷某些方面的特征,如待办事项等,可以在企业项目中使用并将成为最终交付项目的部分功能和特征。项目中的冲刺或短期项目,能充分发挥敏捷的快速和高适应性优势。敏捷的另外一种应用是跨职能团队的构建,这能大大提高沟通效率。且持续集成还将有助于提高项目不同版块之间的透明度,从而提高工作效率。此外,还有信息发射源、迭代、增量开发、Scrum 会议、时间盒、用例、用户故事等等,所有这些都能够帮助公司用与传统瀑布开发不同的方法完成工作。

    为了获得在敏捷环境中工作所需的透明度和协作,我们需要运用正确的工具,确保每个人都知道完成的定义。CORNERSTONE提供专业的敏捷开发模板工具,包括任务 /需求 /测试管理、迭代规划、缺陷追踪、报表统计、团队协作、WIKI、共享文件和日历等功能模块,完美匹配整个敏捷开发流程,20 人以下团队可免费使用,点击即可免费注册CORNERSTONE

    image.png

    1 回复  |  直到 2019-11-14 09:21:48 +08:00
        1
    IMCA1024   27 天前
    scrum 跟敏捷开发一样吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4335 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 03:24 · PVG 11:24 · LAX 19:24 · JFK 22:24
    ♥ Do have faith in what you're doing.