Software developers spend much of their time exploring the source code of their software systems, seeking to understand how it works and to assess the implications of making a change. But many developers report occasionally becoming disoriented during this exploration, where they become "lost" and are unable to recall what they were doing and why they were looking at some program element. Becoming disoriented is frustrating, and recovering from disorientation is difficult.
Disorientiation is not unique to programming. It occurs in other fields too, some with potentially terrible consequences.
In this talk, we discuss findings from research into how and why disorientation occurs. Using the Eclipse IDE as an example, we examine how user interfaces can lead to disorientation, and discuss techniques to help keep our users oriented. These techniques are broadly applicable outside of the realm of programming. We introduce Ferret, a freely available search tool for the Eclipse IDE that is specifically designed to help keep developers oriented.
Ferret is available at https://github.com/briandealwis/ferret.