ACM Home Page
Please provide us with feedback. Feedback
Code Spelunking: Exploring Cavernous Code Bases
Full text HtmlHtml (24 KB),  PdfPdf (1.24 MB)
Source
Queue archive
Volume 1 ,  Issue 6  (September 2003) table of contents
Developer Tools
FEATURE: Features table of contents
Pages: 42 - 48  
Year of Publication: 2003
ISSN:1542-7730
Author
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 58,   Citation Count: 0
Additional Information:

abstract   index terms   collaborative colleagues   peer to peer  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/945131.945136
What is a DOI?

ABSTRACT

Try to remember your first day at your first software job. Do you recall what you were asked to do, after the human resources people were done with you? Were you asked to write a piece of fresh code? Probably not. It is far more likely that you were asked to fix a bug, or several, and to try to understand a large, poorly documented collection of source code.

Of course, this doesn't just happen to new graduates; it happens to all of us whenever we start a new job or look at a new piece of code. With experience we all develop a set of techniques for working with large, unfamiliar source bases. This is what I call code spelunking.

Code spelunking is very different from other engineering practices because it is done long after the initial design and implementation of a system. It is a set of forensic techniques used after the crime has been committed.

There are several questions that code spelunkers need to ask, and tools are available to help them answer these questions. I will look at some of these tools, addressing their shortcomings and pointing out possible improvements.


Collaborative Colleagues:
George V. Neville-Neil: colleagues

Peer to Peer - Readers of this Article have also read: