Documenting a process

History / Edit / PDF / EPUB / BIB
Created: March 24, 2020 / Updated: March 30, 2020 / Status: finished / 3 min read (~471 words)

How do you document a process?

A process is composed of a few things: inputs (dependencies), outputs and the steps to transform inputs into outputs.

Generally a new process will be created from a need (an output to be produced). For example, a client will come to you and ask to have software that does Y. Your output in this case as a software company is software that does Y. For the customer, the process they need you to develop is one where X (some unknown set of inputs) will be transformed to produce Y.

As a software developer, your task is two-fold.

First, you must develop a process for yourself to take client requirements (your input X) and convert them into software (your output Y), which means figuring out what needs to be done to go from X to Y (the transformation steps). Examples of those steps are requirements gathering, specification, design, architecture, implementation, testing, debugging, deployment, maintenance.

Second, you must develop a process for your client's requirements, that is, one that converts some input information into their desired ability to produce Y. Examples of steps that would be in this process are uploading document A, B, C, processing the documents to extract specific information, produce report D.

When documenting processes, the steps will themselves become processes, that is, they will have a set of inputs and a set of outputs. A process will generally evolve into a complex graph of inputs, processes and outputs.

Processes are also generally accomplished by someone or something. In process modeling we refer to those as roles. Examples of roles are user, customer support agent, clerk, engineer, analyst, software system.

Here's a very simple template that you can use to define your processes

  • Inputs: What do you need for the process to take place?
  • Processes: What actions are taken on the inputs to transform them into outputs?
  • Outputs: What is produced when the process is completed?
  • Roles: What roles are required to accomplish the actions of the process?
  • Average duration: How long is a process taking to complete in general?
  • Mandatory/Optional: Is this process mandatory or optional in the accomplishment of the higher-level process?