Dans un environnement d'entreprise, les développeurs doivent-ils disposer de droits d'administrateur sur leur ordinateur? Pourquoi?
Environnement technologique:
- Windows 7
- Visual Studio 2008 et 2010
- serveur SQL
Dans un environnement d'entreprise, les développeurs doivent-ils disposer de droits d'administrateur sur leur ordinateur? Pourquoi?
Environnement technologique:
Réponses:
Devraient-ils? Cela dépend de la société. Personnellement, je pense que ça va tant qu'il y a des règles bien comprises.
En général, je dirais oui. Des fonctions telles que les débogueurs nécessitent des droits d’administration assez élevés, voire supérieurs, pour fonctionner correctement. Les développeurs doivent souvent installer des logiciels aléatoires, ce qui peut prendre des jours, voire des semaines, avant de s’installer sur des canaux. Pendant ce temps, le développeur est généralement en arrêt de travail, ne lui coûtant que de l’argent, en particulier si le développeur est un consultant.
La science et l’art sont en développement; ce n'est pas aussi simple que de "savoir" ce dont nous avons besoin. Si nous avions déjà la réponse, la moitié de notre travail serait discutable; trouver la bonne approche est souvent itératif et peut impliquer plusieurs outils de manière imprévisible. Demander à un intermédiaire d'installer chacun de ces éléments (souvent avec une latence élevée), puis de trouver (environ une heure) que, pour votre scénario, le "super outil supplémentaire" est nécessaire est ridicule.
Bien qu'une machine virtuelle soit idéale pour cela, il existe également de nombreux outils de développement qui ne peuvent pas s'exécuter (correctement, voire pas du tout) dans une machine virtuelle, car ils sont eux - mêmes une machine virtuelle - et je ne parle pas de choses comme la machine virtuelle; Je veux dire machine complète emus / vms, tels que les kits d'outils. La compatibilité s’améliore.
De plus, la plupart des outils de développement ont une très grande empreinte - beaucoup plus grande que les outils "normaux" (ce qui rend l'hébergement de machines virtuelles un peu plus pénible que prévu) et, souvent, la nature du débogueur de processus nécessite un accès élevé. Sans parler du fait qu'ils peuvent être intensifs GUI; essayer de fonctionner à plein temps sur une interface graphique de machine virtuelle est ... extrêmement douloureux.
La performance est un énorme sont ici; Pensez-vous que les utilisateurs pouvaient attendre 3 secondes après chaque pression sur une touche dans Word afin que leur clé soit enregistrée? Je ne plaisante pas - les outils de développement sur les machines virtuelles, etc. peuvent être aussi sournois; pour la plupart des objectifs de développement, vous avez besoin de réactivité. Interrompre le flux de la logique complexe du cerveau au clavier peut rendre presque impossible le travail. Et je déteste le dire, mais oui: le temps de développement coûte cher.
Dans un environnement Windows, et en particulier lors de l’utilisation de produits pour développeurs Microsoft, le développeur devra disposer de droits d’administrateur sur sa machine. Si vous leur refusez ces droits, leur capacité à faire leur travail sera restreinte, voire totalement empêchée.
En tant que développeur, je nous classe au niveau de privilège supérieur à l'utilisateur de base, mais inférieur à celui du ou des administrateurs système.
Il est parfois nécessaire d’installer une bibliothèque supplémentaire pour que l’application que je développe soit opérationnelle dans l’environnement de production. Cela dit, j’ai une règle stricte que je développe par: "Pour toute application nécessitant des bibliothèques tierces, la Les bibliothèques doivent être installées dans un environnement sandbox avant le déploiement en production et, dans certains cas, avant le développement de l'application. "
L'administrateur système avec lequel je travaille et j'accepte, et entre nous deux, nous allons activement appliquer cette règle et retarder tout déploiement d'application n'ayant pas passé les "contrôles de dépendance".
Pour répondre à votre question cependant, les développeurs doivent disposer d'un accès complet à leurs propres machines, mais ces machines doivent être isolées de l'environnement sur lequel l'application sera finalement déployée. Dans ce cas, même le déploiement de l'application doit être mis en sandbox jusqu'à ce que le déploiement soit jugé sûr dans l'environnement de production.
Disclaimer: Je suis un développeur.
Pour moi, cette question (et les réponses) semblent s'attaquer au problème en adoptant une approche erronée. En d'autres termes, le débat se concentre sur ce que les administrateurs souhaitent / ont besoin et ce que les développeurs souhaitent / ont besoin. Mais vous avez spécifié que nous évoluons dans un environnement d'entreprise, examinons-le ainsi.
Alors, imaginons que nous discutions devant le directeur de l'informatique ou des opérations, ou de quiconque contrôle notre budget , et posons ces questions.
Avec ces réponses à vos questions, vous pouvez prendre une décision éclairée plutôt que passionnée.
Pour votre environnement spécifique , certaines choses nécessitent des droits d’administrateur (voir Droits de l’utilisateur et Visual Studio ). Si ce n’est pas le cas, vous pouvez répondre aux questions 2 à 4.
En tant que consultant, j'ai vu les deux extrêmes de cette politique et bien que je veuille toujours avoir un accès administrateur à une machine, dans certains cas, cela n'avait aucun sens. Et je ne suis pas sûr de la cause ni de l’effet, mais sans exception, chaque endroit que j’ai vu faire du développement Windows et où les développeurs avaient un accès administrateur avait également BEAUCOUP une productivité plus élevée de chaque développeur que les endroits où ils étaient verrouillés.
Je pense que vous posez la mauvaise question, vous devriez demander:
Est-ce qu'un bon développeur travaille pour un employeur qui ne lui donne pas les droits d'administrateur sur son PC?
Ce dont une personne a «besoin» et ce à quoi il s'attend ne sont souvent pas la même chose. Après tout, vous n'avez pas besoin de permettre à un développeur de boire du café pendant les heures de travail, mais si vous ne le…
(Assurez-vous de bien préciser votre politique au stade de l'entretien, sinon vous risquez de faire accepter à des personnes le travail qui méprise alors votre entreprise en raison du manque de droits d'administrateur. Ne vous attendez pas à ce que les programmeurs pensent de manière logique à ce genre de choses! )
Cela dépend en fait davantage de qui vous demandez que de qui en a réellement besoin. Si vous demandez aux groupes informatiques et de gestion des risques de l'entreprise qu'ils vous racontent des histoires horribles (et qu'ils vous le donnent, ils exigent une chèvre sacrifiée dans un lien sacré de promesse qu'ils ne seront pas tenus responsables), les développeurs d'autre part, exige des droits d'administrateur principalement parce que le travail est stressant et suffisamment exigeant sans qu'il soit nécessaire d'obtenir la permission du service d'assistance pour procéder à une fuite. La triste situation est que maintenant, il est plus question de lutte de pouvoir et d’exercer le pouvoir que de besoins commerciaux et de productivité (par exemple, il s’agit de savoir qui fera sauter l’autre).
IMHO, le meilleur environnement de travail que j'ai vu à ce jour est celui où les deux groupes sont séparés. Les développeurs ont leur propre domaine dans la forêt (par lequel l'informatique contrôle ce que ce domaine et ses utilisateurs peuvent faire dans le reste de la société) et ils sont tous administrateurs locaux avec des gars expérimentés, MCSE agissant en tant qu'administrateurs de domaine locaux et disposant de leur propre environnement de test. et peuvent faire à peu près ce qu'ils veulent et ce dont ils ont besoin sur leur réseau local avec une seule stratégie informatique (aucun logiciel piraté). L’entreprise informatique n’est pas responsable et ne fournit pas de support aux développeurs et ne fait que respecter certaines règles générales (pas de facebook, porn ou similaire via un pare-feu, les développeurs ne permettent pas de jouer avec le réseau local de l’entreprise) et ils disposent tous de VPN basés sur RSA pour travailler à domicile ce qui les met directement dans leur LAN. Neat, n'est ce pas?
Je dirais que les droits administratifs sont importants pour le processus de développement. Étant donné la facilité relative d'utilisation d'une machine virtuelle dans un bac à sable, il n'y a aucune raison pour que vous ne puissiez pas les mettre dans une machine virtuelle et maintenir la sécurité.
Tout va mal et vous pouvez effacer et reconstruire en quelques minutes.
Absolument! Généralement, une grande partie du développement en cours peut se faire ou non dans un environnement virtuel. Les droits d’administrateur aident à surmonter un grand nombre de dérogations liées à la gestion des services, aux entrées de registre et à IIS localement. Par contre, cela dépend du degré de confiance vous accordez à vos développeurs.
En tant que développeur, il est frustrant de constater que quelque chose ne fonctionne pas car nous n'y avons pas accès.
Dépend. En tant que développeur, il convient de toujours utiliser le principe des moindres privilèges. Si vous travaillez en tant que contractant gouvernemental, vous pourriez être tenu contractuellement de ne pas pas avoir d'accès administrateur, par exemple.
En tant que développeur Java, je n’avais guère besoin de disposer de droits d’administrateur sur ma machine de façon continue . Cependant, il existe des cas légitimes où vous avez besoin d'un accès administrateur à la demande (par exemple, vous devez déplacer votre ordinateur portable dans des domaines physiquement séparés et modifier votre carte réseau en conséquence). C'était la seule fois où j'avais vraiment besoin accès administrateur permanent et permanent à ma machine.
Parfois, vous avez besoin d’un accès administrateur car le personnel informatique est en sous-effectif (ou est incompétent ou lourd de formalités administratives.) Mais si vous travaillez avec un service informatique compétent, il peut installer le matériel pour vous même à distance (ou en fournissant des programmes d’installation personnalisés "admin et installez le matériel pour vous en cliquant simplement dessus.)
Donc, la réponse (encore) est - cela dépend. Avez-vous un personnel informatique réactif qui peut installer des éléments à la demande (ou dans un délai raisonnable)? Les développeurs en ont-ils réellement besoin pour les tâches pour lesquelles ils sont payés ?
Si les développeurs en ont vraiment et légitimement besoin (comme dans "Je ne pourrai littéralement rien faire sans cela" ), par opposition à une commodité (comme dans "Je veux installer tout ce que je veux" ), et si le support informatique n'est pas suffisamment réactif (pour quelque raison que ce soit), alors oui, ils devraient avoir un accès administrateur à leurs machines.
Sinon, non. Rappelez-vous le principe du moindre privilège , les gens.
Il y a des développeurs et il y a des développeurs. Si un "développeur" est un gars JBoss Java à 40 $ / heure écrivant des règles pour un moteur de règles, alors bien sûr que non. Si un "développeur" est un responsable C / Assembly de 350 $ l'heure, si votre logiciel de montage vidéo s'exécute aussi rapidement que possible sur un processeur graphique, alors oui, bien sûr.
Pour les entreprises qui s’inquiètent pour la sécurité, elles seront contrôlées par un responsable de la sécurité qui tentera de faire appliquer une politique qui fonctionne avec leur modèle de développement et leurs systèmes. Dans un environnement Windows, la plupart des gens vous diront que vous devez disposer de droits d'administrateur sur l'hôte sur lequel ils développent pour pouvoir exécuter leurs tâches.
Ce n'est pas forcément vrai...
Vous pouvez créer une stratégie personnalisée et faire en sorte que tous les programmes et fonctions fonctionnent avec les utilisateurs du développement sur un système. Il vous suffira de vous familiariser avec les autorisations personnalisées sur les répertoires du programme / système avec des groupes ou des groupes personnalisés en fonction de la conception souhaitée.
La plupart des entreprises vont dire qu'il est très dangereux pour les développeurs de disposer de systèmes sur des réseaux ouverts, car les pirates informatiques pourraient en prendre le contrôle et commencer à compiler leurs propres outils.
Les développeurs devraient (idéalement) avoir deux identifiants de domaine.
Une qui a les droits d’administrateur local (pour le travail de développement) et une qui a les mêmes droits que tout le monde dans l’entreprise. Ils peuvent ensuite tester leur travail sur un ensemble d'autorisations représentatif.
Cela devrait alors réduire le risque d'ItWorksOnMyMachine-itis qui apparaît parfois .....
Je dois (apparemment) donner la voix dissidente et dire non seulement non, mais "diable non". Je n'ai aucun problème à donner des droits d'administrateur de devs sur une machine virtuelle en mode bac à sable qui n'a pas d'accès réseau. Zypher avait presque raison (correction en gras):
"1.Etre administrateur sur ma boîte est un privilège, PAS un droit." Ces systèmes sont des actifs de l'entreprise dont je suis ultimement responsable. Lorsque Joe Developer installe sa copie piratée de Microsoft Bob ("parce que j'en avais besoin "), ce n'est pas lui qui va devoir expliquer comment il n'a pas été trouvé avant l'audit. Les développeurs pensent régulièrement que les règles d'entreprise ne leur sont tout simplement pas applicables. En leur fournissant une machine virtuelle en bac à sable, ils peuvent suivre toutes les règles que tout le monde doit suivre (à présent, seul le service informatique peut copier des fichiers depuis et vers le système). Comme par magie, le système de requête est à nouveau utilisé par les développeurs, le ciel ne s'effondre plus lorsque Joe Developer modifie sa zone de développement - il en demande simplement une nouvelle (ou une restauration s'il lui est demandé de sauvegarder).
M. Denny a mentionné que les développeurs coûtaient de l'argent lorsqu'ils devaient attendre l'installation d'applications. A. bonjour ... mon temps est généralement tout aussi précieux que Joe Developer (généralement plus puisque je garde le crapware existant en cours d'exécution - et puis-je vraiment Il faut mentionner tout le temps passé à aider le développeur Joe à déboguer son dernier chef-d'œuvre), et à B. lorsque les devs dépassent les limites budgétaires parce qu’ils attendaient une application et essayaient de les blâmer pour cela, je dirais:
Votre manque de planification pour ce dont vous avez besoin pour écrire un logiciel n’est pas de ma responsabilité, nous avons un ensemble standard d’outils et si cette boîte à outils manque ce dont vous avez besoin, vous auriez dû recevoir vos demandes pour obtenir plus d’outils accélérés plutôt que de tenter de me faire sauter. grâce à des paniers pour l'obtenir pour vous parce que votre date limite est demain.
Ceci dit, si on bloque les ordinateurs de bureau des développeurs, on pourrait éliminer les développeurs de merde qui pensent qu'ils ont le droit de regarder leur collection de Baywatch et qui sont indignés d'apprendre qu'ils ne peuvent pas installer Babewatch Player pour les visualiser ( open source "), vous pourriez peut-être vous détendre. Mais pour chaque grand développeur qui «l'obtient», il y en aura 10 de plus que votre société va embaucher pour cette application verticale de 200 millions de dollars, et c'est à qui vous devez faire attention.
EDIT: Il est certainement tout à fait possible que les développeurs auxquels j'ai été exposé soient inhabituellement ennuyeux (seul le sondage portant sur la culture actuelle a déjà entendu parler du stackoverflow, pour donner un certain niveau de référence). Le point de vue par lequel je commence est le suivant: "Que devez-vous faire pour que la société paie pour vous?". Si vous avez besoin de droits d'administrateur, vous les obtenez, mais vous ne devriez pas commencer avec eux et si je peux vous donner une boîte qui, franchement, je ne me soucie pas de ce que vous faites avec ça et que ça marche, alors nous sommes tous les deux prêts à partir.