Why the host is written first
The host decides what the module may do. Writing the module first is writing a module for a host that does not exist.
The one artefact that must be shared
The contract file. Both sides are written against it, and it is the file that drifts.