CodeGym /Java 博客 /随机的 /您需要了解的有关软件开发方法的一切:趋势、原则和初学者陷阱
John Squirrels
第 41 级
San Francisco

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

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

初学者注意!模型、方法和一般混淆

首先,我们需要做一个重要的澄清:软件开发模型和软件开发方法是分开和不同的。模型预测系统的行为方式。系统需要方法论才能正常工作。混淆软件开发模型和方法是每个 IT 新手的标准操作程序,因此这不算大错。模型的一个例子是经典的瀑布模型,它具有线性进展、每个阶段目标明确定义以及对截止日期的严格控制。另一种模型是螺旋模型,其重点是及早发现和减轻项目风险。螺旋式发展从小处着手,首先解决局部问题,然后逐步解决更复杂的问题。最后,另一种模型是迭代和增量开发 (IID),其中项目生命周期被分解为一系列迭代,每个迭代类似于一个“迷你项目”。一般来说,模型是对软件开发过程的描述。但方法论是用于控制、评估和监控分配任务工作的系统. 方法论是现代的大棒和胡萝卜,需要控制开发过程中的每一步。他们是根据项目的方向、预算和最终产品的实施期限来选择的。更重要的是,可以根据项目负责人及其团队的气质来选择方法。甚至基于公司或客户的理念。让我们来看看最流行的方法。

1.敏捷

Scrum 是一种敏捷的项目管理方法. 它基于“冲刺”或短迭代,严格限制时间(通常为 2-4 周)。这最大限度地减少了会议的持续时间,但增加了会议的频率。每个冲刺都包含一系列要在迭代结束时完成的任务,每个任务都有自己的“权重”。在会议期间,团队讨论团队成员已经做了什么,他们打算做什么,以及存在什么问题。Scrum 使用积压进行计划。在这种方法中,团队通常有一个 scrum master。此人帮助团队不受干扰地工作,并为团队创造一个舒适的环境。该项目还将有人担任产品所有者的角色。此人是开发负责人,监控产品,并充当客户要求与团队生产之间的主要纽带。

优点:

  • 能够以尽可能低的预算快速启动项目;
  • 每日监控进度,频繁的项目演示;
  • 在项目期间进行调整的能力。

缺点:

  • 由于缺乏固定预算而难以签订合同;
  • 不适用于没有经验的团队,或者当截止日期或预算被低估时;
  • 在冲刺之间不断做出改变的能力会造成混乱。

它是给谁的?

像这样的系统适用于最多 10 人的项目,无论是独立的还是存在于大公司中。如果团队有大量的工作和很长的生命周期迫使他们改变并适应新的市场条件,这将很方便。

2. 看板

看板最重要的特点是项目生命周期的可视化. 创建用于执行工作项的列。工作项目是单独处理的。这些列标有以下状态:待办、进行中、代码审查、测试中、完成(当然,列名称可能会有所不同)。每个团队成员的目标是减少第一列中的工作项数量。看板的方法很直观,可以帮助您了解问题所在。看板的结构不是明确且不可撤销的:根据项目的具体情况,您可以添加即兴的列。例如,某些团队使用的系统在执行之前需要为工作项定义完成规则。在本例中,添加了两列:Specify(指定参数)和 Implement(开始工作)。

优点:

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

缺点:

  • 不与超过五人的团队合作;
  • 不用于长期规划;
  • 不适合没有动力的团队。看板没有为每个工作项目设定最后期限。该方法也没有规定对延误的处罚。

它是给谁的?

看板在团队有动力成长和取得成果的公司中非常有效。应该已经很明显了——这适用于一个小团队。甚至可能是分遣队或团队的一部分。

3. 合理的统一过程(RUP)

RUP 方法论使用迭代开发模型。在每次迭代结束时(需要 2 到 6 周),团队应该实现计划的目标并获得项目的工作版本,尽管是临时的。RUP 要求将项目分为四个阶段。在每个阶段,都会执行下一代产品的工作:开始、细化、构建和过渡。在一个阶段结束时,实现了项目里程碑。团队评估其结果的那一刻可以被视为项目里程碑。这意味着该方法意味着在第一阶段发布主要功能,并在后续阶段添加附加功能。

优点:

  • 可以处理不断变化的任务,包括来自客户的任务和工作过程中出现的变化;
  • 确保产品的持续改进。在迭代过程中,您可以仔细评估项目;
  • 可以在工作的早期阶段识别和消除风险,并有效控制开发质量。

缺点:

  • 这种方法相当复杂,难以在小型团队或公司中实施;
  • 取决于专家设置任务的能力;
  • 需要过多的需求文档。

它是给谁的?

当产品需要尽快发布时,具有明确规定的要求和风险的大型项目。甚至以牺牲功能为代价,为了快速占据你的利基市场,只有在以后添加画龙点睛之笔。

方法有很多种,但有一个趋势

除了无可否认地流行并基于敏捷原则的scrum 和看板,以及稳健的、迭代的 RUP 方法论之外,公司还使用许多不同的方法论。一家公司可能更接近极限编程并做出最快和最简单的决策。另一个可能更接近于测试驱动开发。另一个人可能更喜欢快速应用程序开发 (RAD)。也就是说,同时使用多种方法论是一种强烈的、毋庸置疑的趋势. 或者甚至将模型和方法组合到一个独特的管理系统中。当今的公司努力消除官僚主义障碍,在组织内部营造统一的团队合作氛围,而不在部门和组织单位之间转移责任。根据Scrum 联盟, 70% 的 IT 公司使用 scrum。其中包括谷歌、亚马逊、Salesforce、微软和 Adob​​e 等巨头。初创公司和年轻的项目更倾向于看板,但丰田和 Wargaming 的游戏玩家也使用它。Scrum 是一种计划工具,而看板是用于监控进度的。至于 RUP,它最常被拥有 50-200 名员工和 1-1000 万美元收入的西方公司使用。然而,IBM 修改了 RUP 以更接近敏捷原则,发布了 OpenUP 方法论(RUP,但敏捷)。这种自负的敏捷方法现在正在推动 IT 世界。这不仅仅是一时的时尚——它仍然是创新的,事实上它被许多大公司所采用。硅谷使用敏捷。Facebook 和优步使用它。

底线

每个项目都有自己的软件开发方法,这取决于团队、资金、截止日期和客户要求。没有通用的管理技术:即使是广受欢迎的敏捷方法也无法确保开发过程的最佳方法。因此,我们会仔细选择方法,有时甚至是原则性地选择。如此之多以至于我们可以通过查看其方法来得出有关公司本身或其客户的结论。方法论是混合的,以模型为补充,并进行调整。如此之多以至于它们产生了新的方法。也就是说,管理领域最终仍掌握在 scrum 和看板手中,其中包含瀑布模型或迭代 RUP 方法的意想不到的元素。
更多阅读:
网站: 图书:
  • Andrew Stelman、Jennifer Greene:“学习敏捷”;
  • Per Kroll,Bruce MacIsaac:«敏捷性和纪律变得简单:来自 OpenUP 和 RUP 的实践“;
  • Mike Cohn:“敏捷成功:使用 Scrum 进行软件开发”;
  • Robert C. Martin:“敏捷软件开发:原则、模式、实践”;
  • Marcus Hammarberg, Joakim Sunden:“看板实战”;
  • I. Jacobson、G. Booch、J. Rumbaugh:“统一软件开发过程”。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION