In un ambiente aziendale, gli sviluppatori dovrebbero avere i diritti di amministratore sul proprio computer? Perché?
Ambiente tecnologico:
- Windows 7
- Visual Studio 2008 e 2010
- server SQL
In un ambiente aziendale, gli sviluppatori dovrebbero avere i diritti di amministratore sul proprio computer? Perché?
Ambiente tecnologico:
Risposte:
Dovrebbero? Dipende dalla società. Personalmente penso che vada bene fintanto che ci sono alcune regole comprese.
In genere direi di sì. Cose come i debugger richiedono piuttosto alti se non i diritti di amministratore per funzionare correttamente. Gli sviluppatori devono spesso installare un software casuale che può richiedere giorni o settimane per essere installato quando si passa attraverso i canali. Durante quel periodo lo sviluppatore di solito il lavoro ha smesso di costare all'azienda nient'altro che denaro, specialmente se lo sviluppatore è un consulente.
C'è sia scienza che arte in sviluppo; non è semplice come "sapere" ciò di cui abbiamo bisogno. Se avessimo già avuto la risposta metà del nostro lavoro sarebbe discutibile; trovare l'approccio corretto è spesso iterativo e può coinvolgere più strumenti in modi imprevedibili. Richiedere a un intermediario di installare ciascuno di questi (spesso con elevata latenza), solo per scoprire (circa un'ora dopo) che per il tuo scenario è necessario il "componente aggiuntivo super-tool" è sciocco.
Mentre una VM è l'ideale per questo, ci sono anche molti strumenti di sviluppo che non possono essere eseguiti (correttamente o per niente) in una VM, perché essi stessi sono una VM - e non intendo cose come JVM; Intendo emus / vms full machine, come ad esempio i toolkit del dispositivo. La compatibilità sta migliorando.
Inoltre, la maggior parte degli strumenti di sviluppo ha un footprint molto ampio, molto più grande degli strumenti "normali" (che rendono l'hosting di macchine virtuali un po 'più doloroso di quanto ci si possa aspettare), e spesso per la natura di essere un debugger di processo richiede un accesso elevato. Per non parlare del fatto che potrebbero essere ad alta intensità di GUI; cercare di eseguire a tempo pieno su una GUI VM è ... estremamente doloroso.
Le prestazioni sono enormi sono qui; penseresti che fosse OK per gli utenti attendere 3 secondi dopo ogni pressione di un tasto in Word per la registrazione della loro chiave? Non sto scherzando: gli strumenti di sviluppo su VM ecc. Possono essere così schizzinosi; per la maggior parte degli scopi di sviluppo hai bisogno di reattività. L'interruzione del flusso di logica complessa dal cervello alla tastiera può rendere praticamente impossibile portare a termine il lavoro. E odio dirlo, ma sì: i tempi di sviluppo sono costosi.
In un ambiente Windows, e specialmente quando si utilizzano prodotti per sviluppatori Microsoft, lo sviluppatore richiederà i diritti di amministratore sul proprio computer. Se neghi loro quei diritti, la loro capacità di svolgere il loro lavoro sarà limitata, se non addirittura del tutto impedita.
In quanto sviluppatore, ci colloco un livello di privilegio al di sopra dell'utente di base, ma al di sotto degli amministratori di sistema.
A volte potrei aver bisogno di una libreria aggiuntiva installata per far funzionare l'applicazione che sto sviluppando per lavorare nell'ambiente di produzione, detto questo, ho una regola rigorosa che sviluppo da: "Per qualsiasi applicazione che richiede librerie di terze parti, il le librerie devono essere installate in un ambiente sandbox prima della distribuzione della produzione e, in alcuni casi, prima dello sviluppo dell'applicazione ".
L'amministratore di sistema con cui lavoro e concordo con questo, e tra noi due, applicheremo attivamente tale regola e ritarderemo qualsiasi distribuzione dell'applicazione che non abbia superato i "controlli di dipendenza".
Per rispondere alla tua domanda, sì, gli sviluppatori dovrebbero avere pieno accesso ai propri computer, ma tali computer dovrebbero essere isolati dall'ambiente su cui l'applicazione verrà infine distribuita. In tal caso, anche la distribuzione dell'applicazione dovrebbe essere sottoposta a sandbox fino a quando non sarà considerata sicura da distribuire nell'ambiente di produzione.
Disclaimer: sono uno sviluppatore.
Per me, questa domanda (e le risposte) sembrano attaccare il problema con un approccio errato, ovvero il dibattito si concentra su ciò che gli amministratori vogliono / hanno bisogno rispetto a ciò che gli sviluppatori vogliono / hanno bisogno. Ma hai specificato che siamo in un ambiente aziendale, quindi diamo un'occhiata in questo modo.
Immaginiamo quindi di discuterne di fronte al direttore dell'IT o delle operazioni o di chi controlla il nostro budget e di porre queste domande.
Con la risposta a queste domande, puoi prendere una decisione informata piuttosto che appassionata.
Per il tuo ambiente specifico , ci sono alcune cose che richiedono diritti di amministratore (vedi Diritti utente e Visual Studio ): se non stanno facendo queste cose, puoi rispondere alle domande 2-4.
Come consulente, ho visto entrambi gli estremi di questa politica e, anche se voglio sempre avere l'accesso come amministratore a una macchina, in alcuni casi non ha senso. E non sono sicuro di quale sia la causa e che cosa sia l'effetto, ma senza eccezione, ogni posto che ho visto fare lo sviluppo di Windows in cui gli sviluppatori avevano accesso come amministratore aveva anche una produttività MOLTO più alta da ogni sviluppatore rispetto ai luoghi in cui erano bloccati.
Penso che tu stia facendo la domanda sbagliata, dovresti chiedere:
Un buon sviluppatore lavorerà per un datore di lavoro che non gli conferisce i diritti di amministratore sul proprio PC?
Ciò che qualcuno “ha bisogno” e ciò che si aspettano spesso non sono la stessa cosa, dopo tutto non è necessario consentire a uno sviluppatore di bere il caffè durante l'orario di lavoro, ma se non lo fai ...
(Assicurati di chiarire la tua politica in fase di colloquio, altrimenti potresti convincere le persone ad assumere il lavoro che poi disprezzano la tua azienda a causa della mancanza di diritti di amministratore - non aspettarti che i programmatori pensino in modo logico a questo genere di cose! )
Dipende in realtà più da chi chiedi, quindi da chi ne ha effettivamente bisogno. Se chiedi ai gruppi IT IT e di gestione dei rischi che saranno ovunque di te con storie horror (e se devono dartelo chiedono una capra sacrificata in un sacro vincolo di promessa che non saranno ritenuti responsabili), gli sviluppatori dall'altro lato richiede i diritti di amministratore principalmente perché il lavoro è abbastanza stressante ed impegnativo senza dover chiedere l'autorizzazione all'help desk per andare a cercare. Il triste stato di cose è che ora è più incentrato sulla lotta di potere e sull'esercizio del potere, quindi sulle esigenze aziendali e di produttività (ad esempio, si riduce a chi farà saltare l'altro)
IMHO, il miglior ambiente di lavoro che ho visto fino ad oggi è dove i due gruppi vengono tenuti separati. Gli sviluppatori hanno il loro dominio nella foresta (per cui l'IT controlla cosa possono fare questo dominio e i suoi utenti nel resto dell'azienda) e sono tutti amministratori locali con ragazzi esperti con MCSE che agiscono come amministratori di dominio locali, hanno il loro ambiente di test e possono fare praticamente ciò che vogliono e di cui hanno bisogno sulla propria LAN locale con un singolo criterio IT (nessun software piratato). L'IT aziendale non è responsabile e non fornisce supporto agli sviluppatori e applica solo alcune regole aziendali di alto livello (niente facebook, porno o simili attraverso il firewall, gli sviluppatori non consentono di confondere con la LAN aziendale) e tutti hanno VPN basate su RSA per lavorare da casa che li mette direttamente nella loro LAN. Pulito, no?
Direi che i diritti amministrativi sono importanti per il processo di sviluppo. Data la relativa facilità di utilizzo di una VM per sandbox, non c'è motivo per cui non sia possibile inserirli in una VM e mantenere la sicurezza.
Tutto va storto e puoi cancellare e ricostruire in pochi minuti.
Decisamente! Di solito gran parte dello sviluppo che si svolge potrebbe o meno essere in un ambiente virtuale. I diritti di amministratore aiutano a superare molte delle sostituzioni di gestione dei servizi, voci di registro e IIS a livello locale. D'altra parte, dipende da quanta fiducia hai nei tuoi sviluppatori.
Come sviluppatore, è frustrante quando qualcosa non funziona perché non abbiamo accesso.
Dipende. Come sviluppatore, si dovrebbe sempre operare secondo il principio dei privilegi minimi. Se lavori come appaltatore governativo, potresti essere obbligato per contratto a non avere accesso come amministratore, ad esempio.
Come sviluppatore Java, non avevo quasi bisogno di avere diritti di amministratore sulla mia macchina su base continuativa . Tuttavia, ci sono casi legittimi in cui hai bisogno dell'accesso di amministratore su richiesta (.ie. Devi spostare il tuo laptop su domini fisicamente separati e devi cambiare la tua scheda di rete di conseguenza.) Quella era l'unica volta in cui ne avevo davvero bisogno accesso permanente e permanente all'amministratore della mia macchina.
A volte è necessario l'accesso come amministratore perché l'IT è a corto di personale (o incompetente o impantanato nella burocrazia). Ma se lavori con un dipartimento IT competente, possono installare le cose per te anche in remoto (o fornendo programmi di installazione personalizzati che "funzioneranno come "amministrare e installare le cose per te semplicemente facendo clic su di esse.)
Quindi la risposta (di nuovo) è - dipende. Hai uno staff IT reattivo che può installare le cose su richiesta (o entro un tempo ragionevole)? Gli sviluppatori ne hanno davvero bisogno per le attività per cui sono pagati ?
Se gli sviluppatori ne hanno veramente e legittimamente bisogno (come in "Non sarò letteralmente in grado di fare nulla senza di essa" ) al contrario di una comodità (come in "Voglio installare ciò che voglio" ), e se il supporto IT non è sufficientemente reattivo (per qualsiasi motivo), quindi sì, dovrebbero avere l'accesso come amministratore ai loro computer.
Altrimenti no. Ricorda il principio del privilegio minimo , le persone.
Ci sono sviluppatori e ci sono sviluppatori. Se uno "sviluppatore" è un ragazzo java di $ 40 / ora che scrive regole per un motore di regole, ovviamente no. Se uno "sviluppatore" è un ragazzo C / Assembly da $ 350 / ora che fa eseguire il tuo software di editing video il più velocemente possibile su una GPU, allora sì, ovviamente.
Per le aziende che sono preoccupate per la sicurezza, avranno persone di sicurezza che dettano e cercheranno di applicare una politica che funziona con il loro modello di sviluppo e sistemi. In un ambiente Windows la maggior parte delle persone ti dirà che devi avere diritti amministrativi sull'host su cui stanno sviluppando per svolgere le loro attività.
Questo non è necessariamente vero ...
È possibile creare una politica personalizzata e far funzionare tutti i programmi e le funzioni con gli utenti dello sviluppo su un sistema. Dovrai solo sporcarti e sporcarti con le autorizzazioni personalizzate per le directory di programma / sistema con gruppi o gruppi personalizzati a seconda del design desiderato.
La maggior parte delle aziende dirà che è molto pericoloso per gli sviluppatori disporre di sistemi su reti aperte perché gli hacker potrebbero ottenere il controllo e iniziare a compilare i propri strumenti, quindi svolgere il compito vale molto il rischio secondo la mia opinione professionale.
Gli sviluppatori dovrebbero (idealmente) avere due accessi al dominio.
Uno che ha i diritti di amministratore locale (per il lavoro di sviluppo) e uno che ha gli stessi diritti di tutti gli altri membri dell'azienda. Quindi, possono testare il loro lavoro su un insieme rappresentativo di autorizzazioni.
Ciò dovrebbe quindi ridurre la probabilità di ItWorksOnMyMachine-itis che appare occasionalmente .....
Devo (apparentemente) fornire la voce dissenziente e dire non solo no ma "diamine no". Non ho problemi a concedere diritti di amministratore devs su una macchina virtuale in modalità sandbox che non ha accesso alla rete. Zypher aveva quasi ragione (correzione in grassetto):
"1. Essere amministratore sulla mia scatola è un privilegio NON un diritto." Questi sistemi sono beni aziendali di cui alla fine sono responsabile. Quando Joe Developer installa la sua copia piratata di Microsoft Bob ("perché ne avevo bisogno ") non sarà lui a dover spiegare come non è stato trovato prima dell'audit. Gli sviluppatori pensano abitualmente che in qualche modo le regole aziendali non si applichino ad esse. Dando loro una macchina virtuale in modalità sandbox, possono seguire tutte le regole che tutti gli altri devono seguire (dal momento che solo l'IT può copiare i file da e verso il sistema). Magicamente il sistema di richiesta viene utilizzato di nuovo dagli sviluppatori, il cielo non cade più quando Joe Developer manipola la sua casella di sviluppo - ne chiede solo una nuova (o un ripristino se gli vengono richiesti backup)
Il signor Denny ha menzionato gli sviluppatori che costano soldi quando devono aspettare che vengano installate le app, A. ciao ... il mio tempo è di solito prezioso quanto lo sviluppatore Joe (di solito lo è ancora perché continuo a far funzionare l'eccitante crapware - e davvero devo menzionare tutto il tempo impiegato per aiutare lo sviluppatore di Joe a eseguire il debug del suo ultimo capolavoro) e B. quando dev va in overbudget perché stavano aspettando un'applicazione e provando a dare la colpa all'IT per questo direi:
La tua mancanza di pianificazione per ciò di cui hai bisogno per scrivere software non è mia responsabilità, abbiamo un set standard di strumenti e se in quella cassetta degli attrezzi manca ciò di cui hai bisogno dovresti avere le tue richieste per ottenere più strumenti accelerati piuttosto che tentare di farmi saltare attraverso i cerchi per ottenerlo perché la scadenza è domani.
Detto questo, bloccando i desktop degli sviluppatori puzza, se potessi eliminare gli schifosi sviluppatori che pensano che abbiano il diritto di guardare la loro collezione di baywatch e siano indignati nel sapere che non possono installare il babewatch player per visualizzarli ("ma è open source ") potresti essere in grado di scioglierti. Ma per ogni grande sviluppatore quello che lo "capisce", ci sono altri 10 che la tua azienda assumerà per quell'applicazione verticale da 200 milioni di dollari, ed è quello a cui devi fare attenzione.
EDIT: È certamente possibile che gli sviluppatori a cui sono stato esposto siano insolitamente noiosi (il polling del raccolto corrente solo 1 ha sentito parlare di stackoverflow, per dare un certo livello di benchmark). Il punto di vista iniziale con cui comincio è "cosa devi fare per fare ciò che la società ti sta pagando". Se hai bisogno dei diritti di amministratore, li ottieni, ma non dovresti farlo con loro e se posso darti una scatola che sinceramente non mi interessa cosa ci fai e che funziona, allora siamo entrambi pronti a partire.