Development is the discipline that builds the software and sets up the infrastructure that runs it.

While code is written, compiled, debugged and checked into a version control repository by developers – or programmers as they were called in the past, other development tasks are often performed by people with very different role descriptions.

User interfaces (UI) are designed by UI developers or UX (user experience) designers/developers.

Infrastructure is typically handled by infrastructure architects, network technicians and system operators.

The software is often generated by DevOps architects who also manage the version control repository and the automated unit testing and deployment of the continuous builds generated when developers check in new code.

Most project members – and particularly developers – are rarely keen on documenting their work so I recommend that responsibility for documenting the design is placed in the architecture discipline.