Software Development Process

  1. Problem Stage The main purpose of this stage is to clearly understand the pain points and problem statement. It also includes iteratively designing solutions that must ultimately be validated by users before moving to the build stage.

  2. Meet with Stakeholders (product owner from WF, design, engineering)
  3. Understand and document user pain points 1. Product owner is responsible for representing the users’ pain points. 1. Everyone works towards defining and documenting the problem statement 1. Everyone can brainstorm solutions.
  4. Design will iteratively on mockups visual representations of the solution 1. Engineering is responsible for voicing technical feedback (feasibility, complexity, etc) 1. Product is responsible for validating that the potential solution is likely to work on initial iterations and then determine when is the right time to present to users.
  5. Once solution is validated by end users, move to building.

Note: there is no guarantee the solution will succeed, this is a best effort per cost attempt since waiting for the perfect solution is often expensive compared to just trying something and iterating.

  1. Build Stage The main purpose of this stage is to de-risk technical uncertainty in the implementation of the feature. Also timeline estimates are useful for coordinating the rollout of said feature once the uncertainty has been sufficiently reduced and the remaining work is fairly well known and well as work schedules (e.g. account for vacations, etc)

    1. Design can move to implementing the front-end
    2. Engineering can begin implementation planning and building.
    3. Look to provide demoable check points in the planning such that we can re-validate with users the features being built. More information will come after they can use it and play around with it.

This stage usually culminates in a staging environment deployment for end users to test.

  1. Rollout Stage

This stage refers to the collective work required to technically deploy updates to the production system as well as the work required by the product owner to communicate with impacted stakeholders (usually users but potentially more broadly). This can include demos, training videos for end users as well as timelines to set expectations around changes to the users.

There is usually a final testing of the new features as well as regression testing in the staging environment.

After the product owner has sufficiently communicated with impacted stakeholders and is okay to proceed, this stage usually culminates in a production environment deployment.