for project work
Specification document audience: Programmers, System architects, Maintainers, ..
Working. Communications specification is a part of working software (and hardware) system, so it have to represent operational subsystem model.
Complete. Specification have to be define everything to make communications to be interoperable. Note: implementation specific details do not belong to specification.
Exact. Definition have to be clearly understand.
Unambiguous. Specification may not specify same definition by multiple semantics.
Focused. Specification should concentrate only to its communication service modeling. Channels to other components (communication layers, databases, user interfaces, sensors, ..) have to be acknowledged by needed interface modeling, but theirs design or even implementation is not current specification business.
Consistent. All specifications have to be consistent with each other.
Minimal. Specifications should be only defined once and in other occurrences referred (if needed for readablity).
Referable. Specification works as a agreement between different multiple implementations. Implementation should be able to refer specific parts in specification pages (well keep sense here, and think about reader).