Sollten Entwickler in einer Unternehmensumgebung Administratorrechte auf ihrem Computer haben? Warum?
Technologisches Umfeld:
- Windows 7
- Visual Studio 2008 und 2010
- SQL Server
Sollten Entwickler in einer Unternehmensumgebung Administratorrechte auf ihrem Computer haben? Warum?
Technologisches Umfeld:
Antworten:
Sollten Sie? Das liegt an der Firma. Persönlich denke ich, dass es in Ordnung ist , solange es einige verstandene Regeln gibt.
Normalerweise würde ich ja sagen. Dinge wie Debugger erfordern ziemlich hohe Administratorrechte, um richtig zu funktionieren. Entwickler müssen häufig zufällige Software installieren, deren Installation beim Durchlaufen von Kanälen Tage oder Wochen in Anspruch nehmen kann. Während dieser Zeit ist der Entwickler in der Regel arbeitsunfähig und kostet das Unternehmen nur noch Geld, insbesondere wenn der Entwickler ein Berater ist.
Es gibt sowohl Wissenschaft als auch Kunst in der Entwicklung; Es ist nicht so einfach, zu "wissen", was wir brauchen. Wenn wir die Antwort schon hätten, wäre unsere halbe Arbeit umstritten; Das Finden des richtigen Ansatzes ist häufig iterativ und kann auf unvorhersehbare Weise mehrere Tools umfassen. Es ist unsinnig, einen Vermittler zu beauftragen, um diese zu installieren (oft mit hoher Latenz), und nur (ungefähr eine Stunde später) festzustellen, dass für Ihr Szenario das "Super-Uber-Tool-Addon" benötigt wird.
Eine VM ist dafür zwar ideal, aber es gibt auch viele Entwicklungstools, die in einer VM nicht (richtig oder gar nicht) ausgeführt werden können, da sie selbst eine VM sind - und ich meine damit keine Dinge wie JVM. Ich meine volle Maschine Emus / VMS, wie Geräte-Toolkits. Die Kompatibilität wird verbessert.
Darüber hinaus haben die meisten Entwicklungstools eine sehr große Stellfläche - viel größer als "normale" Tools (was das Hosten von VMs ein wenig schmerzhafter macht als Sie vielleicht erwarten), und häufig ist als Prozess-Debugger ein erhöhter Zugriff erforderlich. Ganz zu schweigen von der Tatsache, dass sie möglicherweise GUI-intensiv sind. Der Versuch, Vollzeit auf einer VM-Benutzeroberfläche zu laufen, ist äußerst schmerzhaft.
Leistung ist eine riesige sind hier; Würden Sie denken, dass es in Ordnung ist, wenn Benutzer nach jedem Tastendruck in Word drei Sekunden warten, bis sich ihre Taste registriert hat? Ich mache keine Witze - Entwicklungstools auf VMs usw. können so nervig sein; Für die meisten Entwicklungszwecke benötigen Sie Reaktionsfähigkeit. Die Unterbrechung des Flusses komplexer Logik vom Gehirn zur Tastatur kann es so gut wie unmöglich machen, die Aufgabe zu erledigen. Und ich hasse es zu sagen, aber ja: Entwicklungszeit ist teuer.
In einer Windows-Umgebung und insbesondere bei Verwendung von Microsoft-Entwicklerprodukten benötigt der Entwickler Administratorrechte auf seinem Computer. Wenn Sie ihnen diese Rechte verweigern, wird ihre Fähigkeit, ihre Arbeit zu tun, eingeschränkt, wenn nicht ganz verhindert.
Als Entwickler stufe ich uns eine Berechtigungsstufe über dem Basisbenutzer, aber unter den Systemadministratoren ein.
Es kann gelegentlich vorkommen, dass eine zusätzliche Bibliothek installiert werden muss, damit die Anwendung, die ich entwickle, in der Produktionsumgebung funktioniert. Dabei habe ich folgende strenge Regeln: "Für jede Anwendung, für die Bibliotheken von Drittanbietern erforderlich sind, muss die Bibliotheken sollten vor der Bereitstellung in der Produktion und in einigen Fällen vor der Anwendungsentwicklung in einer Sandbox-Umgebung installiert werden. "
Der Sysadmin, mit dem ich zusammenarbeite, und ich bin damit einverstanden, und zwischen uns beiden werden wir diese Regel aktiv durchsetzen und jede Anwendungsbereitstellung verzögern, die die "Abhängigkeitsprüfungen" nicht bestanden hat.
Um Ihre Frage zu beantworten, sollten Entwickler zwar uneingeschränkten Zugriff auf ihre eigenen Computer erhalten, diese Computer sollten jedoch von der Umgebung isoliert sein, in der die Anwendung letztendlich bereitgestellt wird. In diesem Fall sollte sogar die Anwendungsbereitstellung in einer Sandbox gespeichert werden, bis sie als sicher für die Bereitstellung in der Produktionsumgebung erachtet wird.
Haftungsausschluss: Ich bin ein Entwickler.
Für mich scheinen diese Frage (und die Antworten) das Problem vom falschen Ansatz aus anzugreifen - das heißt, die Debatte konzentriert sich darauf, was Administratoren wollen / brauchen und was Entwickler wollen / brauchen. Sie haben jedoch angegeben, dass wir uns in einem Unternehmensumfeld befinden. Sehen wir uns das also so an.
Stellen wir uns vor, wir diskutieren dies vor dem IT- oder Betriebsleiter oder vor demjenigen, der unser Budget kontrolliert , und stellen diese Fragen.
Wenn Sie diese Fragen beantwortet haben, können Sie eine fundierte Entscheidung treffen, anstatt eine leidenschaftliche.
Für Ihre spezielle Umgebung gibt es einige Dinge, für die Administratorrechte erforderlich sind (siehe Benutzerrechte und Visual Studio ). Wenn sie diese Dinge nicht tun, können Sie die Fragen 2 bis 4 beantworten.
Als Berater habe ich beide Extreme dieser Richtlinie gesehen, und obwohl ich immer Administratorzugriff auf einen Computer haben möchte, ergab dies in einigen Fällen keinen Sinn. Und ich bin nicht sicher, was Ursache und was Wirkung ist, aber ohne Ausnahme hatte jeder Ort, an dem ich Windows-Entwicklung durchgeführt habe und auf den die Entwickler Administratorzugriff hatten, von jedem Entwickler eine VIEL höhere Produktivität als Orte, an denen sie gesperrt waren.
Ich denke, dass Sie die falsche Frage stellen, sollten Sie fragen:
Arbeitet ein guter Entwickler für einen Arbeitgeber, der ihm keine Administratorrechte auf seinem PC gewährt?
Was jemand „braucht“ und was er erwartet, ist oft nicht dasselbe, schließlich muss man nicht zulassen, dass ein Entwickler in den Arbeitsstunden Kaffee trinkt, aber wenn Sie es nicht tun ...
(Stellen Sie sicher, dass Sie Ihre Richtlinien in der Phase des Interviews klarstellen, da Sie anderenfalls dazu veranlassen können, dass Personen den Job annehmen, der Ihr Unternehmen aufgrund fehlender Administratorrechte verachtet. Erwarten Sie nicht, dass Programmierer über solche Dinge logisch nachdenken! )
Es hängt eigentlich mehr davon ab, wen man fragt, wer es tatsächlich braucht. Wenn Sie Unternehmens-IT- und Risikomanagement-Gruppen fragen, werden sie Sie mit Horrorgeschichten überhäufen (und wenn sie es Ihnen geben sollen, fordern sie eine Ziege, die in einem heiligen Versprechen geopfert wird, dass sie nicht verantwortlich gemacht werden), die Entwickler Auf der anderen Seite werden Administratorrechte verlangt, vor allem, weil der Job stressig und anstrengend genug ist, ohne die Erlaubnis des Helpdesks einzuholen, um ein Leck zu nehmen. Der traurige Zustand ist, dass es jetzt mehr um Machtkampf und Machtausübung geht als um geschäftliche und produktive Bedürfnisse (z. B. darum, wer den anderen zum Durchstarten bringt).
Meiner Meinung nach ist die beste Arbeitsumgebung, die ich bis heute gesehen habe, die Trennung der beiden Gruppen. Entwickler haben eine eigene Domäne in der Gesamtstruktur (wobei die IT steuert, was diese Domäne und ihre Benutzer im Rest des Unternehmens tun können). Sie sind alle lokale Administratoren, und erfahrene Mitarbeiter mit MCSE fungieren als Administratoren für lokale Domänen. Sie haben ihre eigene Testumgebung und können mit einer einzigen IT-Richtlinie (keine Raubkopien) so ziemlich alles tun, was sie in ihrem lokalen LAN wollen und brauchen. Die Unternehmens-IT ist nicht verantwortlich und leistet keinen Support für Entwickler und setzt nur einige Unternehmensregeln auf hoher Ebene durch (kein Facebook, Porno oder ähnliches durch Firewall, Entwickler dürfen nicht mit dem Unternehmens-LAN in Konflikt geraten), und sie verfügen alle über RSA-basierte VPNs, um von zu Hause aus zu arbeiten Damit befinden sie sich direkt in ihrem LAN. Ordentlich, nicht wahr?
Ich würde sagen, dass administrative Rechte für den Entwicklungsprozess wichtig sind. Angesichts der relativ einfachen Verwendung einer VM für eine Sandbox gibt es keinen Grund, warum Sie sie nicht in eine VM einfügen und die Sicherheit gewährleisten können.
Alles geht schief und Sie können in wenigen Minuten wischen und wieder aufbauen.
Bestimmt! Normalerweise kann ein Großteil der Entwicklung in einer virtuellen Umgebung stattfinden oder auch nicht. Mithilfe von Administratorrechten können viele Überschreibungen der Dienstverarbeitung, Registrierungseinträge und IIS lokal überwunden werden. Auf der anderen Seite kommt es darauf an, wie viel Vertrauen Sie Ihren Entwicklern entgegenbringen.
Als Entwickler ist es frustrierend, wenn etwas nicht funktioniert, weil wir keinen Zugriff haben.
Hängt davon ab. Als Entwickler sollte man immer nach dem Prinzip der geringsten Privilegien arbeiten. Wenn Sie sich als Regierung Auftragnehmer arbeiten, werden Sie möglicherweise vertraglich verpflichtet , nicht Admin - Zugang zu haben, zum Beispiel.
Als Java - Entwickler, hatte ich kaum ein Bedürfnis Admin - Rechte auf meinem Rechner zu haben , auf kontinuierlicher Basis . Es gibt jedoch legitime Fälle, in denen Sie einen Administratorzugriff auf Abruf benötigen (z. B. müssen Sie Ihren Laptop über physisch getrennte Domänen verschieben und Ihre Netzwerkkarte entsprechend ändern.) Dies war das einzige Mal, das ich wirklich brauchte permanenter, laufender Administratorzugriff auf meinen Computer.
Manchmal benötigen Sie Administratorzugriff, weil die IT-Abteilung unterbesetzt (oder inkompetent oder unbürokratisch) ist. Wenn Sie jedoch mit einer kompetenten IT-Abteilung zusammenarbeiten, kann diese das Personal auch remote für Sie installieren (oder benutzerdefinierte Installationsprogramme bereitstellen, die "als" ausgeführt werden "admin und installiere das Zeug für dich, indem du es einfach anklickst.)
Also die Antwort ist (wieder) - es kommt darauf an. Haben Sie ein ansprechendes IT-Personal, das die Dinge auf Anfrage (oder in angemessener Zeit) installieren kann? Sie müssen Entwickler es tatsächlich für die Aufgaben , für die sie bezahlt werden ?
Wenn die Entwickler es wirklich und legitim benötigen (wie in "Ich werde buchstäblich NICHT in der Lage sein, etwas ohne es zu tun" ), im Gegensatz zu einer Bequemlichkeit (wie in "Ich möchte installieren, was ich will" ) und wenn IT-Support ist nicht ausreichend ansprechbar (aus welchen Gründen auch immer), dann sollten sie Administratorzugriff auf ihre Maschinen haben.
Ansonsten nein. Denken Sie an das Prinzip des geringsten Privilegs , Leute.
Es gibt Entwickler und es gibt Entwickler. Wenn ein "Entwickler" ein JBoss-Java-Entwickler ist, der Regeln für eine Regel-Engine schreibt, dann natürlich nicht. Wenn ein "Entwickler" ein C / Assembly-Typ ist, der 350 US-Dollar pro Stunde dafür bezahlt, dass Ihre Videobearbeitungssoftware auf einer GPU so schnell wie möglich ausgeführt wird, dann natürlich.
Unternehmen, die sich Sorgen um die Sicherheit machen, werden von Sicherheitspersonen diktiert und versucht, eine Richtlinie durchzusetzen, die mit ihrem Entwicklungsmodell und ihren Systemen kompatibel ist. In einer Windows-Umgebung werden die meisten Benutzer Ihnen mitteilen, dass Sie Administratorrechte auf dem Host haben müssen, auf dem sie entwickeln, um ihre Aufgaben ausführen zu können.
Das ist nicht unbedingt wahr ...
Sie können eine benutzerdefinierte Richtlinie erstellen und alle Programme und Funktionen mit Entwicklungsbenutzern auf einem System zusammenarbeiten lassen. Sie müssen sich nur mit benutzerdefinierten Berechtigungen für Programm- / Systemverzeichnisse mit Gruppen oder benutzerdefinierten Gruppen, je nach gewünschtem Design, an die Arbeit machen.
Die meisten Unternehmen werden sagen, dass es für Entwickler sehr gefährlich ist, Systeme in offenen Netzwerken zu haben, da Hacker die Kontrolle übernehmen und ihre eigenen Tools kompilieren könnten. Meiner Meinung nach ist es das Risiko wert, diese Aufgabe zu erledigen.
Entwickler sollten (idealerweise) zwei Domain-Logins haben.
Eines mit lokalen Administratorrechten (für Entwicklungsarbeiten) und eines mit denselben Rechten wie alle anderen im Unternehmen. Anschließend können sie ihre Arbeit an einem repräsentativen Satz von Berechtigungen testen.
Dies sollte dann die Wahrscheinlichkeit von ItWorksOnMyMachine-it verringern, die gelegentlich auftritt .....
Ich muss (anscheinend) die Gegenstimme liefern und nicht nur nein sagen, sondern "zum Teufel nein". Ich habe kein Problem damit, den Entwicklern Administratorrechte für eine VM mit Sandbox zu erteilen, die keinen Netzwerkzugriff hat. Zypher hatte es fast richtig (Korrektur fett gedruckt):
"1. Admin auf meiner Box zu sein ist ein Privileg, KEIN Recht." Diese Systeme sind Unternehmensressourcen, für die ich letztendlich verantwortlich bin. Wenn Joe Developer seine Raubkopie von Microsoft Bob installiert ("weil ich es brauchte "), muss er nicht erklären, warum es vor dem Audit nicht gefunden wurde. Entwickler denken routinemäßig, dass die Unternehmensregeln einfach nicht auf sie zutreffen. Indem Sie ihnen eine VM in einer Sandbox geben, können sie alle Regeln einhalten, die alle anderen befolgen müssen (da jetzt nur die IT-Abteilung Dateien zum und vom System kopieren kann). Magischerweise wird das Anforderungssystem von den Entwicklern wieder verwendet, der Himmel fällt nicht mehr, wenn Joe Developer seine Entwicklungsbox kaputt macht - er fragt nur nach einer neuen (oder nach einer Wiederherstellung, wenn er um Backups gebeten wird)
Mr. Denny erwähnte, dass Entwickler Geld kosten, wenn sie auf die Installation von Apps warten müssen, A. hallo ... meine Zeit ist normalerweise genauso wertvoll wie die von Joe Developer (in der Regel umso mehr, als ich die vorhandene Crapware am Laufen halte - und das tue ich auch wirklich Ich muss die ganze Zeit erwähnen, die ich damit verbracht habe, Joe beim Debuggen seines letzten Meisterwerks zu helfen), und B., wenn Entwickler auf eine Anwendung warten und versuchen, die IT dafür verantwortlich zu machen. Ich würde sagen:
Ihre mangelnde Planung für das, was Sie zum Schreiben von Software benötigen, liegt nicht in meiner Verantwortung. Wir verfügen über einen Standardsatz an Tools. Wenn diese Toolbox nicht die von Ihnen benötigten Tools enthält, sollten Sie Ihre Anforderungen haben, mehr Tools zu beschleunigen, anstatt zu versuchen, mich zum Springen zu bringen durch Reifen, um es für Sie zu bekommen, weil Ihre Frist morgen ist.
Abgesehen davon stinkt es, die Desktops der Entwickler zu sperren, wenn Sie die beschissenen Entwickler aussortieren könnten, die glauben, dass sie berechtigt sind, ihre Baywatch-Sammlung zu sehen, und empört sind, zu erfahren, dass sie den Babewatch-Player nicht installieren können, um sie anzuzeigen ("aber es ist open source ") können Sie eventuell lockern. Aber für jeden großartigen Entwickler, der es "versteht", gibt es 10 weitere, die Ihr Unternehmen für diese 200-Millionen-Dollar-Vertikalanwendung einstellen wird, und auf diese müssen Sie achten.
BEARBEITEN: Es ist mit Sicherheit gut möglich, dass die Entwickler, denen ich ausgesetzt war, ungewöhnlich langweilig sind (beim Abfragen der aktuellen Ernte hat nur 1 von einem Stapelüberlauf gehört, um ein gewisses Maß an Benchmark zu geben). Der Ausgangspunkt, mit dem ich beginne, ist "Was müssen Sie tun, wofür das Unternehmen für Sie bezahlt?". Wenn du Administratorrechte brauchst , bekommst du sie, aber du solltest nicht mit ihnen anfangen und wenn ich dir eine Box geben kann, die mir ehrlich gesagt egal ist, was du damit machst und die funktioniert, dann können wir beide loslegen.