En un entorno corporativo, ¿deberían los desarrolladores tener derechos de administrador en su computadora? ¿Por qué?
Entorno tecnológico:
- Windows 7
- Visual Studio 2008 y 2010
- servidor SQL
En un entorno corporativo, ¿deberían los desarrolladores tener derechos de administrador en su computadora? ¿Por qué?
Entorno tecnológico:
Respuestas:
¿Deberían ellos? Eso depende de la corporación. Personalmente, creo que está bien siempre que haya algunas reglas entendidas.
Por lo general, diría que sí. Cosas como los depuradores requieren derechos de administrador bastante altos si no es que funcionan correctamente. Los desarrolladores a menudo necesitan instalar software aleatorio que puede tardar días o semanas en instalarse al pasar por los canales. Durante ese tiempo, el desarrollador generalmente deja de trabajar y le cuesta a la empresa nada más que dinero, especialmente si el desarrollador es un consultor.
Hay ciencia y arte en desarrollo; no es tan simple como "saber" lo que necesitamos. Si ya tuviéramos la respuesta, la mitad de nuestro trabajo sería discutible; Encontrar el enfoque correcto es a menudo iterativo, y puede involucrar múltiples herramientas de maneras impredecibles. Requerir un intermediario para instalar cada uno de estos (a menudo con alta latencia), solo para encontrar (aproximadamente una hora) que para su escenario se necesita el "complemento de herramienta súper uber" es una tontería.
Si bien una VM es ideal para esto, también hay muchas herramientas de desarrollo que no pueden ejecutarse (correctamente, o incluso en absoluto) en una VM, porque ellas mismas son una VM, y no me refiero a cosas como JVM; Me refiero a emus / vms de máquina completa, como kits de herramientas de dispositivos. La compatibilidad allí está mejorando.
Además, la mayoría de las herramientas de desarrollo tienen una huella muy grande, mucho más grande que las herramientas "normales" (lo que hace que el alojamiento de VM sea un poco más doloroso de lo que cabría esperar) y, a menudo, por la naturaleza de un depurador de procesos, se requiere un acceso elevado. Sin mencionar el hecho de que pueden ser intensivos en GUI; intentar ejecutar a tiempo completo en una GUI de VM es ... extremadamente doloroso.
El rendimiento es enorme aquí; ¿Crees que está bien que los usuarios esperen 3 segundos después de cada pulsación de tecla en Word para que se registre su clave? No estoy bromeando: las herramientas de desarrollo en máquinas virtuales, etc. pueden ser tan desagradables; para la mayoría de los propósitos de desarrollo necesita capacidad de respuesta. Interrumpir el flujo de la lógica compleja del cerebro al teclado puede hacer que sea casi imposible hacer el trabajo. Y odio decirlo, pero sí: el tiempo de desarrollo es costoso.
En un entorno de Windows, y especialmente cuando se usan productos de desarrollador de Microsoft, el desarrollador requerirá derechos de administrador en su máquina. Si les niega esos derechos, se restringirá su capacidad para hacer su trabajo, si no se evita por completo.
Al ser un desarrollador, clasifico un nivel de privilegio por encima del usuario básico, pero por debajo de los administradores del sistema.
Es posible que, en ocasiones, necesite una biblioteca adicional instalada para que la aplicación que estoy desarrollando funcione en el entorno de producción, dicho esto, tengo una regla estricta que desarrollo: "Para cualquier aplicación que requiera bibliotecas de terceros, las bibliotecas deben instalarse en un entorno de espacio aislado antes del despliegue de producción y, en algunos casos, antes del desarrollo de la aplicación ".
El administrador de sistemas con el que trabajo y estoy de acuerdo con esto, y entre los dos, aplicaremos activamente esa regla y retrasaremos cualquier implementación de aplicación que no haya pasado las "verificaciones de dependencia".
Sin embargo, para responder a su pregunta, sí, los desarrolladores deberían tener acceso completo a sus propias máquinas, pero esas máquinas deberían estar aisladas del entorno en el que finalmente se implementará la aplicación. En ese caso, incluso el despliegue de la aplicación debe estar protegido hasta que se considere seguro implementarlo en el entorno de producción.
Descargo de responsabilidad: soy un desarrollador.
Para mí, esta pregunta (y las respuestas) parecen estar atacando el problema desde un enfoque incorrecto, es decir, el debate se centra en lo que los administradores quieren / necesitan frente a lo que los desarrolladores quieren / necesitan. Pero especificó que estamos en un entorno corporativo, así que veámoslo de esa manera.
Así que imaginemos que estamos discutiendo esto frente al director de TI u operaciones, o quien controla nuestro presupuesto , y haga estas preguntas.
Con estas preguntas respondidas, puede tomar una decisión informada en lugar de una apasionada.
Para su entorno específico , hay algunas cosas que requieren derechos de administrador (consulte Derechos de usuario y Visual Studio ): si no están haciendo esas cosas, puede responder las preguntas 2 a 4.
Como consultor, he visto a los dos extremos de esta política, y mientras que siempre quiere tener acceso de administrador a una máquina, en algunos casos, no tenía sentido. Y no estoy seguro de cuál es la causa y el efecto, pero sin excepción, todos los lugares que he visto haciendo el desarrollo de Windows donde los desarrolladores tenían acceso de administrador también tenían MUCHA mayor productividad de cada desarrollador que los lugares donde estaban bloqueados.
Creo que estás haciendo una pregunta incorrecta, deberías preguntarte:
¿Funcionará un buen desarrollador para un empleador que no le otorga derechos de administrador en su PC?
Lo que alguien "necesita" y lo que espera a menudo no es lo mismo, después de todo, no necesita permitir que un desarrollador tome café en horas de trabajo, pero si no lo hace ...
(Asegúrese de aclarar su política en la etapa de la entrevista, de lo contrario, puede hacer que las personas tomen el trabajo que luego desprecian a su empresa debido a la falta de derechos de administrador; ¡no espere que los programadores piensen de manera lógica sobre este tipo de cosas! )
En realidad, depende más de a quién le pregunte que quién realmente lo necesita. Si le preguntas a los grupos corporativos de TI y de gestión de riesgos, estarán sobre ti con historias de horror (y si te lo van a dar, exigen una cabra sacrificada en un santo vínculo de promesa de que no serán responsables), los desarrolladores por otro lado, exige derechos de administrador principalmente porque el trabajo es estresante y exigente sin tener que pedir permiso al servicio de asistencia para ir a tomar una fuga. El triste estado de las cosas es que ahora se trata más de la lucha por el poder y el ejercicio del poder que de las necesidades comerciales y de productividad (por ejemplo, se reduce a quién hará que el otro salte a través de los aros)
En mi humilde opinión, el mejor ambiente de trabajo que he visto hasta el día de hoy es donde los dos grupos se mantienen separados. Los desarrolladores tienen su propio dominio en el bosque (por lo que TI controla lo que este dominio y sus usuarios pueden hacer en el resto de la compañía) y todos son administradores locales con muchachos con MCSE que actúan como administradores de dominio local, tienen su propio entorno de prueba y pueden hacer más o menos lo que quieren y necesitan en su LAN local con una sola política de TI (sin software pirateado). La TI corporativa no es responsable y no brinda soporte a los desarrolladores y solo aplica algunas reglas corporativas de alto nivel (no Facebook, porno o similar a través del firewall, los desarrolladores no permiten meterse con la LAN corporativa) y todos tienen VPN basadas en RSA para trabajar desde casa lo que los coloca directamente dentro de su LAN. Aseado, ¿no es así?
Diría que los derechos administrativos son importantes para el proceso de desarrollo. Sin embargo, dada la relativa facilidad de uso de una VM para sandbox, no hay ninguna razón por la que no pueda colocarlos en una VM y mantener la seguridad.
Todo sale mal y puedes borrarlo y reconstruirlo en cuestión de minutos.
¡Seguro! Por lo general, gran parte del desarrollo que ocurre puede o no estar en un entorno virtual. Los derechos de administrador ayudan a superar muchas de las anulaciones de manejo de servicios, entradas de registro e IIS localmente. Por otro lado, depende de cuánta confianza tengas en tus desarrolladores.
Como desarrollador, es frustrante cuando algo no funciona porque no tenemos acceso.
Depende Como desarrollador, uno siempre debe operar según el principio de los privilegios mínimos. Si trabaja como contratista del gobierno, puede estar obligado por contrato a no tener acceso de administrador, por ejemplo.
Como desarrollador de Java, apenas he tenido necesidad de tener derechos de administrador en mi máquina de forma continua . Sin embargo, hay casos legítimos en los que necesita acceso de administrador a pedido (es decir, necesita mover su computadora portátil a través de dominios físicamente separados, y necesita cambiar su NIC en consecuencia). Esa fue la única vez que realmente necesité Acceso de administrador permanente y continuo a mi máquina.
A veces necesita acceso de administrador porque TI no tiene suficiente personal (o es incompetente o está empantanado en burocracia). Pero si trabaja con un departamento de TI competente, pueden instalar las cosas por usted de forma remota (o al proporcionar instaladores personalizados que "funcionarán como "admin e instale las cosas por usted simplemente haciendo clic en ellas.)
Entonces la respuesta (nuevamente) es: depende. ¿Tiene un personal de TI receptivo que pueda instalar cosas a pedido (o dentro de un tiempo razonable)? ¿Los desarrolladores realmente lo necesitan para las tareas por las que se les paga ?
Si los desarrolladores lo necesitan verdadera y legítimamente (como en "Literalmente NO podré hacer nada sin él" ) en lugar de una conveniencia (como en "Quiero instalar lo que quiera" ), y si es compatible con TI no responde lo suficiente (por cualquier razón), entonces sí, deberían tener acceso de administrador a sus máquinas.
De otra manera no. Recuerde el principio del menor privilegio , gente.
Hay desarrolladores y hay desarrolladores. Si un "desarrollador" cuesta unos $ 40 / hora, JBoss java está escribiendo reglas para un motor de reglas, entonces, por supuesto, no. Si un "desarrollador" es un tipo de C / Assembly de $ 350 / hora que hace que su software de edición de video se ejecute lo más rápido posible en una GPU, entonces sí, por supuesto.
Para las corporaciones que están preocupadas por la seguridad, tendrán personas de seguridad que dictarán e intentarán hacer cumplir una política que funcione con su modelo de desarrollo y sistemas. En un entorno Windows, la mayoría de las personas le dirán que debe tener derechos administrativos en el host en el que se están desarrollando para poder realizar sus tareas.
Esto no es necesariamente cierto...
Puede crear una política personalizada y hacer que todos los programas y funciones trabajen con usuarios de desarrollo en un sistema. Solo tendrá que ponerse sucio y meterse en el meollo del asunto con permisos personalizados en los directorios del programa / sistema con grupos o grupos personalizados según el diseño deseado.
La mayoría de las corporaciones dirán que es muy peligroso para los desarrolladores tener sistemas en redes abiertas porque los piratas informáticos podrían obtener el control y comenzar a compilar sus propias herramientas, por lo que realizar la tarea vale la pena el riesgo en mi opinión profesional.
Los desarrolladores deberían (idealmente) tener dos inicios de sesión de dominio.
Uno que tiene derechos de administrador local (para el trabajo de desarrollo) y uno que tiene los mismos derechos que todos los demás en la empresa. Luego, pueden probar su trabajo en un conjunto representativo de permisos.
Esto debería reducir la probabilidad de que ItWorksOnMyMachine-itis aparezca ocasionalmente .....
Tengo que (aparentemente) proporcionar la voz disidente y decir no solo no, sino "diablos no". No tengo ningún problema para otorgar derechos de administrador de desarrolladores en una máquina virtual de espacio aislado que no tiene acceso a la red. Zypher tenía casi razón (corrección en negrita):
"1. Ser administrador en mi casilla es un privilegio, NO un derecho". Estos sistemas son activos corporativos de los que soy responsable en última instancia. Cuando Joe Developer instala su copia pirateada de Microsoft Bob ("porque lo necesitaba "), no será él quien tenga que explicar cómo no se encontró antes de la auditoría. Los desarrolladores habitualmente piensan que de alguna manera las reglas corporativas simplemente no se aplican a ellos. Al darles una máquina virtual de espacio aislado, pueden seguir todas las reglas que todos los demás deben seguir (ya que ahora solo TI puede copiar archivos hacia y desde el sistema). Mágicamente, el sistema de solicitud vuelve a ser utilizado por los desarrolladores, el cielo ya no se está cayendo cuando Joe Developer destroza su caja de desarrollo: solo pide una nueva (o una restauración si le han pedido copias de seguridad)
El Sr. Denny mencionó que los desarrolladores cuestan dinero cuando tienen que esperar a que se instalen las aplicaciones, A. hola ... mi tiempo suele ser tan valioso como Joe Developer (generalmente más porque mantengo el crapware existente en funcionamiento) y realmente tengo que mencionar todo el tiempo que pasé ayudando al desarrollador de Joe a depurar su última obra maestra), y B. cuando el desarrollador supera el presupuesto porque estaban esperando una aplicación y trataban de culparla, diría:
Su falta de planificación para lo que necesita para escribir software no es mi responsabilidad, tenemos un conjunto estándar de herramientas y si esa caja de herramientas falta lo que necesita, debería haber recibido sus solicitudes para acelerar más herramientas en lugar de intentar hacerme saltar a través de aros para conseguirlo porque su fecha límite es mañana.
Habiendo dicho todo esto, bloquear los escritorios de los desarrolladores apesta, si pudieras eliminar a los malos desarrolladores que piensan que tienen derecho a ver su colección baywatch y se indignan al saber que no pueden instalar el reproductor de bebés para verlos ("pero es código abierto ") es posible que pueda relajarse. Pero por cada gran desarrollador que lo "consigue", hay 10 más que su empresa va a contratar para esa aplicación vertical de 200 millones de dólares, y eso es lo que debe vigilar.
EDITAR: Ciertamente es bastante posible que los desarrolladores a los que he estado expuesto sean inusualmente aburridos (encuestando el cultivo actual, solo 1 ha oído hablar de stackoverflow, para dar un cierto nivel de referencia). El punto de vista inicial con el que empiezo es "qué necesita hacer lo que la compañía le está pagando". Si necesita derechos de administrador, los obtiene, pero no debe continuar con ellos y si puedo darle una caja que, francamente, no me importa lo que le haga y que funcione, entonces ambos estamos listos para comenzar.