It might be useful to document some important functions, processes or features in a semi-formal notation.

Consider the open-source PlantUML ( as an example. Given the following activity description, it can create a graphical version:


  :select product;

  if (private customer?) then (yes)
  else (no)

  :create invoice;


Activities are described between: and;, branches can be read as pseudo code and that way you combine the benefits of plain text with graphical representation.

PlantUML renders the code above to the following diagram: