Frage Sollte Dev Admin auf ihrem Computer sein? [geschlossen]


Sollten Entwickler in einer Unternehmensumgebung Administratorrechte auf ihrem Computer haben? Warum?

Technologische Umgebung:

  • Windows 7
  • Visual Studio 2008 und 2010
  • SQL Server

33
2018-02-07 23:19


Ursprung


Mögliche Duplikate: Sperrt eine Entwicklermaschine mehr Aufwand als es wert ist? - Zoredache
Siehe auch: stackoverflow.com/questions/701214/... - Zoredache
Siehe auch: Programmierer.stackexchange.com/questions/4596/... - random65537
Ich stimme zu, dieses wieder zu öffnen, denn trotz der etwas subjektiven Natur der Frage ist dies ein fast jeder Windows-Administrator (ich kann nicht auf anderen Plattformen kommentieren) wird während seiner / ihrer Karriere konfrontiert werden. Die bisher veröffentlichten Antworten liefern Informationen, von denen ich glaube, dass sie anderen helfen werden, wenn sie mit diesem Problem konfrontiert werden. - John Gardeniers
Wenn ich abstimmen könnte, würde ich das wieder tun. - jmort253


Antworten:


Sollten Sie? Das liegt an der Firma. Persönlich denke ich, dass es in Ordnung ist solange es einige verstandene Regeln gibt.

  1. Admin auf deiner Box zu sein ist ein Privileg NICHT ein Recht.
    1. Fangen Viren bei mehreren Gelegenheiten wird die richtige widerrufen
    2. Deaktivieren von Corporate Agents wird die richtige widerrufen - AV / Inventar / Software-Bereitstellung / etc
    3. Grundsätzlich, wenn Sie etwas tun, riskiert das Netzwerk den richtigen Widerruf
  2. Alle von Ihnen installierten Tools dürfen nicht von Ihrem Projekt abhängig gemacht werden, ohne sie in die offiziell genehmigte Liste zu übernehmen. Frag schön, komm nicht am Tag der Bereitstellung zum Absturz und fordere, dass $ random_library auf allen Servern ohne Test installiert wird
  3. Für alles außerhalb von normalen Anwendungen, die überall installiert sind, wird der Support der beste Weg sein. Helpdesk und / oder Systemadministratoren werden nicht 5 Stunden damit verbringen, zu debuggen, warum Sie DLL-Konflikte haben.

52
2018-02-07 23:28



Gute Liste. Würde auch hinzufügen, dass, wenn das Produkt letztendlich von Benutzern ohne Administratorrechte ausgeführt wird, müssen Sie entsprechend testen (echte Usability-Tests). Zu viele Entwickler testen den armen Mann, wo sie auf ihrer Dev-Maschine testen, auf der sie die Rechte haben. Das Produkt funktioniert gut und sie geben ihm einen Stempel der Zustimmung, nur um zu erfahren, dass es in einer nicht privilegierten Umgebung erstickt. - Shawn Anderson
@Shawn, es gibt einen Grund, warum Sie sowohl Tester als auch Entwickler brauchen. - Ian Ringrose
Dies ist eine typische Antwort eines Netzwerkadministrators, die nicht versteht, warum Entwickler Administratorrechte benötigen. Dies sollte von einer Person auf Führungsebene entschieden werden, die in der Vergangenheit Manager war oder war. Andernfalls halten Sie die Computer frei von Viren und Office-frei von Entwicklern. - Muhammad Hasan Khan
@Hasan und dies ist eine typische Antwort des Entwicklers, der sich nie mit einem verseuchten Netzwerk herumschlagen musste, das einen DS3 mit Datenverkehr durchtränkte, der das gesamte Büro abnahm. Ich bitte Sie nicht, hier etwas zu tun. - Zypher
In einem Entwicklungshaus sind Sie wegen der Software, die das Entwicklungsteam entwickelt, im Geschäft. Ich habe in mehreren Unternehmen gearbeitet, in denen die Maschinen zu einem Grad gesperrt waren, der den Job unmöglich machte, und es fiel uns schwer, Leute davon zu überzeugen, dass wir Administratorrechte brauchten, um die Entwicklungstools auszuführen. Oder wo der Internetzugang unterbrochen wurde, sodass wir nicht einmal die Online-Dokumentation lesen konnten. Oder ein Antiviren-Produkt, das jeden Datensatz in der Datenbank scannt und so die Leistung so stark beeinträchtigt, dass es für uns Entwickler unmöglich ist, die Software richtig laufen zu lassen. - Matt


Normalerweise würde ich ja sagen. Dinge wie Debugger erfordern ziemlich hohe, wenn nicht Admin-Rechte, um richtig zu arbeiten. Entwickler müssen oft zufällige Software installieren, die Tage oder Wochen benötigt, um beim Durchlaufen der Kanäle installiert zu werden. Während dieser Zeit wird der Entwickler in der Regel die Arbeit gestoppt, die das Unternehmen nur Geld kostet, besonders wenn der Entwickler ein Berater ist.


34
2018-02-07 23:24



+1 - Entwickler sind (normalerweise) ziemlich intelligente Leute und halten ihre Maschinen sauber - Mark Henderson♦
Sag das nicht. :) - mrdenny
@ Mark, ich habe noch Beweise zu sehen, um diese Behauptung zu unterstützen. - John Gardeniers
@ Mark Henderson, Sie können das Glück haben, tatsächlich mit einer guten Gruppe von Menschen zu arbeiten. Eine wenn die Websites, die ich täglich lese gibt mir den Eindruck, dass nicht alle Entwickler gleich sind. - Zoredache
Ich glaube, es gibt ein altes klingonisches Sprichwort, das besagt: "Vorsicht, Programmierer tragen Schraubendreher." - Bart Silverstrim


Es gibt sowohl Wissenschaft als auch Kunst in der Entwicklung; Es ist nicht so einfach wie zu wissen, was wir brauchen. Wenn wir schon die Antwort hätten, wäre die halbe Arbeit erledigt; Das Finden des richtigen Ansatzes ist oft iterativ und kann mehrere Tools auf unvorhersehbare Weise beinhalten. Das Erfordernis eines Vermittlers, um jeden von diesen zu installieren (oft mit hoher Latenz), nur um (ungefähr eine Stunde in) zu finden, dass für Ihr Szenario das "Super-Uber Tool-Addon" benötigt wird, ist albern.

Während eine VM dafür ideal ist, gibt es auch viele Entwicklungswerkzeuge kann nicht laufen (richtig oder überhaupt) in einer VM, weil sie sich sind eine VM - und ich meine nicht Dinge wie JVM; Ich meine volle Maschinenemus / vms, wie Geräte-Toolkits. Die Kompatibilität verbessert sich.

Außerdem haben die meisten Entwicklungstools eine sehr große Grundfläche - viel größer als "normale" Tools (was VM-Hosting ein wenig schmerzhafter macht, als Sie vielleicht erwarten) und oft als Prozess-Debugger einen erhöhten Zugriff erfordern. Ganz zu schweigen von der Tatsache, dass sie GUI-intensiv sein können; Der Versuch, Vollzeit auf einer VM-GUI zu laufen, ist ... äußerst schmerzhaft.

Leistung ist a enorm sind hier; Würden Sie meinen, dass es in Ordnung war, dass die Benutzer nach jedem Tastendruck in Word 3 Sekunden lang auf die Registrierung ihres Schlüssels warten mussten? Ich mache keine Witze - Entwicklungstools auf VMs etc kann sein dieser sucky; für die meisten Entwicklungszwecke brauchen Empfänglichkeit. Wenn man den Fluss komplexer Logik vom Gehirn zur Tastatur unterbricht, kann es ziemlich unmöglich sein, die Arbeit zu erledigen. Und ich hasse es zu sagen, aber ja: Entwicklungszeit ist teuer.


22
2018-02-08 08:54





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 verrichten, eingeschränkt, wenn nicht sogar ganz verhindert.


18
2018-02-07 23:31



Könnte sein. Sie sollten jedoch ihren Code in einer nicht privilegierten Umgebung testen müssen, wenn sie ein Produkt für den Benutzerverbrauch herstellen. - Bart Silverstrim
@Bart, da stimme ich völlig zu, aber die Entwickler sollten ihre Tests ohnehin auf einer separaten Maschine durchführen, da die Entwicklungswerkzeuge eine völlig andere Umgebung als die eines "normalen" Computers schaffen. - John Gardeniers
@BartSilverstrim, das nicht immer folgt. Nur weil der Benutzerteil der Anwendung als normaler Benutzer ausgeführt wird, bedeutet dies nicht, dass alle Komponenten dies tun (z. B. einen Dienst-Client in Betracht ziehen, der Server wird wahrscheinlich höhere Privilegien benötigen). Und dann überlege dir das Installationsprogramm ... - Richard
@Richard, das ist auch wahr, aber ich glaube, Bart hat gesagt, dass die Tests in einer Umgebung durchgeführt werden müssen, die so nah wie möglich an dem ist, was der Kunde verwenden wird. - John Gardeniers
Die richtige Antwort auf ein Softwareproblem, das sich nicht auf Systemaufgaben bezieht, sollte fast nie "als Administrator ausgeführt werden". - Bart Silverstrim


Da ich ein Entwickler bin, rangiere ich eine Stufe von Privilegien über dem Basisbenutzer, aber unter dem Systemadministrator (den Systemadministratoren).

Ich brauche gelegentlich eine zusätzliche Bibliothek, die installiert wird, um die Anwendung, die ich entwickle, in der Produktionsumgebung zu entwickeln. Ich habe eine strenge Regel, die ich entwickle: "Für jede Anwendung, die Bibliotheken von Drittanbietern benötigt Bibliotheken sollten vor der Produktionsbereitstellung und in einigen Fällen vor der Anwendungsentwicklung in einer Sandbox-Umgebung installiert werden. "

Der Systemadministrator, mit dem ich arbeite, und ich stimme dem zu, 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, ja, Entwickler sollten vollen Zugriff auf ihre eigenen Maschinen erhalten, aber diese Maschinen sollten von der Umgebung isoliert sein, in der die Anwendung letztendlich implementiert wird. In diesem Fall sollte sogar die Anwendungsbereitstellung in einem Sandbox-Modus ausgeführt werden, bis die Bereitstellung in der Produktionsumgebung als sicher gilt.


9
2018-02-08 05:39





Haftungsausschluss: Ich bin Entwickler.

Diese Frage (und die Antworten) scheinen mir das Problem von der falschen Seite aus anzugehen - das heißt, die Debatte konzentriert sich darauf, was Admins wollen / brauchen, was die Entwickler wollen / brauchen. Aber Sie haben angegeben, dass wir uns in einer Unternehmensumgebung befinden, also sehen wir es uns so an.

Stellen wir uns also vor, dass wir dies vor dem IT-Leiter oder dem Leiter der IT-Abteilung diskutieren, oder von wem auch immer Budgetund stelle diese Fragen.

  1. Was ist das Mindestprivileg, das erforderlich ist, um Abteilungsfunktionen auszuführen? Dies ist unsere Grundlinie.
  2. Was sind die Risiken, ihnen mehr Zugang zu gewähren? (tatsächliche Risiken, nicht nur Best / Worst-Case-Szenarien)
  3. Wie hoch sind die tatsächlich zu erwartenden Kosten, um ihnen mehr Zugang zu gewähren? (Support-Kosten, Behebung unbeabsichtigter Änderungen durch unerfahrene Administratoren, etc.)
  4. Was sind die wahren Kosten von nicht ihnen mehr Zugang gewähren? (Produktivitätsverlust, IT-Support für tägliche Aufgaben, Umsatz von erfahrenen Mitarbeitern durch Moral etc.)

Mit diesen beantworteten Fragen können Sie eine informierte Entscheidung statt einer leidenschaftlichen treffen.

Für Ihre spezifische Umgebung, es gibt einige Dinge, die Administratorrechte erfordern (siehe Benutzerrechte und Visual Studio) - Wenn sie diese Dinge nicht tun, dann können Sie die Fragen 2 - 4 beantworten.

Als Berater habe ich beide Extreme dieser Politik und währenddessen gesehen ich Möchte immer Administratorzugriff auf eine Maschine haben, in einigen Fällen ergab das keinen Sinn. Und ich bin mir nicht sicher, was Ursache und Wirkung ist, aber ohne Ausnahme hat jeder Ort, an dem ich Windows-Entwicklung gesehen habe, wo die Entwickler Administratorzugriff hatten, auch viel höhere Produktivität von jedem Entwickler als Orte, wo sie gesperrt waren.


8
2018-02-08 15:45



+1, weil du es in die richtige Perspektive bringst. Nehmen Sie die persönlichen Präferenzen von Entwicklern und Administratoren wahr und konzentrieren Sie sich auf das, was für die Organisation als Ganzes wichtig ist. - Jaap Coomans


Ich denke, Sie stellen die falsche Frage, Sie sollten fragen:

Wird ein guter Entwickler für eine   Arbeitgeber, der ihn nicht gibt   Administratorrechte auf ihrem PC?

Was jemand "braucht" und was er erwartet, ist oft nicht dasselbe, schließlich muss man einem Entwickler nicht erlauben, in den Arbeitsstunden Kaffee zu trinken, aber wenn man nicht ...

(Stellen Sie sicher, dass Sie Ihre Policy im Interview-Stadium klarstellen, sonst können Sie Leute dazu bringen, die Arbeit anzunehmen, die dann Ihr Unternehmen wegen des Mangels an Admin-Rechten verachten - erwarten Sie nicht, dass Programmierer logisch über so etwas denken! )


4
2018-02-08 09:12



Ich gebe zu, dass ich sowohl in der Hochschulbildung arbeite, als auch als "Systemadministrator / -programmierer" tätig bin, wie auch alle anderen in meiner Gruppe, also denke ich, dass meine Erfahrung nicht völlig relevant ist. Aber ich kann mir nicht vorstellen, als Entwickler in einem Laden zu arbeiten, der mir nicht die volle Kontrolle über meinen Arbeitsplatz (Auswahl und Installation des Betriebssystems, Software-Auswahl, etc.), geschweige denn Root-Rechte, geben würde. - Jason Antman


Es hängt eigentlich mehr davon ab, wen man danach fragt, wer es tatsächlich braucht. Wenn Sie IT- und Risikomanagement-Gruppen von Unternehmen fragen, werden sie Sie mit Horrorgeschichten überschütten (und wenn sie es Ihnen geben wollen, verlangen sie eine Ziege, die in einer heiligen Verheißung geopfert wurde, dass sie nicht verantwortlich gemacht werden), die Entwickler auf der anderen Seite erfordert Admin-Rechte vor allem, weil der Job stressig und anspruchsvoll genug ist, ohne die Erlaubnis vom Helpdesk zu suchen, um ein Leck zu gehen. Der traurige Stand der Dinge ist, dass es jetzt mehr um Machtkämpfe und Machtausübung geht als um geschäftliche und produktive Bedürfnisse (z. B. es läuft darauf hinaus, wer den anderen durch die Reifen springen lässt)

IMHO, die beste Arbeitsumgebung, die ich bis heute gesehen habe, ist, wo die zwei Gruppen getrennt gehalten werden. Entwickler haben ihre eigene Domäne in der Gesamtstruktur (wobei IT kontrolliert, was diese Domäne und ihre Benutzer im Rest des Unternehmens tun können) und sie sind alle lokale Administratoren mit erfahrenen Leuten, die MCSE als lokale Domänenadministratoren haben, sie haben ihre eigene Testumgebung und können mit einer einzigen IT-Richtlinie (keine raubkopierte Software) so viel tun, wie sie wollen und brauchen, in ihrem lokalen LAN. Corporate IT ist nicht verantwortlich und leistet keinen Support für Entwickler und setzt nur einige wichtige Unternehmensregeln durch (kein Facebook, Porno oder Ähnliches durch Firewall, Entwickler können sich nicht mit Firmen-LAN herumärgern) und sie alle haben RSA-basierte VPNs von zu Hause aus was sie direkt in ihr LAN bringt. Ordentlich, nicht wahr?


4
2018-02-08 11:20





Die Antwort ist wahrscheinlich subjektiv und spezifisch für jedes einzelne Szenario, aber in den meisten Fällen würde ich ja sagen.


2
2018-02-07 23:25





Ich würde sagen, dass administrative Rechte für den Entwicklungsprozess wichtig sind. Angesichts der relativ einfachen Verwendung einer VM zur Sandbox gibt es keinen Grund, warum Sie sie nicht in eine VM einfügen und die Sicherheit beibehalten können.

Alles läuft schief und Sie können es innerhalb von Minuten löschen und wiederherstellen.


2
2018-02-08 00:56



Es gibt einen sehr guten Grund, sie nicht in eine VM-Performance zu sperren. Ein Entwickler, der an einer Hauptanwendung arbeitet, kann leicht jedes Bit einer High-Spec-Maschine mit riesigen Mengen an RAM, schneller HDD usw. verwenden. Das Anordnen auf einer VM ist ungefähr dasselbe wie das Zurückgeben ihrer Maschinen von vor ein paar Jahren. Großartig für die Sicherheit, aber nicht so gut für die Produktivität. - John Gardeniers
Aber großartig, um Entwickler dazu zu zwingen, an das untere Ende der offiziell unterstützten Maschinen im Projekt zu schreiben. Darüber hinaus können wir mit virtuellen Servern Fehlertoleranz (und in einigen Fällen Hauptlast) für Live-Produkte unterstützen. Alles eine Frage, auf welchem ​​Rechner / Cluster Ihre VM ausgeführt wird. - DivinusVox
Es geht nicht darum, für das untere Ende der Anforderungen zu schreiben, es geht darum, Tools zu verwenden, die eine höhere Leistung erfordern, als VMs es zulässt. Die Verwendung von Visual Studio 2010 in einer VM ist deutlich weniger reaktionsfähig als auf Bare-Metal. Das Produkt, das Sie schreiben, läuft in einer VM möglicherweise gut, aber das bedeutet nicht, dass Entwicklerwerkzeuge es immer tun. - Michael Shimmins


Bestimmt! Normalerweise kann ein Großteil der Entwicklung in einer virtuellen Umgebung stattfinden oder auch nicht. Admin-Rechte helfen, eine Vielzahl der Überschreibungen von Service-Behandlung, Registrierungseinträgen und IIS lokal zu überwinden. Auf der anderen Seite hängt es davon ab, wie viel Vertrauen Sie haben in Ihren Entwicklern.

Als Entwickler ist es frustrierend, wenn etwas nicht funktioniert, weil wir keinen Zugriff haben.


2
2018-02-08 06:46