Small team of developers doing their work here and there. We have a team leader, and is sole responsible for uploading updated source files from the development server to the production server. So let's say, so if an updated files needs to be uploaded to the prod server, that concerned developer shall notify the team lead about it, and then the team lead will update the files to the prod server. So no developer has an access to the prod server except for the team lead. That's our current setup.

Now, what we want to do is to give developers a way for uploading their updated files to the server without the team lead intervening in the process. What do you think is the best way to go about this?

  • 1
    Have you researched to see if there are deployment tools available for your project (e.g., Capistrano for a ruby/rails deployment)? If nothing else, digging around their documentation should give you some good pointers on how to engineer your system Mar 16, 2012 at 4:30

4 Answers 4


It really depends on what problem you're trying to solve.

Most moderately sized software shops have a Dev Server, Live Server, and NLE (Near Live Environment, which should be an exact clone of live refreshed regularly).

What I'd recommend you do is have a dev server in place that all the developers have access to so they can test without hassling the team lead and an NLE which only the lead manages.

This should solve the problem of developer access for testing and allow you to properly manage your releases without breaking live.


Never give a facility to developer to upload files directly to production server.

If you do so, then you will lose the control of production server and everyone start uploading the files to production.

Best way: After a peer review only, one dedicated person should upload files to production server (no one else should upload other than this person).

  • I thought so too... But can we just treat this in its hypothetical sense without regard to security issues associated with it, how do you think can this be done the most right way? Thank you!
    – ultrajohn
    Mar 15, 2012 at 12:04
  • I strongly disagree with the only-one-person-can-commit-to-production methodology as it invites catastrophe. To use a common turn of phrase: if that one person goes under the bus, then what do you do? My office has a small development team, and we all have access to load-balanced production machines and it has never been the source of a problem.
    – msanford
    Mar 15, 2012 at 19:07
  • @msanford You can see this methodology as "one job role" and not as "one person". In my opinion it is always good if one person is clearly responsible for one thing. But yes, the knowledge should be spread among several persons. Mar 15, 2012 at 19:38

I would recommend you to not upload upload the files any more but instead use a code versioning system and do exports from there. This way you have full control of what happened when.

toomanyairmile mentioned as well that you go from the dev server first to a staging server and then to the live server. This is a very good recommendation too. What you should have as well is a written down checklist of things you are going to test before the next version is released. This way you can be sure that nothing major is breaking after an update. This way you have the role of the team leader as a written down process and the person can be exchanged.


Why not setup SVN in a development server let the developers all work in one or more branches then have the code merged to the trunk. Once the trunk has been updated use rsync to update your production files.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.