3 ms·
The idea of "let the developer pick his own rig" had been mentioned by a lot of people - it's a fair point and has me reconsidering. My two thoughts are: Soft
by dotBen 17y ago
The idea of "let the developer pick his own rig" had been mentioned by a lot of people - it's a fair point and has me reconsidering.
My two thoughts are:
Software
Granted, the most important software is probably the IDE and those tend to be cross-OS (you can get eclipse or VIM to run on any OS) but you get issues on other software like Word. Suddenly that 5-seat license of Office for Mac doesn't accommodate my windows 7 developer so now I have to buy more licenses for him cos he uses Windows. And my Linux developer can't open the document in OpenOffice because it's using change tracking that his version doesn't support, etc.
We also can't use stuff like SubEtherEdit or Coda for join-development,
2) Scaling a dev team's needs - if we're designing for scale then we might have 10 developers by the end of 2010. It becomes a nightmare when half of your dev team is on mac, thee on windows, one on debian/ubuntu, one on fedora, etc.
But maybe these are not good enough reasons...
- dazzawazza 17y agoYou need to so a simple calculation. Is the increased productivity/good will you will get by allowing developers to pick worth more then enforcing a heterogeneous environment and loosing some productivity. There are nearly always ways to work around compatibility differences. Sure you need word to talk to banks/accountants but most developers will be more then happy to work within a wiki. They have no need for Office (although sometimes Excel is worth having as a developer but open office will suffice for that) The cost of finding these alternative routes is minimal especially if you find good developers who will no doubt have experience in this sort of thing. In fact you might create a more nimble work space if developers are used to accommodating others and are more open to change. Good luck and be sure to let us all know how it goes :)
- etherael 17y ago1) Standardising on office software tools that are essential to the work of the dev team is in my humble opinion, a terrible idea. Yes, this means the microsoft stack, it tends to make people jump through hoops they're not fond of jumping through and in all instances I can think of it's actually better to be doing it some other way. 2) Standardising on anything that requires Mac OS means that you're pretty much stuck with people that are happy with Mac OS, and while admittedly that is not a small number of capable devs, others really hate it, and with very good reason. 3) Virtualisation can offset "essential" items in the standard operating environment, as long as they can run on platforms that can actually be virtualised, which is my Mac OS is such anathema here. 4) Having virtualised environments that are self contained working images of everything required to "be productive" takes the guess work out of "Does employee X have everything necessary" and drastically alleviates any crippling hardware issues, if all it takes to keep going is a virtualisation image and a new machine, disaster recovery becomes very trivial. 5) If you're really insistent on the whole "having everyone at the office" idea, you could even try trading out virtualisation for remote access to various environments. Once again, this is an Everything But Mac OS solution as OS X remote access is terribly bad compared to Windows or Linux based solutions (RDP / NX vs VNC) 6) That said, I think tying your team to their desks is a good way to annoy some people, long term if you decouple your team from the requirement to remain physically present you are a much more attractive opportunity than otherwise. Go distributed whenever possible, this means dev environments that have full deployments of whatever is necessary to work 100% offline. Git over subversion, make sure they have copies of databases that are required to actually run the code they're writing, etc etc etc. Long term goal should be that they can work from absolutely anywhere any time regardless of network access.