I am currently facing a situation where I have to wait for peer developer's publishing to finish to avoid concurrent publishing.
I think it will be a great idea to introduce something like a local environment/setup/space as we have for java application for each developer so that he/she do not have to wait for other developer's publishing to finish.
Once developer is sure of his changes working fine he can then rollout his/her changes to the main stream along with other developer's changes.
Please let me know if it make sense. :)