在许多面试中,您可能会被问及方法论。这不是最重要或最困难的问题,但有备忘单会很好。在本文中,我们将尝试传达什么是开发方法并对它们进行比较。软件开发方法论是用于开发特定产品的过程,也就是说,它是开发人员团队组织开发的一种方式。有许多不同的开发模型,每种模型都定义了自己的方法。不能说他们中的任何一个都应该用于每个项目。正确的做法完全取决于具体情况。我打算更详细地考虑其中三个。
优点:
我将尝试使用简单的词来简要解释方法论的本质,但术语很多。我认为最重要的是理解本质。您会根据经验记住这些术语。所有开发都分为冲刺(通常为 2-3 周)。有积压(任务列表)针对整个开发阶段和每个单独的冲刺。每个任务都有自己的故事点(难度等级)。该过程中的每个参与者都有一个角色:
瀑布
瀑布方法是最古老的方法之一,涉及严格的顺序实施:每个阶段都必须在下一个阶段开始之前完成。换句话说,过渡到下一阶段意味着前一阶段的工作已 100% 完成。图片显示了它是如何工作的:首先,我们分析问题(记录任务,讨论挑战),然后我们设计(项目的结构在这个阶段形成),然后我们编码和测试。不允许返回到之前的阶段。对于要求事先已知且不太可能更改的小型项目,建议使用此方法。
- 每个阶段完整且一致的文档
- 使用方便
- 稳定要求
- 预定义预算和截止日期
- 大量文档
- 不太灵活
- 客户看不到产品的演示版本
- 没有向后移动的选项
敏捷
Scrum 是一种将整个过程划分为迭代的软件开发方法。在每次交互结束时,团队准备提供产品的演示版本。该图显示团队并行进行开发的所有阶段,从而可以在每次迭代结束时完成项目的一部分。
- Scrum 团队由从事项目工作的专业人员(开发人员、测试人员、设计师)组成。
- Scrum 主管是确保 Scrum 原则得到尊重的人。
- 产品所有者是客户。
- 站会——这是一个简短的会议,每天举行,所有团队成员都参加。每个参与者回答 3 个问题:我做了什么?我该怎么办?有哪些阻塞问题?
- 计划会议——该会议在冲刺开始时举行。在这次会议上确定了下一个冲刺必须执行的任务。
- 回顾——这次会议在冲刺结束时举行,其目的是确定哪些方面做得好,哪些方面可以改进。
- 客户可以在开发过程中看到结果
- 开发过程的日常监控
- 在开发过程中进行调整的能力
- 与所有团队成员建立沟通
- 少量文档
- 难以评估开发所需的劳动力和其他成本
- 开发开始前难以识别瓶颈
- 需要让每个人都参与其他团队成员的工作。
看板
看板是一种基于可视化团队任务完成进度的方法。主要思想是减少当前正在执行的任务数量(在“进行中”列中)。在 Scrum 中,团队专注于成功完成冲刺。在看板中,任务占据着至高无上的地位。这对于处于维护阶段的项目非常有用,在该阶段已经实现了基本功能,并且保留了最少的改进和错误修复。在看板中,任务是单独分配的。一项任务独立于其他任务,经历了板上的所有阶段,一旦完成,就可以向客户展示。看板由多个列组成,每个列代表一个单独的开发过程。某些列(例如,“进行中” ) 限制他们可以承担的任务数量。这有助于快速轻松地找到任务分配中的问题区域。图片显示了这样一块板的示例。列数及其名称可以变化。我将介绍最常见的:
- To Do – 必须完成的任务列表
- In Progress——正在进行的任务
- 代码审查——完成并提交审查的任务
- In Testing – 准备测试的任务
- 完成——完成的任务
- 使用方便
- 可见性(帮助定位瓶颈,简化理解)
- 团队高度参与流程本身
- 高度灵活的开发
- 不稳定的任务列表
- 难以申请长期项目
- 没有严格的截止日期
GO TO FULL VERSION