Comincio con la documentazione di progettazione. In particolare, la specifica - che racconta l'intento della cosa che si sta guardando.
Se possibile, guardo quindi le note di progettazione e la documentazione per avere un'idea generale di come è stato fatto, il processo di pensiero, lo stile e la natura delle persone interessate.
Se possibile, allora parlo con le persone che ci hanno lavorato - che cosa fa? Come? Perché? Dove sono sepolti i corpi?
Gli sviluppatori hanno la tendenza a saltare nel codice: "Lascia che ti mostri questo codice". Questo va bene per loro, ma tende a dirottare i miei bisogni - che è capire l'alto livello che dà contesto alle cose di basso livello.
Usa enormi quantità di potenza del cervello per guardare piccoli frammenti di codice, fuori dal contesto completo e capire qualcosa di significativo. Quindi, se possibile, indurre gli sviluppatori a parlare del PRINCIPIO, della struttura, delle unità, dei moduli, qualunque cosa conduca ad un apprezzamento del compito.
Solo allora vale la pena provare a entrare nel codice.
Nel grande schema delle cose, guardare il codice è come guardare una pagina piena di 0 e 1. C'è un significato, ma ci vuole molto tempo per capirlo. Ottenere un assaggio di dove cercare e quali parti sono significative aiuta a restringere lo spazio di ricerca.
Tutto ciò che ha detto - quando non c'è doco, persone e solo codice - non c'è altro da fare che guardare il codice.
In tal caso, normalmente non provo a capirlo con una lettura lenta e profonda, faccio un passaggio veloce, sfoglio la lettura di tutto. A volte si tratta solo di aprire file e sedersi premendo il tasto di scorrimento verso il basso. Puoi ottenere un incredibile apprezzamento di un'immagine grande semplicemente facendo questo. (E in alcuni casi ho persino scaricato file eseguibili e trascinato quelli in cerca di firme e modelli. Questo è stato incredibilmente fruttuoso negli ultimi 20 anni.)