Documentation:
- Document each function with explanation of what it does functionally (purpose of the function), required input (parameters), and what is outputted
- Document inline for complex lines of code (if the code is hard to read, or if complex steps are needed)
- Flow diagram in a diagraming software which shows logical work flow and data flow
- Higher level documentation that explains technical details, strategy, and interdependencies