Завжди, працюючи зі складними програмними системами, нам доводиться створювати численну технічну документацію проекту. У більшості випадків вона має однакову структуру: це спеціальні вимоги до різних підсистем, детальний опис архітектури, програмного коду, API, структури даних та алгоритмів, а також численні плани проекту, звіти тощо.