Herramientas y mejores prácticas para entender el código de otra persona [cerrado]

A veces, uno necesita profundizar en el código de otra persona, entenderlo y tal vez refactorizarlo / arreglarlo. ¿Entonces me pregunto qué herramientas / prácticas utilizas para hacer eso? No se trata de ningún lenguaje o plataforma específica, sino de algunos consejos en general.
A mí mismo me resulta muy útil ejecutar el código en cuestión en el depurador (si es posible, por supuesto), establecer puntos de interrupción y recorrer el código.
También he usado algunas herramientas UML con funciones de ingeniería inversa para ver el panorama general. La visualización funciona bastante bien para mí.
Hay una herramienta, que he usado bastante:Entender. No es una herramienta UML, pero tiene un montón de visualizaciones para el código. Por ejemplo, el diagrama de flujo de control para una función, que no es parte de UML, pero a veces es muy útil.
He escuchado que a veces las personas escriben pruebas para el código que quieren aprender, pero no me ha funcionado. A veces el código que quiero entender no es muy comprobable.
Hay otras herramientas, como perfiladores, verificadores de dependencia, registradores, etc. ¿Alguien lo usa con algún éxito? ¿Y cómo?
¿Con qué primer uso empezar? Cual es el proximo

Respuestas a la pregunta(5)

Su respuesta a la pregunta