第 2 章 了解并组织我们项目的业务需求

在编写一行代码之前,我们首先需要了解项目的目标以及我们要解决的问题。我们构建软件是为了解决问题,如果我们不能充分理解客户或企业想要实现的目标,我们就很难提出理想的解决方案,更有甚者,我们可能花费数月时间构建的软件根本无法满足业务需求。

作为软件开发人员,能清楚地列出需要构建的软件是一件好事。这就像有一个简单的杂货清单一样。这份清单将帮助我们确定需要首先开发或发布哪些功能。因此,在开始通过编写软件来构建问题解决方案之前,我们将尝试举一个简单的例子,将业务问题和目标解释为我们需要编写代码的软件功能列表。

在本章中,我们将提出一个业务问题示例。我们将尝试分析该示例业务试图实现的目标,以及阻碍其实现该目标的因素。我们将提出一个解决方案,帮助我们定义业务需求并将其组织成一个可行的用户故事列表。反过来,这些用户故事将用来表示我们的行为驱动测试。这些行为驱动测试将帮助我们构建测试驱动代码。行为驱动开发(BDD)将在第 6 章 "应用行为驱动开发" 中详细讨论。

image 2023 10 23 08 53 32 485
Figure 1. Figure 2.1 – Building with TDD and BDD
  • 如何把需求转化为用户故事?

  • 具体由谁负责?

与测试驱动开发(TDD)和 BDD 相反,开发人员也可以直接为 用户故事或需求 编写解决方案代码。这将给未来带来灾难。事实上,我以前就是这样开发软件的:

image 2023 10 23 08 56 02 282
Figure 2. Figure 2.2 – Developing a solution without tests

在本书中,我们将重点讨论如何根据测试程序所代表的业务需求构建解决方案代码。因此,让我们从了解示例业务问题和需求开始。

在本章中,我们将介绍以下内容:

  • 示例业务项目

  • 将业务需求分解为软件功能

  • 将 Jira 与 Bitbucket 集成

技术要求

本章要求读者具备 Git 版本控制的基础知识。