Proyecto congelado: ¿qué debo dejar a las personas que están detrás de mí?

14

Entonces, el proyecto en el que he estado trabajando se va a congelar indefinidamente. Es posible que si y cuando el proyecto se descongela nuevamente, no se me asignará a mí ni a nadie del equipo actual. En realidad, heredamos el proyecto después de que se había congelado antes, pero el equipo anterior no dejó nada que nos ayudara a comprender incluso las necesidades básicas del proyecto, por lo que perdimos mucho tiempo para conocerlo bien. Mi pregunta es qué cree que deberíamos hacer para ayudar a las personas que están detrás de nosotros a comprender mejor las necesidades del proyecto, lo que hemos hecho, por qué lo hemos hecho, etc. Estoy abierto a otras ideas de por qué deberíamos irnos algunas pistas a los otros que trabajarán en este proyecto también.

Algunos pasos que ya hemos tomado:

  • documentación técnica (no completa pero al menos hay algo);
  • historial del sistema de control de fuente;
  • estimaciones sobre qué partes del proyecto necesitan mejoras y por qué creemos que sí;
  • Montón de pruebas unitarias.
  • rastreador de problemas con todos los tickets que hemos hecho ( EDITAR )

¿Qué opinas de lo que ya hemos preparado y qué más podemos hacer?

nyxz
fuente
2
considere una lista fácil de recuperar de tickets en el rastreador de problemas relacionados con el proyecto
mosquito
1
Como muchos de los "¿Por qué?" Respondieron en README.TXT con las fuentes del proyecto como sea posible.
@gnat gracias por la idea. Me recordó que olvidé mencionarlo. Usamos el rastreador de problemas con todas las entradas. Lo agregaré a la lista.
nyxz
1
Estoy derramando una sola lágrima de solidaridad por tu base de código abandonada. zdnet.com/blog/projectfailures/…
Ben DeMott

Respuestas:

9

Algunas cosas más a considerar

  • ¿La estructura del directorio del proyecto es sensata? ¿Has revisado los comentarios del código? ¿Es el registro de compromiso de alguna manera presentable?
  • Descripción general del propósito general (en lugar de técnico, que usted ha comenzado), Lectura recomendada sobre el proyecto, historial del proyecto (su ciclo de desarrollo, gerentes de proyectos anteriores, lista de personal, requisitos / especificación de características)
  • ¡Diagramas UML, diagramas de clase, diagramas de flujo de trabajo!
  • Las razones por las que el proyecto se ha congelado siempre son agradables.
  • Entorno de desarrollo, IDE que se han utilizado, herramientas de construcción, estos están cubiertos en los documentos técnicos ¿verdad?

Solo pensé en algunas de las cosas que me hubiera gustado ver en un proyecto que heredé recientemente. Lo que ya ha proporcionado es muchísimo más de lo que obtuve. Recibirá importantes puntos de karma por ayudar al próximo equipo :)

lwm
fuente
8

Las cosas que me gustaría tener al recoger un proyecto que alguien más ha pospuesto son:

Instrucciones de compilación, incluidas las últimas versiones de trabajo conocidas de todas las herramientas en la cadena de herramientas. Los compiladores, IDEs, etc. cambian con el tiempo, y es mucho más fácil trabajar con ellos si los desarrolladores anteriores me dejan instrucciones sobre cómo comenzar a trabajar.

Ejecute las instrucciones del entorno: ¿qué necesita estar en su lugar para ejecutar esto? Una mención de qué versiones es de nuevo útil. Recientemente recogí algo que requería un cierto conjunto de archivos para estar en un lugar determinado, y tuve que ir a interrogar a los otros desarrolladores para resolverlo. No es gran cosa ya que el otro desarrollador estaba disponible, pero si no lo hubiera estado, entonces habría sido problemático.

Alguna garantía de que el código comprometido con el repositorio realmente realiza el pago y la compilación. Una vez tomé un proyecto en el que los desarrolladores anteriores (afortunadamente todavía) habían hecho algunas cosas realmente extrañas con los Makefiles, de modo que no se podía construir el proyecto desde un pago limpio. No hace falta decir que primero tuve que rectificar ESO antes de poder hacer cualquier trabajo. Si los desarrolladores anteriores no hubieran estado disponibles, podría haber tardado mucho más en superar ese obstáculo.

Una declaración general de la intención del proyecto. ¿Para qué sirve este software? Tan breve como razonable, pero algún tipo de resumen puede ser realmente útil.

Michael Kohne
fuente
+1 para la cadena de herramientas completa. Toda la documentación en el mundo no ayudará si no puede construir y probar el software. Cuando es posible, me gusta incluir las imágenes de instalación para todas las herramientas (aunque hoy en día probablemente optaría por una imagen VM de algún tipo). ¡Nada peor que descubrir el proceso de compilación depende de un complemento de terceros de una compañía que ya no existe!
TMN
@ TMN, y es por eso que tiendo a evitar cosas como los complementos comerciales de IDE, etc. No confío en que podré reproducir mi entorno más tarde. Y después de haber trabajado en software de más de 20 años, NUNCA supongo que algo desaparece.
Michael Kohne
4

Un ScreenCast

Cuando dejé mi último trabajo, hice grabaciones de pantalla sin editar que, por lo que he escuchado, fueron muy útiles para incorporar nuevas personas. Llevé a mi equipo a una habitación, instalé un micrófono de condensador y les expliqué todo lo que sabía sobre el proyecto mientras grababa el audio y la pantalla. Luego, dejo que me hagan preguntas al respecto. Pudimos obtener mucha más información de la que pudimos grabar si me sentaba y trataba de escribir lo más rápido que podía todo el día.

Ryan Hayes
fuente
+1 Esto es muy simple, pero tiene mucho sentido.
lwm
2

Si está al tanto de la información, agregue Requisitos comerciales.

  1. ¿Qué quería el cliente?
  2. ¿Cómo facilitaron los cambios eso?
  3. ¿Cuáles fueron o son algunos de los desafíos para satisfacer las necesidades de los clientes?
  4. ¿Qué necesidades no fueron satisfechas y por qué?
Menefee
fuente
1

Una imagen de máquina virtual (es decir, vm-ware) de un sistema de desarrollo autónomo puede ser muy valiosa.

El año pasado me pidieron que arreglara un código vb3. Fue bastante difícil volver a crear un sistema en ejecución con vb3, windows95 y muchos controles ole instalados. Después de una semana me di por vencido :-(

[Actualización] ¿Alguien ha experimentado con la conversión de imágenes antiguas de máquinas virtuales para que puedan reproducirse en un reproductor de máquinas virtuales más nuevo?

También debe tener en cuenta que es posible que ya no sea posible ejecutar una imagen muy antigua en un hardware moderno / sistema operativo invitado.

k3b
fuente
Considere abrir una nueva pregunta sobre la actualización de máquinas virtuales.
@ Thorbjørn Ravn Andersen. Tienes razón. Reformulé la última parte de mi respuesta.
k3b