Here is the docker architecture

I'm not sure why the docker daemon is required. The client is adequate. The client connects to the daemon through a Unix socket. TCP can be used, but I've noticed that the client and daemon are frequently on the same system! So, why are there two distinct entities?
As previously stated, the client can communicate with the daemon over TCP. So, how do you prefer to work in a group? Is it possible to operate a single daemon for the entire team on a separate server, with each developer running their own client? Alternatively, each developer can run their own daemon process.