JavaRush /Java 博客 /Random-ZH /您需要了解的有关软件开发方法的一切:初学者的趋势、原则和陷阱

您需要了解的有关软件开发方法的一切:初学者的趋势、原则和陷阱

已在 Random-ZH 群组中发布
软件开发是一个复杂的业务流程。这意味着 IT 需要使用优化、规划和计算的语言。 您需要了解的有关软件开发方法的一切:初学者的趋势、原则和陷阱 - 1了解管理概念为雇主和开发人员提供了重大优势,并有助于将协作提升到新的水平。

初学者注意事项:模型、方法和一般困惑

首先需要澄清一点:软件开发有单独的模型,并且这种开发有单独的方法。模型预测系统的未来行为。系统需要方法论才能按其需要的方式工作。混淆软件开发模型和方法是每个 IT 初学者的神圣任务,因此这不被视为严重错误。然而,这些模型是经典的瀑布式瀑布模型,具有线性、每个阶段明确的目标设定和对截止日期的严格控制。这些模型是螺旋式的,重点是早期识别和减轻项目风险。螺旋式发展从小规模开始,首先解决局部问题,然后解决更复杂的问题。最终模型是IID,它将项目生命周期分解为一系列迭代,每个迭代都类似于一个“迷你项目”。一般来说,模型描述软件开发过程的东西。但方法论是控制、评估和监控指定任务工作的系统。 方法论是现代发展的胡萝卜加大棒,需要方法论来控制发展过程的各个环节。它们是根据项目的方向、预算和最终产品的时间选择的。此外,可以根据项目经理及其团队的性格来选择方法。甚至基于公司或客户的理念。让我们看看最流行的方法。

1.Scrum 方法论

Scrum 是一种敏捷项目管理方法。它基于“冲刺”——短迭代,时间严格限制(通常为 2-4 周)。会议的持续时间减少到最短,但频率增加。每个冲刺都包含一系列任务,直到迭代结束,每个任务都有自己的“权重”。在会议期间,团队讨论谁做了什么、他们将要做什么以及存在什么问题。Scrum 使用冲刺日志进行规划。在这种方法中,团队中经常出现Scrum Master,他建立整个团队的持续工作,为其创造舒适的条件。同样在项目中,产品负责人的角色也出现了——开发经理,监控产品的人,并充当客户请求和团队结果之间的主要纽带。

优点:

  • 以尽可能低的预算快速启动项目;
  • 日常监控工作进度,经常进行项目演示;
  • 随着项目的进展进行更改的能力。

缺点:

  • 由于缺乏固定预算而难以签订合同;
  • 不与团队资质低、低估工作期限或预算的情况合作;
  • 在冲刺之间不断进行更改的能力可能会造成混乱。

适合谁:

该系统适用于最多十人的项目 - 独立项目或大公司内部的项目。如果团队工作量大且生命周期长,迫使他们改变并适应新的市场条件,这会很方便。

2. 看板方法

看板最重要的特点是项目生命周期的可视化。创建列是为了完成单独提交的任务。这些列标有标记,例如:待办事项、正在进行、代码审查、测试中、完成(当然,列的名称可以更改)。每个团队成员的目标是减少第一列中的任务数量。看板方法是可视化的,可以帮助您了解问题所在。看板结构并不是明确且不可撤销地确定的:根据项目的具体情况,可以添加临时栏。例如,某些团队使用的系统需要在执行任务之前定义任务准备情况的标准。然后添加两列 - 指定(指定参数)和执行(开始工作)。

优点:

  • 规划灵活性。团队只专注于当前工作,任务的优先级也已确定;
  • 能见度。当所有参与者都可以访问数据时,全球问题就更容易被注意到;
  • 高度参与开发过程。流程可视化增强了自组织和自控制。

缺点:

  • 不与超过五人的团队合作;
  • 不适合长期规划;
  • 不适合在没有动力的团队中工作。在看板中,没有为每项任务设定最后期限,并且该方法没有规定对延迟的处罚。

适合谁:

看板在团队有动力去发展和取得成果的公司中效果很好。显而易见,这是一个小团队。甚至可能是一个部门或团队的一部分。

3.RUP方法论

RUP 方法使用迭代开发模型。在每次迭代结束时(需要 2 到 6 周),团队应该实现计划目标并拥有项目的临时但有效的版本。RUP 涉及将项目分为四个阶段,每个阶段都在新一代产品上完成工作:项目启动阶段、细化、构建和实施。在阶段结束时,输入阶段完成标记(项目里程碑)。项目里程碑可以被视为团队评估所取得的成果的时刻。因此,该方法意味着在第一阶段发布主要功能,并在后续阶段添加附加功能。

优点:

  • 让您能够应对来自客户和工作期间出现的不断变化的任务;
  • 确保产品的持续改进。在迭代过程中,可以仔细检查设计;
  • 让您在工作初期识别并消除风险,有效控制开发质量。

缺点:

  • 相当复杂的方法,很难在小团队或公司中实施;
  • 依赖专家设定任务的能力;
  • 需要过多的需求文档。

适合谁:

当产品需要尽快发布时,具有明确定义的需求和定义的风险的大型项目。即使以牺牲功能为代价,为了快速占据其利基市场,然后才细化细微差别。

多种方法,一种趋势

除了无可否认流行的 Scrum 和看板(它们基于通用名称“敏捷”下的灵活性原则)以及顽强的迭代 RUP 之外,公司还使用许多不同的方法。有些人喜欢极限编程并做出最快、最简单的决策,有些人喜欢测试驱动开发,而另一些人则喜欢快速应用程序开发 (RAD)。同时,主要且无条件的趋势是同时使用多种方法。或者甚至将模型和方法结合到一个独特的控制系统中。 您需要了解的有关软件开发方法的一切:趋势、原则和初学者的陷阱 - 2现代公司努力消除官僚主义障碍,在组织内营造一种团队合作的氛围,而不是在部门和部门之间转移责任。根据Scrumalliance 报告,70% 的 IT 公司使用 Scrum。其中包括谷歌、亚马逊、Salesforce、微软、Adobe等巨头。初创公司和年轻项目更倾向于看板,但丰田和 Wargaming 的游戏玩家也使用它。规模较小的 CIS 公司 Prom.ua、Bigl.ua、Kabanchik.ua 同时使用 Scrum 和看板方法,但用于不同的任务。Scrum - 作为计划工具,看板 - 用于监控工作进度。至于RUP,最常由拥有50-200名员工、收入在1-1000万美元的西方公司实施。但与此同时,IBM 通过发布 OpenUP 方法论——“RUP,只有敏捷”,改变了 RUP,使其更接近敏捷原则。同样被吹捧的敏捷性现在统治着 IT 领域。如今,这不仅仅是一种时尚——它仍然具有创新性,并且在许多大公司中确实有效。敏捷在硅谷使用,Facebook和Uber也在使用。

底线

每个项目都有自己的软件开发方法,具体取决于团队、资金、时间安排和客户要求。不存在通用的管理技术:即使是广受欢迎的敏捷也无法提供开发过程的最佳方法。因此,方法论的选择是谨慎的,有时甚至是根本性的。如此之多以至于你可以用它来得出有关公司本身或其客户的结论。方法论是混合的,以模型为补充,并进行调整以适应自身的需要。以至于它们催生了新的方法。尽管最终管理领域仍然掌握在 Scrum 和看板手中,并且意外地包含了瀑布模型或迭代 RUP。
还有什么可读的
网站: 图书:
  • Andrew Stelman、Jennifer Greene:“学习敏捷”;
  • Per Kroll、Bruce MacIsaac:“敏捷性和纪律变得简单:来自 OpenUP 和 RUP 的实践”;
  • 迈克·科恩:Scrum。敏捷开发”;
  • Robert K. Martin:“快速软件开发。原理、例子、实践”;
  • Markus Hammarberg、Joakim Sundén:“行动中的看板”;
  • A Jacobson、G. Booch、J. Rumbaugh:“统一的软件开发流程”。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION