Cómo gestionáis las actualizaciones de software (fw/lib/lang)? Imagino que si lo lleváis al día la mayoría de breaking changes se pueden aislar y tratar de forma individual (que siempre habrá algún cambio así para las mayor-y-no-tan-mayor updates). Dependiendo del ecosistema supongo que habrá una guía más o menos profunda al respecto (sobre todo si hay muchos cambios importantes), pero además de eso qué procedimientos son útiles? Se me ocurren estos:
- migrar en vacío una app hueca en la que intentes imitar la arquitectura y/o dependencias
- verificar que todas las partes móviles externas funcionan bien (por ejemplo conectores/drivers de db)
- comprobar que los flujos de trabajo funcionan igual o hay reemplazos (por ejemplo generación de código o cualquier feature del lenguaje que pueda haberse actualizado).
- dependiendo de la situación, meter adaptadores/fachadas entre los fw/libs y tu aplicación (esto es algo muy difícil de justificar y que parece mala idea de base, aunque supongo que depende del contexto?).
- comprobar si el nuevo lang es turing complete.
Aparte de eso y alguna cosa que te puedas saber por ciencia infusa (que haya cambiado cómo algunas dependencias hablan con el OS, cambios en valores por defecto, como protocolos a usar y cosas así) qué más cosas son útiles?
Le doy vueltas y el 90% parece "tengo la experiencia de haberlo hecho 3 veces y ha explotado por estos 28 sitios distintos en el pasado".