Prepare el plan de transferencia del código fuente [cerrado]

12

Nuestra compañía está a punto de adquirir un código fuente de un gran producto.

¿Qué hay que tener en cuenta cuando comienza la entrega, para asegurarse de que tengamos todo y podamos mantener ese producto en el futuro?

Ahmed Aswani
fuente
1
Si es posible, solicite la adquisición de algunos de los ingenieros que trabajan en el proyecto. Esto ayudará con el problema de continuidad de recursos.
tehnyit
No tenemos la suerte suficiente. no podemos hacer eso, lo máximo que podemos hacer es hacer que algún ingeniero esté disponible durante 3-4 semanas.
Ahmed Aswani
Encontré una respuesta relacionada, creo que completa la mayoría de las respuestas aquí abajo.
Ahmed Aswani

Respuestas:

8

En primer lugar buena suerte.

Estas son algunas de las cosas que probablemente debería pedir / recibir.

  • Lista de defectos conocidos.
  • Lista de incidentes y registros de problemas.
  • Detalles sobre los dos últimos lanzamientos como; cuánto tiempo tardaron en implementarse, hubo un período de aumento de incidentes después del lanzamiento, etc.
  • ¿Quiénes son los expertos clave en la materia?
  • ¿Cuáles son las horas de operación y soporte primario?
  • Cuánto tiempo ha existido el producto y qué tan estable es la base del código.
  • ¿Cuál es la hoja de ruta del producto?
  • ¿Qué es la pila tecnológica?
  • Cuáles son los puntos de integración y quién apoya los sistemas integrados.
  • ¿Hay algún componente DR?
  • ¿Quién es responsable de invocar a DR?
  • ¿Cuáles son los SLA de la aplicación o los objetivos del servicio?
  • ¿Cuál es el crecimiento esperado del sistema de archivos / base de datos / colas de mensajes?
  • Cuándo se realizan las copias de seguridad del sistema, quién es responsable y cuál es la estrategia de restauración.
  • Quién es responsable de administrar la cartera de productos.
  • Qué proveedor de SLA y detalles de contacto están en su lugar.
  • ¿Hay alguna programación por lotes o procesos de larga ejecución?
  • ¿Es el sistema completamente transaccional y cómo se gestiona la concurrencia?
  • ¿Cuál es el proceso principal de gestión de incidentes para la aplicación?
  • Qué, cuándo, quién y cómo se notifica a las partes interesadas sobre los cambios y las interrupciones.
  • ¿Cuáles son los períodos / tiempos de interrupción acordados?
  • ¿Dónde se guarda el código fuente?
  • Cómo se realiza una copia de seguridad del código fuente, se restaura y se gestiona el registro de cambios.
  • Dónde, qué y quién posee la arquitectura de la solución.
  • ¿Cuál es el objetivo de implementación (DEV, ST, UAT, Pre PROD, PROD, DR)?
  • ¿Cuándo se renuevan las licencias de terceros?
  • ¿Hay un gráfico RACI
  • Cuántos usuarios hay y dónde están ubicados.
  • ¿Cuáles son los problemas o quejas comunes de solución de problemas?
  • Quién es responsable de otorgar acceso al sistema.
  • ¿Cuándo se realizan las pruebas / auditorías de seguridad?
  • ¿Dónde está el CI y el proceso de construcción automatizado?
  • Quién es responsable de administrar el control de origen y el servidor de compilación.
  • ¿Dónde están las guías de instalación?
  • ¿Existe documentación para la infraestructura y la red de destino?
  • ¿Cuáles son los tipos de gravedad e impacto de los incidentes recientes?
  • ¿Existen instrucciones de configuración de la estación de trabajo para desarrolladores?
    • Qué ayudas y marcos de desarrollo se utilizan y si tienen licencia para su equipo.

Eso es todo lo que puedo pensar en este momento.

Kane
fuente
8
Defina "DR", "DEV, ST, UAT, Pre PROD, PROD, DR" y "RACI". Tenga en cuenta que algo de esto es irrelevante para el código fuente (es decir, los gráficos RACI son organizativos, no están relacionados con el código).
S.Lott
Esperaría acceso al repositorio de código fuente de whoel no solo a las versiones actuales del código fuente. Los comentarios en esto a menudo le dirán por qué el código se cambió de una manera particular. Eso es importante para iknwo para mantenerlo.
HLGEM
@HLGEM lo siento, mi declaración sobre las versiones actuales del código fuente implicaba (bueno para mí de todos modos) el código fuente completo para todos los componentes.
Kane
@ S.Lott DR se utiliza para describir la "recuperación ante desastres". Dev es un término común para el "Entorno de desarrollo", independientemente de lo que comprenda para su entorno. ST es la abreviatura de System Testing Environment. No estoy de acuerdo con que RACI sea una herramienta organizativa, ya que se utiliza para describir quién es responsable, responsable, informado y consultado. Entonces, cuando se compromete el código, ¿quién es el responsable? ¿A quién se consulta como parte de una revisión por pares? ¿Quién es informado de que una compilación tuvo éxito / falló? Y así sucesivamente
Kane
@kame: Por favor, actualice la respuesta a las definiciones. No agregue aún más comentarios a la respuesta. Por favor actualice la respuesta.
S.Lott
6

¿Qué hay que tener en cuenta cuando comienza la entrega, para asegurarse de que tengamos todo y podamos mantener ese producto en el futuro?

Las cosas que debe asegurarse son:

  • los ves construir el código con éxito
  • los ves construir pruebas unitarias y hacer que todos pasen
  • los ve ejecutar otras pruebas con éxito y todos pasan (aceptación, integración, etc.)
  • obtienes la base de datos de problemas abiertos (fácil de obtener si usan bugzilla o similar)
  • El producto se ejecuta (instrucciones de instalación).

Todo lo demás depende del encargado actual de entregarlo.

BЈовић
fuente
2
Sugeriría que se modifiquen para que tengan las palabras "Debe verlos ...", por ejemplo, "Debe verlos construir el código" y "Debe verlos ejecutar las pruebas unitarias", etc. La evidencia es importante aquí.
S.Lott
@ S.Lott Ya sea que muestren o escriban en un documento, no debería importar. Ahmed Aswani y su equipo van a mantener la aplicación, y deberían poder hacer todos los pasos anteriores por su cuenta. Modifiqué un poco la respuesta, pero no estoy seguro de si eso es lo que sugirió.
B 24овић
1
Una afirmación de que las compilaciones de código no es lo mismo que ver realmente cómo se construye el código. Estado allí. Hecho eso La documentación puede ser vaga, confusa o incompleta. Es el viejo principio de "Confiar pero verificar". Hasta que lo veas, no lo creas.
S.Lott
1
@ S.Lott Ok tiene sentido. Ahora que lo pienso, estaba en una situación similar antes, donde nos hicieron implementar algo en placas HW rotas. Pasamos buenos 4 meses antes de descubrir qué está realmente mal.
Bћовић
5

Debe asegurarse de que el equipo entregue el código que brindará soporte durante un período de tiempo. ¡Conviértalo en un contrato firmado!

Tendrás preguntas más adelante que no sabías que tenías que preguntar por adelantado, por lo que deben "quedarse" para explicarte cosas, no solo dar el código, los documentos y lo que sea que tengan en el proyecto.

Cuando tiene un traspaso de proyecto, pierde una cosa importante: la experiencia original del equipo.

A veces también obtienes algo que no esperabas: su hostilidad.

¿La empresa que realiza la entrega está haciendo un buen trato con la entrega? Si pierden negocios porque le entregan el proyecto, los desarrolladores (orgullosos) que crearon el código podrían resentir el hecho de que su "bebé" se regala. Puede obtener respuestas como: "Está en los documentos que obtuvo" ... incluso si no lo está.

Los aspectos técnicos son buenos para cubrir, pero también tienen en cuenta el lado humano de la misma.

YMMV!

JohnDoDo
fuente
0

¿El código viene con un conjunto de pruebas? ¿Todas las pruebas en el conjunto de pruebas pasan? ¿Cuánta cobertura tiene la suite?

Recomendaría que, al faltar un conjunto de pruebas, haga que construir el conjunto de pruebas y el marco relacionado sea su primera prioridad.

blueberryfields
fuente