Foundational knowledge - The process of mHealth software development

3. Select the Software Engineering Methodology

The next step consists in deciding on a software engineering methodology to be employed in the development of the mHealth software. One of the most popular umbrella concept software engineering methodologies used today is the “Agile” approach (Davies & Mueller, 2020). Agile is an iterative approach that consists of gathering requirements, planning the prioritization of requirements, planning the delivery of requirements, development, testing, and deployment of small working versions of the product (minimal viable product  - MVP) (Davies & Mueller, 2020).

Agile software engineering methodology

Agile software engineering methodology (Davies & Mueller, 2020)

The Agile software engineering methodology functions on 12 principles presented below:

Agile-principles

Agile principles (Beck et al., 2001)

From the Agile approach, the two most common frameworks are Scrum and Kanban. These are detailed below.

Scrum framework is a lightweight Agile framework that “helps people, teams and organizations generate value through adaptive solutions for complex problems” (Schwaber & Sutherland, 2020).

The Scrum master framework contains a Scrum master to develop an environment where:

  1. A Product Owner orders the work for a complex problem into a Product Backlog.
  2. The Scrum Team turns a selection of the work into an Increment of value during a Sprint.
  3. The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.
  4. Repeat” (Schwaber & Sutherland, 2020)

Scrum-Framework

Scrum Framework (Schwaber & Sutherland, 2020)

Kanban is another methodology from the Agile framework that “is typically a large physical board that displays the current state of work visually to offer a transparent snapshot for the entire state of the project” (Davies & Mueller, 2020). The physical board is usually split into columns with different cards that contain the working units. These units are moved between the columns to indicate the current state (e.g., from pending to progress). Kanban boards can also be developed digitally, and different softwares use this concept (e.g., Asana, Monday, ClickUp).

Basic Kanban board

Basic Kanban board (Shore Labs, 2021)