Em um ambiente corporativo, os desenvolvedores devem ter direitos de administrador em seus computadores? Por quê?
Ambiente tecnológico:
- Windows 7
- Visual Studio 2008 e 2010
- servidor SQL
Em um ambiente corporativo, os desenvolvedores devem ter direitos de administrador em seus computadores? Por quê?
Ambiente tecnológico:
Respostas:
Eles deveriam? Isso depende da corporação. Pessoalmente, acho que está tudo bem , desde que haja algumas regras entendidas.
Normalmente eu diria que sim. Coisas como depuradores exigem direitos altos, se não administrativos, para funcionar corretamente. Os desenvolvedores geralmente precisam instalar software aleatório, que pode levar dias ou semanas para ser instalado ao passar pelos canais. Durante esse período, geralmente o desenvolvedor deixa de custar à empresa nada além de dinheiro, especialmente se o desenvolvedor for um consultor.
Há ciência e arte em desenvolvimento; não é tão simples quanto "saber" o que precisamos. Se já tivéssemos a resposta, metade do nosso trabalho seria discutível; encontrar a abordagem correta geralmente é iterativo e pode envolver várias ferramentas de maneiras imprevisíveis. Exigir que um intermediário instale cada um deles (geralmente com alta latência), apenas para descobrir (cerca de uma hora) que, para o seu cenário, o "complemento de ferramenta super uber" é necessário.
Embora uma VM seja ideal para isso, também existem muitas ferramentas de desenvolvimento que não podem ser executadas (adequadamente ou até mesmo) em uma VM, porque elas próprias são uma VM - e não quero dizer coisas como JVM; Quero dizer emus / vms completos da máquina, como kits de ferramentas do dispositivo. A compatibilidade está melhorando.
Além disso, a maioria das ferramentas de desenvolvimento tem uma área de cobertura muito grande - muito maior que as ferramentas "regulares" (tornando a hospedagem de VM um pouco mais dolorosa do que você imagina) e, geralmente, por natureza de ser um depurador de processo, exige acesso elevado. Sem mencionar o fato de que eles podem ser intensivos em GUI; tentar executar em tempo integral em uma GUI da VM é ... extremamente doloroso.
O desempenho é enorme está aqui; você acha que não há problema em os usuários aguardarem três segundos após cada pressionamento de tecla no Word para que suas chaves sejam registradas? Eu não estou brincando - ferramentas de desenvolvimento em VMs etc podem ser tão ruins; para a maioria dos propósitos de desenvolvimento, você precisa de capacidade de resposta. Interromper o fluxo de lógica complexa do cérebro para o teclado pode tornar praticamente impossível realizar o trabalho. E odeio dizer isso, mas sim: o tempo de desenvolvimento é caro.
Em um ambiente Windows, e especialmente ao usar produtos de desenvolvedor da Microsoft, o desenvolvedor exigirá direitos de administrador em sua máquina. Se você negar esses direitos, sua capacidade de realizar seus trabalhos será restrita, se não totalmente evitada.
Como desenvolvedor, classifico um nível de privilégio acima do usuário básico, mas abaixo do (s) administrador (es) do sistema.
Ocasionalmente, posso precisar de uma biblioteca extra instalada para que o aplicativo que estou desenvolvendo funcione no ambiente de produção, ou seja, tenho uma regra estrita que desenvolvo por: "Para qualquer aplicativo que exija bibliotecas de terceiros, o as bibliotecas devem ser instaladas em um ambiente sandbox antes da implantação da produção e, em alguns casos, antes do desenvolvimento do aplicativo ".
O administrador do sistema com o qual trabalho e concordo com isso, e entre nós dois, aplicaremos ativamente essa regra e adiaremos qualquer implantação de aplicativo que não tenha passado nas "verificações de dependência".
Para responder sua pergunta, sim, sim, os desenvolvedores devem ter acesso total a suas próprias máquinas, mas essas máquinas devem ser isoladas do ambiente em que o aplicativo será implantado. Nesse caso, até a implantação do aplicativo deve estar em área restrita até ser considerada segura para implantar no ambiente de produção.
Isenção de responsabilidade: sou desenvolvedor.
Para mim, essa pergunta (e as respostas) parece estar atacando o problema pela abordagem errada - ou seja, o debate está focado no que os administradores querem / precisam versus o que os desenvolvedores querem / precisam. Mas você especificou que estamos em um ambiente corporativo, então vamos ver dessa maneira.
Então, vamos imaginar que estamos discutindo isso na frente do diretor de TI ou das operações, ou de quem controla nosso orçamento , e fazer essas perguntas.
Com essas perguntas respondidas, você pode tomar uma decisão informada, e não apaixonada.
Para o seu ambiente específico , existem algumas coisas que exigem direitos de administrador (consulte Direitos do usuário e Visual Studio ) - se elas não estiverem fazendo essas coisas, você poderá responder às perguntas 2 - 4.
Como consultor, tenho visto os dois extremos desta política, e enquanto eu sempre querem ter acesso de administrador para uma máquina, em alguns casos, não fazia sentido. E não tenho certeza do que é causa e do que é efeito, mas, sem exceção, todos os lugares que eu vi desenvolvendo o Windows nos quais os desenvolvedores tinham acesso de administrador também tinham MUITO mais produtividade em todos os desenvolvedores do que nos locais onde estavam bloqueados.
Eu acho que você está fazendo a pergunta errada, deveria estar perguntando:
Um bom desenvolvedor trabalha para um empregador que não lhe concede direitos de administrador em seu PC?
O que alguém “precisa” e o que espera geralmente não é a mesma coisa, afinal você não precisa permitir que um desenvolvedor tome café nas horas de trabalho, mas se você não…
(Certifique-se de deixar sua política clara na fase da entrevista; caso contrário, poderá haver pessoas que aceitam o cargo que desprezam sua empresa devido à falta de direitos de administrador - não espere que os programadores pensem de maneira lógica sobre esse tipo de coisa! )
Na verdade, depende mais de quem você pergunta e de quem realmente precisa. Se você perguntar aos grupos corporativos de TI e de gerenciamento de riscos, eles estarão espalhados por você com histórias de horror (e, para lhe oferecer, eles exigem uma cabra sacrificada em um vínculo sagrado de promessa de que eles não serão responsabilizados), os desenvolvedores por outro lado, exige direitos de administrador, principalmente porque o trabalho é estressante e exigente o suficiente, sem a necessidade de solicitar permissão do suporte técnico para ocorrer um vazamento. O triste estado é que agora se trata mais de luta pelo poder e de exercer poder do que por necessidades de negócios e produtividade (por exemplo, resume-se a quem fará o outro pular em círculos)
IMHO, o melhor ambiente de trabalho que vi até hoje é onde os dois grupos estão sendo mantidos separados. Os desenvolvedores têm seu próprio domínio na floresta (em que a TI controla o que esse domínio e seus usuários podem fazer no resto da empresa) e todos são administradores locais com profissionais experientes, com o MCSE atuando como administradores de domínio local, eles têm seu próprio ambiente de teste e podem fazer praticamente o que desejam e precisam na LAN local com uma única política de TI (sem software pirata). A TI corporativa não é responsável e não oferece suporte aos desenvolvedores e aplica apenas algumas regras corporativas de alto nível (sem facebook, pornografia ou similar por meio de firewall, os desenvolvedores não permitem mexer com a LAN corporativa) e todos eles têm VPNs baseadas em RSA para trabalhar em casa o que os coloca diretamente dentro de sua LAN. Legal, não é?
Eu diria que os direitos administrativos são importantes para o processo de desenvolvimento. Dada a relativa facilidade de usar uma VM para sandbox, não há razão para que você não possa colocá-las em uma VM e manter a segurança.
Qualquer coisa dá errado e você pode limpar e reconstruir em questão de minutos.
Definitivamente! Geralmente, grande parte do desenvolvimento que ocorre pode ou não estar em um ambiente virtual. Os direitos de administrador ajudam a superar muitas das substituições de manipulação de serviço, entradas do Registro e IIS localmente. Por outro lado, depende de quanta confiança você tem em seus desenvolvedores.
Como desenvolvedor, é frustrante quando algo não funciona porque não temos acesso.
Depende. Como desenvolvedor, deve-se sempre operar com o princípio de menos privilégios. Se você trabalha como contratado pelo governo, pode ser contratualmente obrigado a não ter acesso de administrador, por exemplo.
Como desenvolvedor de Java, quase não tenho necessidade de ter direitos de administrador em minha máquina continuamente . No entanto, existem casos legítimos em que você precisa de acesso de administrador sob demanda (ou seja, é necessário mover seu laptop por domínios fisicamente separados e alterar sua NIC de acordo.) Essa foi a única vez em que eu realmente precisei acesso administrativo permanente e contínuo à minha máquina.
Às vezes, você precisa de acesso de administrador porque a equipe de TI é insuficiente (ou incompetente ou atolada em burocracia.) "admin e instale o material para você, basta clicar neles.)
Então a resposta (novamente) é - depende. Você tem uma equipe de TI responsiva que pode instalar coisas sob demanda (ou dentro de um prazo razoável)? Os desenvolvedores realmente precisam dele para as tarefas pelas quais são pagos ?
Se os desenvolvedores precisarem verdadeira e legitimamente (como em "Eu literalmente não poderei fazer nada sem ele" ) em oposição a uma conveniência (como em "Quero instalar o que eu quiser" ) e se o suporte de TI não responde suficientemente (por qualquer motivo), então sim, eles devem ter acesso de administrador às suas máquinas.
Caso contrário, não. Lembre-se do princípio do menor privilégio , pessoal.
Existem desenvolvedores e desenvolvedores. Se um "desenvolvedor" é um cara do jBoss de $ 40 / hora que escreve regras para um mecanismo de regras, é claro que não. Se um "desenvolvedor" é um funcionário de montagem / montagem de US $ 350 / hora, fazendo com que seu software de edição de vídeo seja executado o mais rápido possível em uma GPU, então sim, é claro.
Para as empresas preocupadas com a segurança, elas terão as pessoas de segurança ditadas e tentarão impor uma política que funcione com seu modelo de desenvolvimento e sistemas. Em um ambiente Windows, a maioria das pessoas diz que você deve ter direitos administrativos no host em que está desenvolvendo para executar suas tarefas.
Isto não é necessariamente verdade...
Você pode criar uma política personalizada e fazer com que todos os programas e funções funcionem com usuários de desenvolvimento em um sistema. Você só precisa se concentrar e se concentrar nos mínimos detalhes com permissões personalizadas nos diretórios do programa / sistema com grupos ou grupos personalizados, dependendo do design desejado.
A maioria das empresas dirá que é muito perigoso para os desenvolvedores ter sistemas em redes abertas porque os hackers podem ganhar controle e começar a compilar suas próprias ferramentas. Portanto, passar pela tarefa vale muito a pena, na minha opinião profissional.
Os desenvolvedores devem (idealmente) ter dois logins de domínio.
Um que tenha direitos de administrador local (para trabalho de desenvolvimento) e outro que tenha os mesmos direitos que todos os demais na empresa. Em seguida, eles podem testar seu trabalho em um conjunto representativo de permissões.
Isso deve reduzir a probabilidade de ItWorksOnMyMachine-itis aparecer ocasionalmente .....
Eu tenho que (aparentemente) fornecer a voz dissidente e dizer não apenas não, mas "diabos não". Não tenho problema em conceder direitos de administrador de desenvolvedores em uma VM em área restrita que não tem acesso à rede. Zypher quase acertou (correção em negrito):
"1.Ser administrador na minha caixa é um privilégio, NÃO um direito." Esses sistemas são ativos corporativos pelos quais sou responsável. Quando Joe Developer instala sua cópia pirata do Microsoft Bob ("porque eu precisava dela"), não será ele quem deve explicar como não foi encontrado antes da auditoria. Os desenvolvedores costumam pensar que, de alguma forma, as regras corporativas simplesmente não se aplicam a elas. Ao fornecer a eles uma VM em área restrita, eles podem seguir todas as regras que todos os demais devem seguir (já que agora apenas a TI pode copiar arquivos de e para o sistema). Magicamente, o sistema de solicitação é usado pelos desenvolvedores novamente, o céu não está mais caindo quando Joe Developer manipula sua caixa de desenvolvimento - ele apenas pede uma nova (ou uma restauração, se for solicitado backups)
O Sr. Denny mencionou os desenvolvedores que custam dinheiro quando precisam aguardar a instalação dos aplicativos. A. Olá ... meu tempo é geralmente tão valioso quanto o Joe Developer (geralmente mais desde que eu mantenho o crapware existente em execução - e eu realmente preciso mencionar todo o tempo gasto ajudando o desenvolvedor de Joe a depurar sua última obra-prima) e B. quando o desenvolvedor excede o orçamento, porque estava esperando por um aplicativo e tentava culpar a TI por isso, eu diria:
Sua falta de planejamento para o que você precisa escrever software não é de minha responsabilidade, temos um conjunto padrão de ferramentas e, se essa caixa de ferramentas estiver faltando, você deve ter recebido seus pedidos para que mais ferramentas sejam expedidas, em vez de tentar me fazer pular através de aros para obtê-lo para você, porque seu prazo é amanhã.
Dito tudo isso, trancar os desktops dos desenvolvedores fede, se você pudesse eliminar os desenvolvedores ruins que pensam que têm direito a assistir sua coleção baywatch e ficam indignados ao saber que não podem instalar o babewatch player para visualizá-los ("mas é código aberto "), talvez você possa relaxar. Porém, para todo grande desenvolvedor que "recebe", há mais 10 que sua empresa contratará para esse aplicativo vertical de 200 milhões de dólares, e é para isso que você precisa prestar atenção.
EDIT: Certianly é bem possível que os desenvolvedores aos quais eu tenha sido exposto sejam incomumente monótonos (pesquisando a safra atual, apenas 1 ouviu falar em stackoverflow, para fornecer algum nível de referência). O ponto de vista inicial com o qual começo é "o que você precisa fazer o que a empresa está pagando para você fazer". Se você precisa de direitos de administrador, você os obtém, mas não deve começar com eles, e se eu puder lhe dar uma caixa que, francamente, não me importo com o que você faz com isso e que funciona, então estamos prontos.