Czy w środowisku korporacyjnym programiści powinni mieć uprawnienia administratora na swoim komputerze? Czemu?
Środowisko technologiczne:
- System Windows 7
- Visual Studio 2008 i 2010
- SQL Server
Czy w środowisku korporacyjnym programiści powinni mieć uprawnienia administratora na swoim komputerze? Czemu?
Środowisko technologiczne:
Odpowiedzi:
Powinni? To zależy od korporacji. Osobiście uważam, że jest w porządku, o ile istnieją pewne zrozumiałe zasady.
Zazwyczaj powiedziałbym tak. Rzeczy takie jak debugery wymagają dość wysokich, jeśli nie praw administratora, aby działać poprawnie. Programiści często muszą instalować losowe oprogramowanie, które może potrwać kilka dni lub tygodni, zanim zostaną zainstalowane przez kanały. W tym czasie deweloper zwykle przestaje pracować, a firma kosztuje tylko pieniądze, zwłaszcza jeśli jest konsultantem.
W rozwoju jest zarówno nauka, jak i sztuka; to nie jest tak proste, jak „wiedza”, czego potrzebujemy. Gdybyśmy już mieli odpowiedź, połowa naszej pracy byłaby dyskusyjna; znalezienie właściwego podejścia jest często iteracyjne i może obejmować wiele narzędzi w nieprzewidywalny sposób. Wymaganie od pośrednika instalacji każdego z nich (często z dużym opóźnieniem), tylko po to, aby znaleźć (około godziny w), że w twoim scenariuszu „super-uber addon narzędzia” jest głupi.
Chociaż maszyna wirtualna jest do tego idealna, istnieje również wiele narzędzi programistycznych, które nie mogą działać (poprawnie, a nawet wcale) na maszynie wirtualnej, ponieważ same są maszyną wirtualną - i nie mam na myśli rzeczy takich jak JVM; Mam na myśli pełne emu maszynowe / vms, takie jak zestawy narzędzi urządzeń. Zgodność poprawia się.
Ponadto większość narzędzi programistycznych ma bardzo duży rozmiar - znacznie większy niż „zwykłe” narzędzia (co sprawia, że hostowanie maszyn wirtualnych jest nieco bardziej bolesne, niż można się spodziewać), a często ze względu na to, że jest debuggerem procesu, wymaga podwyższonego dostępu. Nie wspominając o tym, że mogą one intensywnie korzystać z GUI; próba uruchomienia w pełnym wymiarze czasu na graficznym interfejsie użytkownika maszyny wirtualnej jest ... bardzo bolesna.
Wydajność jest ogromna, są tutaj; czy sądzisz, że użytkownicy mogli czekać 3 sekundy po każdym naciśnięciu klawisza w programie Word na zarejestrowanie klucza? Nie żartuję - narzędzia programistyczne na maszynach wirtualnych itp. Mogą być takie szczęście; do większości celów programistycznych potrzebujesz czasu reakcji. Przerwanie przepływu złożonej logiki z mózgu na klawiaturę może sprawić, że wykonanie zadania będzie praktycznie niemożliwe. I nie chcę tego mówić, ale tak: czas rozwoju jest drogi.
W środowisku Windows, a zwłaszcza podczas korzystania z produktów deweloperskich Microsoft, deweloper będzie wymagał uprawnień administratora na swoim komputerze. Jeśli odmówisz im tych praw, ich zdolność do wykonywania pracy zostanie ograniczona, o ile w ogóle jej nie zapobiegniesz.
Będąc programistą, oceniam nas na poziomie uprawnień powyżej podstawowego użytkownika, ale poniżej administratora systemu.
Czasami mogę potrzebować dodatkowej biblioteki, aby aplikacja, którą opracowuję, działała w środowisku produkcyjnym, to powiedziawszy, mam ścisłą regułę, którą opracowuję: „W przypadku każdej aplikacji, która wymaga bibliotek stron trzecich, biblioteki powinny być instalowane w środowisku piaskownicy przed wdrożeniem produkcyjnym, a w niektórych przypadkach przed opracowaniem aplikacji ”.
Sysadmin, z którym współpracuję i zgadzam się na to, i między nami, będziemy aktywnie egzekwować tę regułę i opóźniać każde wdrożenie aplikacji, które nie przejdzie „kontroli zależności”.
Aby odpowiedzieć na twoje pytanie, tak, programiści powinni mieć pełny dostęp do swoich komputerów, ale komputery te powinny być odizolowane od środowiska, w którym aplikacja zostanie ostatecznie wdrożona. W takim przypadku nawet wdrożenie aplikacji powinno być piaskownicowane, dopóki nie zostanie uznane za bezpieczne do wdrożenia w środowisku produkcyjnym.
Oświadczenie: Jestem programistą.
Dla mnie to pytanie (i odpowiedzi) wydaje się atakować problem z niewłaściwego podejścia - to znaczy, debata koncentruje się na tym, czego administratorzy chcą / potrzebują, a czego deweloperzy chcą / potrzebują. Ale określiłeś, że jesteśmy w środowisku korporacyjnym, więc spójrzmy na to w ten sposób.
Wyobraźmy sobie więc, że dyskutujemy o tym przed dyrektorem działu IT lub operacji, lub kimkolwiek, kto kontroluje nasz budżet , i zadajemy te pytania.
Po udzieleniu odpowiedzi na te pytania możesz podjąć świadomą decyzję, a nie namiętną.
W konkretnym środowisku istnieją pewne rzeczy, które wymagają uprawnień administratora (zobacz Prawa użytkownika i Visual Studio ) - jeśli nie robią tych rzeczy, możesz odpowiedzieć na pytania 2–4.
Jako konsultant, widziałem oba ekstrema tej polityki, a gdy ja zawsze chcą mieć dostęp administracyjny do maszyny, w niektórych przypadkach nie ma sensu. I nie jestem pewien, co jest przyczyną, a co skutkiem, ale bez wyjątku, każde miejsce, w którym widziałem programowanie systemu Windows, w którym deweloperzy mieli dostęp administratora, miało także DUŻO wyższą wydajność od każdego programisty niż miejsca, w których zostały zablokowane.
Myślę, że zadajesz złe pytanie, powinieneś zadać:
Czy dobry programista będzie pracował dla pracodawcy, który nie daje mu uprawnień administratora na swoim komputerze?
To, czego ktoś „potrzebuje” i czego oczekuje, często nie jest tym samym, w końcu nie musisz pozwalać deweloperowi na picie kawy w godzinach pracy, ale jeśli nie…
(Upewnij się, że jasno określasz swoje zasady na etapie rozmowy kwalifikacyjnej, w przeciwnym razie możesz sprawić, że ludzie podejmą pracę, która następnie gardzi twoją firmą z powodu braku uprawnień administratora - nie oczekuj, że programiści będą logicznie myśleć o tego rodzaju sprawach! )
Zależy to bardziej od tego, kogo zapytasz, a kto tak naprawdę tego potrzebuje. Jeśli zapytasz korporacyjne grupy IT i grupy zarządzania ryzykiem, będą one wokół ciebie z horrorami (a jeśli mają ci to dać, żądają kozła poświęconego w świętej więzi obietnicy, że nie będą ponosić odpowiedzialności), deweloperzy z drugiej strony domaga się praw administratora, głównie dlatego, że praca jest stresująca i wystarczająco wymagająca, bez konieczności uzyskania zgody działu pomocy technicznej na wyciek. Smutny stan rzeczy polega na tym, że teraz chodzi bardziej o walkę o władzę i wywieranie władzy, a następnie o potrzeby biznesowe i produktywne (np. Sprowadza się to do tego, kto sprawi, że drugi skoczy przez obręcze)
IMHO, najlepsze środowisko pracy, jakie widziałem do dziś, to miejsce, w którym dwie grupy są trzymane oddzielnie. Deweloperzy mają własną domenę w lesie (dzięki czemu dział IT kontroluje, co ta domena i jej użytkownicy mogą robić w pozostałej części firmy) i wszyscy są lokalnymi administratorami z doświadczonymi facetami z MCSE działającymi jako lokalni administratorzy domen, mają własne środowisko testowe i mogą robić, co chcą i potrzebują w swojej lokalnej sieci LAN za pomocą jednej polityki IT (bez pirackiego oprogramowania). Korporacyjne działy IT nie ponoszą odpowiedzialności i nie udzielają wsparcia deweloperom, a jedynie egzekwują niektóre reguły korporacyjne wysokiego poziomu (brak facebooka, pornografii itp. Przez zaporę ogniową, deweloperzy nie pozwalają na bałagan w korporacyjnej sieci LAN) i wszyscy oni mają VPN oparte na RSA do pracy z domu co umieszcza je bezpośrednio w ich sieci LAN. Zgrabnie, prawda?
Powiedziałbym, że prawa administracyjne są ważne dla procesu rozwoju. Biorąc pod uwagę względną łatwość użycia maszyny wirtualnej do piaskownicy, nie ma powodu, dla którego nie można umieścić ich w maszynie wirtualnej i zachować bezpieczeństwo.
Wszystko pójdzie nie tak i możesz wyczyścić i odbudować w ciągu kilku minut.
Zdecydowanie! Zazwyczaj wiele prac rozwojowych może się odbywać w środowisku wirtualnym. Prawa administratora pomagają przezwyciężyć wiele nadpisań dotyczących obsługi usług, wpisów rejestru i usług IIS lokalnie. Z drugiej strony zależy to od tego, ile masz zaufania do swoich programistów.
Jako programista frustruje Cię, gdy coś nie działa, ponieważ nie mamy dostępu.
Zależy. Jako programista należy zawsze działać na zasadzie najmniejszych uprawnień. Jeśli pracujesz jako kontrahent rządowy, na przykład możesz zostać zobowiązany umownie do braku dostępu administratora.
Jako programista Java prawie nie musiałem na bieżąco mieć uprawnień administratora na moim komputerze . Istnieją jednak uzasadnione przypadki, gdy potrzebujesz dostępu administratora na żądanie (np. Musisz przenieść laptopa do fizycznie oddzielnych domen i odpowiednio zmienić swoją kartę sieciową). To był jedyny raz, kiedy naprawdę potrzebowałem stały, stały dostęp administratora do mojej maszyny.
Czasami potrzebujesz dostępu administratora, ponieważ personel IT ma za mało personelu (lub jest niekompetentny lub zmaga się z biurokracją). Ale jeśli pracujesz z kompetentnym działem IT, mogą oni zainstalować te rzeczy nawet zdalnie (lub poprzez zapewnienie niestandardowych instalatorów, które będą działać jako „administruj i zainstaluj rzeczy za Ciebie, klikając je.)
Więc odpowiedź (znowu) brzmi - to zależy. Czy masz reagujący personel IT, który może instalować rzeczy na żądanie (lub w rozsądnym czasie)? Czy programiści rzeczywiście tego potrzebują do zadań, za które otrzymują wynagrodzenie ?
Jeśli programiści naprawdę tego potrzebują (jak w „Dosłownie NIE będę w stanie nic zrobić bez tego” ) w przeciwieństwie do wygody (jak w „Chcę zainstalować, co chcę” ) i jeśli wsparcie IT nie reaguje wystarczająco (z jakichkolwiek powodów), więc tak, powinni mieć dostęp administratora do swoich komputerów.
W przeciwnym razie nie. Pamiętajcie o zasadzie najmniejszych przywilejów , ludzie.
Są programiści i są programiści. Jeśli „programistą” jest facet JBoss z JBoss, który pisze 40 dolarów za godzinę, pisząc reguły dla silnika reguł, to oczywiście nie. Jeśli „programista” to facet w wysokości 350 USD / godzinę C / Zespół, który uruchamia oprogramowanie do edycji wideo tak szybko, jak to możliwe na GPU, to oczywiście tak.
W przypadku korporacji, które martwią się o bezpieczeństwo, osoby odpowiedzialne za bezpieczeństwo będą dyktować i podejmować próby egzekwowania polityki zgodnej z ich modelem rozwoju i systemami. W środowisku Windows większość osób powie ci, że musisz mieć uprawnienia administracyjne na hoście, na którym rozwijają się, aby wykonywać swoje zadania.
To niekoniecznie jest prawdą...
Możesz utworzyć niestandardową politykę i wszystkie programy i funkcje współpracować z użytkownikami programistycznymi w systemie. Będziesz musiał po prostu zejść na dół i zabrudzić się i dostać się do drobiazgów z niestandardowymi uprawnieniami do katalogów programu / systemu z grupami lub niestandardowymi grupami w zależności od pożądanego projektu.
Większość korporacji powie, że bardzo niebezpieczne jest dla deweloperów posiadanie systemów w otwartych sieciach, ponieważ hakerzy mogliby przejąć kontrolę i zacząć kompilować własne narzędzia, więc moim zdaniem wykonanie tego zadania jest warte ryzyka.
Programiści powinni (najlepiej) mieć dwa loginy domeny.
Taki, który ma lokalne uprawnienia administratora (do prac programistycznych) i taki, który ma takie same uprawnienia jak wszyscy inni w firmie. Następnie mogą przetestować swoją pracę na reprezentatywnym zestawie uprawnień.
To powinno następnie zmniejszyć prawdopodobieństwo wystąpienia ItWorksOnMyMachine-itis, który pojawia się czasami .....
Muszę (najwyraźniej) zabrać głos odrębny i powiedzieć nie tylko „nie”, ale „cholera nie”. Nie mam problemu z przyznaniem praw administratora devs na maszynie wirtualnej w piaskownicy, która nie ma dostępu do sieci. Zypher miał prawie rację (pogrubiona korekta):
„1. Jako administrator na moim urządzeniu to przywilej, a NIE prawo.” Te systemy są aktywami korporacyjnymi, za które jestem ostatecznie odpowiedzialny. Kiedy Joe Developer instaluje swoją piracką kopię Microsoft Bob („ponieważ tego potrzebowałem ”), to nie on musi wyjaśniać, dlaczego nie znaleziono go przed audytem. Programiści rutynowo uważają, że reguły korporacyjne po prostu ich nie dotyczą. Dając im maszynę wirtualną w piaskownicy, mogą przestrzegać wszystkich zasad, których muszą przestrzegać wszyscy inni (ponieważ teraz tylko IT może kopiować pliki do iz systemu). Magicznie system zgłoszeń jest ponownie wykorzystywany przez programistów, niebo już nie spada, gdy Joe Developer modyfikuje swoje okno rozwoju - po prostu prosi o nowy (lub przywrócenie, jeśli poprosi o kopie zapasowe)
Pan Denny wspomniał o programistach, którzy kosztują pieniądze, gdy muszą czekać na zainstalowanie aplikacji, A. cześć ... mój czas jest zwykle tak samo cenny jak Joe Developer (zwykle tym bardziej, że utrzymuję istniejące oprogramowanie crapware - i czy naprawdę muszę wspomnieć cały czas spędzony na pomaganiu deweloperowi Joe w debugowaniu jego ostatniego arcydzieła) oraz B. gdy dev przechodzi w nadmierny budżet, ponieważ czekają na aplikację i starają się winić IT za to powiedziałbym:
Twój brak planowania tego, co musisz napisać, nie leży w mojej gestii, mamy standardowy zestaw narzędzi, a jeśli brakuje tego zestawu narzędzi, powinieneś otrzymać prośby o przyspieszenie większej liczby narzędzi zamiast próby skoku przez obręcze, aby go dla ciebie zdobyć, ponieważ termin jest jutro.
Powiedziawszy to wszystko, blokowanie pulpitów programistów śmierdzi, jeśli moglibyście wyeliminować gównianych programistów, którzy myślą, że mają prawo oglądać kolekcję baywatch i są oburzeni, że nie mogą zainstalować odtwarzacza Babewatch, aby je wyświetlić („ale to open source ”) możesz się rozluźnić. Ale na każdego świetnego programistę, który go „dostanie”, jest 10 innych, na które Twoja firma zamierza zatrudnić w zamian za tę aplikację o wartości 200 milionów dolarów, i na to musisz uważać.
EDYCJA: Jest całkiem możliwe, że programiści, na których jestem narażony, są wyjątkowo nudni (sondowanie bieżącej uprawy tylko 1 słyszało o przepełnieniu stosu, aby dać pewien poziom odniesienia). Punktem wyjścia, od którego zaczynam, jest: „co musisz zrobić, za co firma płaci za to, co musisz zrobić”. Jeśli potrzebujesz uprawnień administratora, dostaniesz je, ale nie powinieneś z nimi współpracować, a jeśli mogę ci dać pudełko, że szczerze mówiąc, nie obchodzi mnie, co z tym zrobisz i to działa, to oboje jesteśmy gotowi.