Improving Flow in Software Development Through Graphical Representations

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.