Recuerde: no existe el entorno de desarrollo general "ideal" que se puede aplicar en todos los casos. A menudo, las limitaciones técnicas impiden la plena adopción de estas ideas. Como contratista de algunos años de renombre, he descubierto que el peor sistema con el que trabajé no tenía derechos de administrador local, cada pequeña instalación requería un llamado al soporte técnico, y siempre nos maldecían a los desarrolladores por pedirles demasiado.
El mejor escenario que tuve es el siguiente: si va a eliminar los derechos de administrador locales, proporcione una poderosa máquina virtual alojada localmente. Deben tener una DMZ en la red para que puedan hacer lo que quieran con la VM. Si estropean algo, simplemente puede restaurar una VM desde el archivo. Lo importante de este escenario es usar un buen repositorio de fuentes como GIT, Team Foundation Server, SVN, etc. Esta es la forma en que se supone que se debe hacer el desarrollo, sin depender de las estaciones de trabajo de los desarrolladores más allá de escribir el código. .
La lista de este y otros consejos:
permiten a los desarrolladores una total libertad dentro de sus máquinas virtuales (acceso a Internet, instalación de aplicaciones, etc)
uso de un repositorio de control de buena fuente, que cada desarrollador puede bifurcarse a voluntad de. Haga cumplir constantes comprobaciones (como una vez por hora) y tenga un servidor de compilación (integración continua o "CI") que verifique las compilaciones rotas. El servidor de CI debe enviar un correo electrónico a todos los integrantes del equipo cuando se rompa la compilación.
Ofrezca a cada máquina local los mejores recursos que pueda pagar. Escucho este argumento de que 4GB es suficiente para Visual Studio. Nada más lejos de la verdad. Puede optar por seguir con esto, pero créanme: cuando su máquina de desarrollo está buscando en el disco una y otra vez porque cada compilación ocupa mucha memoria, está perdiendo minutos cada hora, horas a la semana, en productividad perdida porque de máquinas lentas
Trate de no mirar a sus desarrolladores de manera detestable: lo sentirán a una milla de distancia y lo ofenderán por ello (¿quiere responsabilizarse de que los desarrolladores descontentos borren el código fuente o introduzcan errores?). Lo más probable es que la razón por la cual son "desarrolladores descuidados" es porque nadie más en la empresa puede gestionar personas. Los mejores equipos están liderados por gerentes de proyectos inteligentes, abiertos y educados. Obtienen lo que necesitan cuando lo necesitan. El costo del software no es NADA en comparación con el costo de los salarios de un desarrollador; sin embargo, sigo escuchando que este o aquel gerente rechazan un producto porque cuesta un gran premio. La última vez fue XML Spy, porque "el Bloc de notas será suficiente". Claro que sí, al igual que las piernas son suficientes en lugar de autos, pero no quiero caminar a todas partes, ¡maldita sea!
Para ir contra la corriente - en realidad creo que eliminar la capacidad de administración de todos los desarrolladores es algo bueno SI puedes crear un usuario de poder con más habilidades. El mayor problema que encuentro del equipo es que las personas aplican parches o instalan software adicional que no han borrado con la administración. La última vez que alguien instaló ReSharper y luego se quejó de que la máquina se estaba moviendo lentamente. Tenían una máquina de 2 GB y ReSharper 5 necesita 4 GB como mínimo para ejecutar Visual Studio 2010.
Adicional: aprenda a desarrollar sin el uso de un mouse. Este es un concepto radical que conozco, pero el mouse es más lento que los atajos de teclado. A menos que el icono esté en la esquina de la página, tarda un segundo o dos en encontrar un ícono y hacer clic. Recordar un atajo es más rápido.
Gracias por la información. Realmente solo quiero lo mejor para los programadores y para el departamento de TI. Ahora estoy pensando que darle a cada programador su propia máquina virtual para el desarrollo mientras se eliminan los privilegios locales de administración en su máquina será la mejor manera. ¿Hay algo que podamos usar para automatizar las compilaciones de su código .NET de SVN cada noche en el servidor de prueba? – zewsk
¿Has oído hablar de CruiseControl.Net? Creo que podría hacer las compilaciones automatizadas para ti. –