Saya mulai dengan dokumentasi desain. Secara khusus, spesifikasi - yang menceritakan maksud dari hal yang sedang dilihat.
Jika memungkinkan, saya kemudian melihat catatan desain dan dokumentasi untuk mendapatkan gambaran umum tentang bagaimana hal itu dilakukan, proses pemikiran, gaya dan sifat orang-orang yang bersangkutan.
Jika memungkinkan saya kemudian berbicara dengan orang-orang yang mengerjakannya - apa fungsinya? Bagaimana? Mengapa? Di mana mayat-mayat itu dikuburkan?
Ada kecenderungan di antara pengembang untuk beralih ke kode: "Biarkan saya menunjukkan kode ini kepada Anda". Ini bagus untuk mereka tetapi cenderung membajak kebutuhan saya - yaitu memahami level tinggi yang memberikan konteks pada hal-hal level rendah.
Ia menggunakan kekuatan otak dalam jumlah besar untuk melihat sedikit kode, di luar konteks lengkap, dan memahami apa pun yang bermakna. Jadi jika memungkinkan, minta pengembang untuk membicarakan PRINSIP, struktur, unit, modul, apa pun yang semuanya mengarah pada penghargaan terhadap tugas tersebut.
Hanya dengan demikian, ada baiknya mencoba masuk ke dalam kode.
Dalam skema besar, melihat kode seperti melihat halaman yang penuh dengan 0 dan 1. Ada artinya tetapi butuh waktu lama untuk mengetahuinya. Mendapatkan cita rasa ke mana harus mencari dan bagian mana yang bermakna membantu mempersempit ruang pencarian.
Semua yang dikatakan - ketika tidak ada dokumen, tidak ada orang, dan hanya kode - maka tidak ada apa-apa selain melihat kode.
Dalam hal ini, saya biasanya tidak mencoba dan memahaminya dengan membaca dalam-dalam yang lambat, saya melakukan quick pass, membaca sekilas semua hal. Terkadang ini hanya membuka file dan duduk dengan menekan tombol page-down. Anda bisa mendapatkan apresiasi yang luar biasa dari gambaran besar hanya dengan melakukan ini. (Dan dalam beberapa kasus saya bahkan string-dump file yang dapat dieksekusi dan menjaringnya, mencari tanda tangan dan pola. Ini telah sangat bermanfaat selama 20 tahun terakhir.)