Building software is a tough process.
A lot of disciplines are involved to specify the requirements, to
define the software architecture, to manage the data, to test, to
integrate and to run the software and possibly to do a lot more
thinks. Different processes - from waterfall to agile - try to handle
these tasks in different ways and they produce different
documentation artifacts.