Beyond the Docs: Why Professional Developers Value Naming Over Comments
12825_Dealing with identifiers and comments in source code comprehension and maintenance results from an ethnographically-informed study with students and p
This paper presents an ethnographically-informed qualitative study investigating how identifiers and comments influence source code comprehension and maintenance. Comparing Bachelor students with young professionals, the study reveals that while naming conventions are universally vital, professional developers prioritize high-quality identifier names over comments for program understanding.
TL;DR
Is comprehensive documentation actually the key to maintainable code? An ethnographically-informed study suggests otherwise. By observing students and professionals in the trenches of Java maintenance, researchers found that professional developers largely ignore comments, choosing instead to rely on high-quality identifier names and naming conventions like CamelCase. This shift in perspective highlights a critical "trust gap" in software documentation.
Background: The Qualitative Gap in Software Engineering
Most software engineering research treats developers like black boxes: input a tool, measure the output speed. However, this paper takes a different route by utilizing Ethnography. Instead of just measuring time, the researchers "immersed" themselves in the development process to understand the values and beliefs that drive code comprehension.
Problem & Motivation: The Myth of the Helpful Comment
The industry standard has long dictated that "good code is commented code." Yet, maintainers often find that comments lie—they go stale while the logic evolves. The authors noticed a discrepancy between what practitioners say they do (read docs) and what they actually do (grep the code). The goal was to pinpoint exactly how identifiers (variable/method names) and comments function as cognitive aids during real-world maintenance.
Methodology: The "Immersive" Observation
The study involved 30 participants (18 Bachelor students and 12 young professionals) tasked with modifying a Java-based "Guess My Number" game.
The Workflow
- UI Inspection: Familiarizing with the application behavior.
- Source Code Exploration: Navigating classes and packages.
- Modification: Implementing a logic change (limiting guess attempts).

The observer participated in conversations and took field notes, acting as a "participant-observer" to capture the nuance of why a developer chose a specific search strategy or why they skipped over a block of Javadoc.
Core Insights: The "Trust No Comment" Rule
The findings revealed a stark divide in how experience levels handle code metadata:
- The Professional Skepticism: Professionals either skipped comments or scanned them at lightning speed. Their reasoning? A built-in distrust of documentation that likely hasn't been updated. Instead, they used UI elements (labels and tooltips) as "anchors" to search for corresponding strings in the code.
- The Student Diligence: Novices read comments religiously before touching code. For them, comments were a safety net, though they struggled more with the actual implementation.
- The Universal Standard: Both groups agreed that Naming Conventions (CamelCase) are non-negotiable. Using short, mnemonic, and meaningful names was seen as the primary factor in reducing "cognitive load" during maintenance.

Deep Insight: Naming as the "Primary Documentation"
The study’s most significant finding is that identifiers are the documentation. In the eyes of a professional, a well-named method like generateSecretNumber() is more valuable than a 10-line comment explaining the same thing. This suggests that the "Self-Documenting Code" philosophy isn't just a mantra—it's how experts actually process information.
Quantitative Evidence
While qualitative in nature, the data showed that professionals modified code significantly faster than students (p-value < 0.001, large effect size). This speed wasn't just due to typing faster; it was due to more efficient "concept location"—using the IDE's search tools to find the right identifiers without getting bogged down in text-heavy comments.
Critical Analysis & Future Outlook
While the study is robust, it has limitations:
- Scale: The Java application was relatively small (853 SLOC). In a massive enterprise monolith (1M+ lines), comments or high-level architecture docs might become indispensable again.
- Language: The code used Italian identifiers. While this controlled for English proficiency, it’s worth exploring if the same "ignore the comments" trend holds in multi-national, English-standard open-source projects.
The Takeaway for Engineers: If you have 10 minutes to improve your code, don't spend it writing comments. Spend it refactoring your variable names. Clear semantics beats verbose documentation every time.
Future Research: The authors suggest investigating how code and comments co-evolve. Can we build semi-automated tools that ensure when a method name changes, its surrounding "contextual hints" stay in sync? This study suggests that until we do, developers will keep trusting the code and ignoring the notes.
