É uma boa prática geral administrar seus serviços com contas sem privilégios quando possível. Para processos que precisam de recursos somente de raiz (portas < 1024, acessando certos arquivos) o processo deve adquiri-los e imediatamente privilégios de descarte.
Algumas outras dicas. Da sua frase "executar o ... processo como o mesmo usuário ... que desenvolve o código", parece que os desenvolvedores estão escrevendo código nos hosts de produção. Você está usando algum tipo de sistema de controle de alterações de origem (por exemplo, git, svn)? Os desenvolvedores devem codificar em máquinas somente de desenvolvimento e se comprometer com um repositório compartilhado, a partir do qual você pode liberar construções estáveis. Implante código do repositório depois de ser testado para integração e, idealmente, empacote-o para instalação (DEB, RPM, EGG, etc). Isso reduzirá os erros que caem na produção, tornará as versões repetitivas, evitará a perda de código se um host falhar, e assim por diante.