Development Environment Workstations

We are in the process of hiring new developer's, and our current strategy is to allow developer's to choose whatever computer and operating system they want. So far we have 1 guy using a mac, 1 guy on Vista, 1 guy on vista running Ubuntu through VMWare, and one guy on Ubuntu. Our QA hardware we deploy to is FreeBSD. I'd love to get people's opinion's/experiences with working in a mixed environment.

keith wrote:

We are in the process of hiring new developer's, and our current strategy is to allow developer's to choose whatever computer and operating system they want. So far we have 1 guy using a mac, 1 guy on Vista, 1 guy on vista running Ubuntu through VMWare, and one guy on Ubuntu. Our QA hardware we deploy to is FreeBSD. I'd love to get people's opinion's/experiences with working in a mixed environment.

Technologically that's heaven.

However, are you set up for pair programming? We use three keyboards, three monitors, and two CPUs at one pair station. This system depends on a coherent user interface, where we all know the same editor, and nobody should get used to sucky keymappings (such as End keys that don't go to the end of the line, or borrowing Caps Lock for Control...)

I think running to many flavors can cause trouble down the track as you expand, and developers demand different programs and applications. And the incompatibility of software between the 3 OS.

One good benefit to having different OS is that you can more options to do testing in browsers. Sadly, Its important to have access to XP somehow (Even if its a XP image through vmware) so that you can do UI testing in IE 6. There are ways around this by having browsers shots, but these don't expose some UI bugs.

If you do give developers options try and keep most on same flavors, like allowing only Ubuntu for linux, XP for windows and Mac well just OSX, This will at least give them some options however allows you some control.

Also if you server is FreeBSD that is ok, if you concerned about Development Environment issues, then I would suggest having a staging/ proofing server to allow tests to be conducted on similar servers to the production ones, with out having an effect on the live data.