Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My company is starting to feel the pains of its developers not being on the same page. ie some develop on windows, some on ubuntu, etc... and then code lives on CentOS and we start to get problems like "works on my machine?!" and so forth. we want/need to develop and deploy to replicable environments to cut down on launch day issues. I was curious if anyone has good practices how they handle this? we contemplated images and then giving everyone VM's to make sure they can test everything in isolation vs one big dev environment where 3 people are pushing changes and overwriting/breaking code others are working on. it seems like the VM approach might not be ideal - we have to make sure all hardware is capable of handling this. I know every company is different, but is there an ideal approach to this problem that anyone could recommend? or worst case scenario - how do you handle this? what have you tried and failed w/ and what have you tried and succeeded w/?

I think our current idea is to figure out how to spin up VM instances inside our network infrastructure and allow devs NFS to them for development. This would take pressure off possibly needing to upgrade any of their systems or dealing w/ incompatibility issues. (ie, someone is comfortable developing on windows, others in linux, even more in mac, etc...)

share|improve this question

closed as not constructive by Michael Hampton, Sirex, Scott Pack, mdpc, Ward Jan 8 '13 at 3:06

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

You may want to try posting this on stackoverflow. – paddy Jan 7 '13 at 20:46
Your problem isn't a technical one (well it is in the sense that you need a way to give everyone a dev environment to beat on -- your solution of VMs sounds good there), but rather a people-problem: Your people thing "It works on my machine" is an acceptable answer. Teach them that it is NOT -- it has to work in the production environment, which means they have to test it in an approved test environment... – voretaq7 Jan 7 '13 at 23:24

This is exactly why Vagrant was created:

Develop on the same platform as you deploy on, run the same versions of packages, and have everyone commit/pull from source control. Use a package/configuration management system (puppet or chef) and you're golden.

share|improve this answer

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