Software development is a challenging and time intensive
task that requires much tool support to enhance software comprehension
and collaborative work in software engineering. Many of the popular
tools used in industry offer simple, yet highly effective, graphical aids to
enhance programming tasks. In particular, tree views are frequently used
to present features in the software and to facilitate navigation. General
graph layouts, popular in many academic tools, are seen less frequently
in industrial software development tools. Interactive graphs can allow a
developer to visualize and manipulate non-structural relationships and
abstractions in the software. In this presentation, I explore how graphical
techniques developed in academia can improve “flow” for programmers
using industrial development tools. The theory of “flow and optimal experiences”
is used to offer rich explanations for the existence of many
typical software tool features and to illuminate areas for potential improvements
from graphical tool support.