Every development project should have an architect. This person determines the way the software is put together, and specifies policies and standards for design and coding. For example:
- Organisation of code – layers and the interfaces between them, (e.g. function calls and exceptions)
- Directory structures of source code
- Organisation of common code – exception classes, utility routines, logging, etc.
The architect helps to manage the complexities of large development teams. Developers continually make their decisions about how their code is structured. If such a decision affects another developer, then that developer should be consulted. If the decision affect several other developers, the architect should be consulted as well.