Merits of having a shared development server [closed]

Solution 1:

To expound on my comment above, there should be absolutely no need for your devs to need root access in your dev environment, shared or otherwise. With a combination of well-thought-out file permissions supplemented by a handful of sudo rules, they should be able to do whatever is it they need to do.

Regarding a shared dev environment versus each developer having their own environment: I'm with your developers here. With each developer managing their own dev environment, you're ending up with umpteen completely different configs, software revisions, file permission structures, daemon versions, kernel versions, etc. That is a nightmare for bug squashing.

They recognize that they need a stable, well-managed development environment. They're absolutely right, so give it to them!

Solution 2:

Why not both - develop on their workstation AND test on the shared dev server?

If there is concerns about loss of data, you can always run a virtual machine on top of the dev server, do snapshots of the machine and have the developers update code on that VM. Worse case, you can always revert VM back to previous backup.

Solution 3:

In a similar situation we took the route of local development but we have an independent stack of our application running just for devs and ops (we call it integration) to deploy and run test against. The devs have root access so if needed they can do investigation and troubleshooting but they know the system is transient so at anytime it can be blown away (and I do that as a method of testing my deployment scripts).

Solution 4:

If I was in your shoes I'd look at building a VM that could be used on their dev systems that mirrors the staging server setup. It gives them what they need, without someone doing something silly. Plus if the staging server ever goes down for whatever reason, you don't' have all your developers twiddling their thumbs while your'e trying to get it back up....however rare that might be (not nearly as rare as you'd' think)