Hace aproximadamente 3 meses, nuestro desarrollador y diseñador web líder (la misma persona) dejó la empresa, los pastos más verdes fueron la razón de la partida. Bien por ellos, digo. Mi problema es que su departamento estaba completamente indocumentado. Las cosas han sido difíciles desde que el líder se fue, hay mucho conocimiento, tanto el conocimiento teórico que usamos para citar nuevos proyectos como el conocimiento técnico / de implementación de nuestros productos existentes que hemos perdido como resultado de su partida. Mi rol normal es como gerente de producto (para nuestros propios productos) y como analista de negocios para algunos de nuestros trabajos de consultoría basados en proyectos. Me he enseñado a mí mismo a codificar durante el año pasado y en un esfuerzo por seguir avanzando, yo ' He asumido la tarea de configurar mi computadora portátil como una máquina de desarrollo con la esperanza de implementar algunas de las solicitudes de funciones más fáciles y corregir algunos de los errores obvios que se envían a nuestro sistema de tickets. Pero nadie sabe cómo tomar una nueva máquina Windows y configurarla para que funcione sin problemas con nuestras aplicaciones de producción.
He solicitado a mi jefe, que todavía está en contacto con el desarrollador que se fue, pedirles que documenten y creen un proceso para incorporar un nuevo desarrollador, instalación de software, paquetes necesarios, proceso para implementar en los servidores de aplicaciones de producción, etc. esto existe, y estoy girando las ruedas tratando de hacer que mi computadora funcione como una máquina de desarrollo funcional. Pero ella no parece entender la necesidad de que tal proceso exista. Aparentemente, el nuevo desarrollador que reemplazó al que se fue ha estado usando una máquina preconfigurada para nuestro entorno, por lo que incluso el nuevo desarrollador no podría configurar una nueva máquina si agregamos otro desarrollador.
Mi pregunta es de dos partes:
¿Me equivoco al suponer que debería existir un proceso para incorporar y configurar una nueva computadora para que sea parte de nuestro ecosistema de desarrollo?
¿Estoy siendo un bebé relincho y debo resolver el proceso y crear un documento por mi cuenta?
fuente
Respuestas:
En primer lugar, es extraño que un desarrollador tenga que configurar el entorno de trabajo. Esta tarea generalmente es para los administradores del sistema. Por lo tanto, teniendo en cuenta que esto no es algo que deba hacer, tiene derecho a esperar que alguien más lo haga por usted.
En la mayoría de las empresas (si no todas) hay un período de aviso. Por lo general, varía de una semana a un mes. Pero de todos modos, ese tiempo es suficiente para que la persona que se va a ayudar a la empresa _ haga documentación, agregue comentarios al código, documente la arquitectura, etc. Me temo que es demasiado tarde para hacerlo ahora, pero no lo olvide. la próxima vez que alguien se vaya.
Tiene toda la razón al esperar que debería haber un proceso para configurar un nuevo entorno. De hecho, si su empresa crece y usted tiene más desarrolladores, enfrentará el mismo problema _ esto podría ser un argumento pesado para convencer a su jefe. Incluso podría usar el argumento para convencer a la gerencia de que contrate a un administrador del sistema para tales tareas (supongo que no tiene uno ya que enfrenta el problema). Además de configurar el entorno de desarrollo, si tiene una nueva máquina, debe integrarse en la red local, etc.
fuente
No. Tener estos procesos evitará los problemas que ya ha enfrentado. En algunas organizaciones más grandes, hay una imagen de disco estándar de cómo debería ser la máquina de un desarrollador. Cuando se contrata a un nuevo desarrollador, una computadora disponible con las especificaciones de hardware adecuadas se borra y se vuelve a crear una imagen usando esta imagen de disco de "desarrollador". Las personas tecnológicas que hacen esto siguen una lista de verificación estándar (a veces incluye la instalación de software de postimagen para ciertas herramientas no incluidas en la imagen) para asegurarse de que todas las máquinas de desarrollador comiencen de la misma manera (los usuarios pueden ajustarlas y modificarlas después de obtenerlas). ellos, ¡bajo su propio riesgo!).
Del mismo modo, algunas aplicaciones con una configuración notoriamente compleja tienen documentos que explican a los nuevos desarrolladores cómo verificar el código, configurar el servidor y construir e implementar localmente la aplicación. Una aplicación incluso tiene un script de configuración solo para estaciones de trabajo para facilitar este proceso.
Lo eres, pero solo un poco. Una cosa es decir que todo esto debería haberse documentado hace mucho tiempo, y el desarrollador que se fue debería haber realizado una transferencia completa de conocimiento a sus días de reemplazo (o semanas, si es posible) antes de partir. Parece que nada de eso sucedió, y todo está en el pasado ahora de todos modos.
¿Y ahora qué? Dudo que el desarrollador que se fue sea de mucha ayuda. Ya tienen un nuevo trabajo diario y quién sabe con qué están ocupados en su propia vida. Dudo que haya algún fundamento legal que su gerente pueda usar para obligarlo a ayudar. Sería bueno si se tomaran unas horas de su tiempo para responder algunas preguntas, pero no cuenten con eso. Parece que estás atrapado descubriendo la mayor parte por ti mismo. Esto le brinda la oportunidad de documentar a fondo el proceso adecuado y hacerlo bien. ¡Los que te siguen te lo agradecerán! ¡Buena suerte!
fuente
Lo primero es lo primero, debe salir de Visual SourceSafe. Creo que hay que decirlo. Por lo menos pasar a TFS. Y también hay otras opciones.
Ahora que eso está fuera del camino. Creo que este es un caso de "si quieres que las cosas se hagan bien ..." Tu objetivo final debe ser que un desarrollador pueda encender su máquina recién instalada, conectarse a la fuente, obtener la última, presionar f5 (o lo que sea que uses para tu ejecutar acceso directo a la aplicación) y tener una aplicación que funcione.
Una opción es construir un entorno de trabajo desde cero y usarlo como una imagen de desarrollador de referencia. Cuando se incorpora un desarrollador, todo lo que tiene que hacer es implementar esa imagen en su máquina y debería funcionar.
Hay algunos libros sobre cómo mover su entorno hacia un estado más libre. Me gusta la entrega continua y la integración continua de la serie Fowler, pero hay otras opciones disponibles.
fuente
Cuando comencé mi trabajo actual, teníamos un procedimiento documentado para configurar una PC de desarrollador.
Seguí el procedimiento por mi cuenta, evitando decididamente la "ayuda" del equipo existente.
(El conocimiento debe estar incorporado en el documento, no el desarrollador que ha estado más tiempo).
Marqué el procedimiento con cambios en la línea roja donde estaba mal o incompleto, y una semana después tuve dos cosas, un procedimiento que funcionó y una PC de desarrollo que funcionaba.
Después de un fallo del disco duro un año después, la reconstrucción tardó 2 días.
Dígale a su jefe: si el disco duro falla en esa PC, ¡no habrá desarrollo!
Decidí que 2 días era una pérdida de dos días ...
Ahora usamos máquinas virtuales con imágenes de disco para cada proyecto de desarrollo.
El programa de instalación consiste en copiar la imagen de VM en la PC de destino e iniciarla. Hay un ícono llamado "runme" en el que haces clic, pregunta tu nombre de usuario y luego cambia el nombre de usuario utilizado para acceder al código fuente por el tuyo. También cambia el campo de autor del documento en blanco del IDE a su nombre.
(Escribí runme en aproximadamente 2 horas, somos desarrolladores, programamos nuestros problemas)
Nuestras PC de desarrollo son máquinas estándar, excepto un servidor VM.
Estamos usando virtualbox, que no es costoso.
El uso de máquinas virtuales hace que reemplazar una máquina sea una tarea fácil de 20 minutos . Esta tarea sería más rápida si tuviéramos un gigabit ethernet para copiar la VM.
Discoteca completa: soy el líder del equipo donde trabajo y mi gerencia me da rienda suelta.
fuente
Debería haber alguna documentación que diga qué software se requiere para compilar y ejecutar la aplicación.
También debe haber documentación que describa lo que requiere un cuadro de cliente para ejecutar la aplicación.
No son la misma lista.
Si su empresa contratara un nuevo desarrollador, ¿cuánto tiempo se esperaría que comenzaran a codificar? ¿Un día? ¿Una semana? Sin saber qué software se requiere para compilar el código, este puede ser un proceso de prueba y error que podría llevar un tiempo. Pero, solo debería ser algo que deba hacerse una vez.
Mi pregunta es, ¿qué está haciendo el nuevo desarrollador? Este debería ser su trabajo, no el tuyo. Él es el reemplazo del otro tipo. Sí, apesta que haya entrado en un entorno sin documentación, pero debería ser su tarea documentar las cosas. Haga que se siente y descubra cuál es el entorno de desarrollo y que lo documente. Haga que descubra y documente lo que se requiere para ejecutar la aplicación en un cuadro de cliente.
En cuanto a contactar al desarrollador anterior, no lo haría. En mi humilde opinión, si un desarrollador deja una empresa sin documentación o transferencia de conocimiento, esperan ser llamados para hacer algún trabajo a un ritmo de consultoría. No es profesional y no debe ser recompensado. Sí, puede tomar un tiempo extra para resolverlo, pero usted / el equipo aprenderán algo en el proceso y la documentación producida estará actualizada y actualizada.
fuente