The Challenge For Developers - Understanding Code
In study after study the results have been consistent: programmers spend a large amount of their time making sense of code. This is true whether the code was written by other team members or by the programmer himself just 4 months ago.
Code Understanding is a Large Problem
Whether it is understanding complex code, understanding code that was written by someone who just left the team, understanding new code when moving onto a new project, or just understanding code that was written by oneself just 3-4 months ago - making sense of code has been known to be a big challenge for software developers. There have been a number of studies that have been conducted by researchers studying developers' coding needs. Below are some of the major results.
Researcher | Result |
IBM Corbi, 1989 |
More than half of the effort in accomplishing a task for a programmer goes toward understanding the system |
Bell Labs Davison, 1992 |
New project members spend 60%-80% of their time understanding code. This number drops to 20% as the developers gain experience |
National Research Council in Canada Singer et al, 2006 |
Developers spending over 25% of their time either searching for or looking at code |
Microsoft D. LaToza, 2007 |
Equal amount of time is spent understanding code as is spent on other tasks such as designing, unit testing, and writing |
Microsoft Peter Hallam, 2006 |
More than 70% of a developer's time is spent understanding code, as it is a preliminary requisite |
Microsoft Cherubini, 2007 |
95% of developers agreed that understanding existing code is a significant part of their job. Over 65% indicated that they spend time understanding existing code at least once a day (with over 25% indicating that they do it multiple times a day) |
Where Tools Have Failed
The challenge when using most tools has been that they are hard to use, almost as hard as comprehending the code. Tools have traditionally focused either on the needs of designers and modellers by providing significant support for generating code from UML diagrams or on the needs of software architects by providing powerful technology that requires significant training.
Architexa provides a suite that supports an intuitive but powerful interface to UML diagramming by giving users an interactive exploratory visualization platform.