CodeGym /Java 博客 /随机的 /软件开发方法
John Squirrels
第 41 级
San Francisco

软件开发方法

已在 随机的 群组中发布
在许多面试中,您可能会被问及方法论。这不是最重要或最困难的问题,但有备忘单会很好。在本文中,我们将尝试传达什么是开发方法并对它们进行比较。软件开发方法论是用于开发特定产品的过程,也就是说,它是开发人员团队组织开发的一种方式。有许多不同的开发模型,每种模型都定义了自己的方法。不能说他们中的任何一个都应该用于每个项目。正确的做法完全取决于具体情况。我打算更详细地考虑其中三个。

瀑布

瀑布方法是最古老的方法之一,涉及严格的顺序实施:每个阶段都必须在下一个阶段开始之前完成。换句话说,过渡到下一阶段意味着前一阶段的工作已 100% 完成。图片显示了它是如何工作的:首先,我们分析问题(记录任务,讨论挑战),然后我们设计(项目的结构在这个阶段形成),然后我们编码和测试。不允许返回到之前的阶段。对于要求事先已知且不太可能更改的小型项目,建议使用此方法。 软件开发方法论 - 2优点:
  • 每个阶段完整且一致的文档
  • 使用方便
  • 稳定要求
  • 预定义预算和截止日期
缺点:
  • 大量文档
  • 不太灵活
  • 客户看不到产品的演示版本
  • 没有向后移动的选项

敏捷

Scrum 是一种将整个过程划分为迭代的软件开发方法。在每次交互结束时,团队准备提供产品的演示版本。该图显示团队并行进行开发的所有阶段,从而可以在每次迭代结束时完成项目的一部分。 软件开发方法 - 3我将尝试使用简单的词来简要解释方法论的本质,但术语很多。我认为最重要的是理解本质。您会根据经验记住这些术语。所有开发都分为冲刺(通常为 2-3 周)。有积压(任务列表)针对整个开发阶段和每个单独的冲刺。每个任务都有自己的故事点(难度等级)。该过程中的每个参与者都有一个角色:
  • Scrum 团队由从事项目工作的专业人员(开发人员、测试人员、设计师)组成。
  • Scrum 主管是确保 Scrum 原则得到尊重的人。
  • 产品所有者是客户。
这种方法论依赖于沟通,所以有大量的会议:
  • 站会——这是一个简短的会议,每天举行,所有团队成员都参加。每个参与者回答 3 个问题:我做了什么?我该怎么办?有哪些阻塞问题?
  • 计划会议——该会议在冲刺开始时举行。在这次会议上确定了下一个冲刺必须执行的任务。
  • 回顾——这次会议在冲刺结束时举行,其目的是确定哪些方面做得好,哪些方面可以改进。
优点:
  • 客户可以在开发过程中看到结果
  • 开发过程的日常监控
  • 在开发过程中进行调整的能力
  • 与所有团队成员建立沟通
  • 少量文档
缺点:
  • 难以评估开发所需的劳动力和其他成本
  • 开发开始前难以识别瓶颈
  • 需要让每个人都参与其他团队成员的工作。

看板

看板是一种基于可视化团队任务完成进度的方法。主要思想是减少当前正在执行的任务数量(在“进行中”列中)。在 Scrum 中,团队专注于成功完成冲刺。在看板中,任务占据着至高无上的地位。这对于处于维护阶段的项目非常有用,在该阶段已经实现了基本功能,并且保留了最少的改进和错误修复。在看板中,任务是单独分配的。一项任务独立于其他任务,经历了板上的所有阶段,一旦完成,就可以向客户展示。看板由多个列组成,每个列代表一个单独的开发过程。某些列(例如,“进行中” ) 限制他们可以承担的任务数量。这有助于快速轻松地找到任务分配中的问题区域。图片显示了这样一块板的示例。列数及其名称可以变化。我将介绍最常见的: 软件开发方法论 - 4
  • To Do – 必须完成的任务列表
  • In Progress——正在进行的任务
  • 代码审查——完成并提交审查的任务
  • In Testing – 准备测试的任务
  • 完成——完成的任务
优点:
  • 使用方便
  • 可见性(帮助定位瓶颈,简化理解)
  • 团队高度参与流程本身
  • 高度灵活的开发
缺点:
  • 不稳定的任务列表
  • 难以申请长期项目
  • 没有严格的截止日期

关于软件开发方法论的最后一句话

担任或渴望担任管理职位的人必须彻底了解软件开发方法,但每个人至少需要了解基础知识。方法论是开发过程不可或缺的一部分,不仅用于 IT 领域。感谢您花时间阅读我的文章。希望对您有所帮助。我试图尽可能简单易懂地只描述关键点。因此,本文并不详尽。我很乐意听取您的意见并回答您的问题。一切顺利!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION