Getting to Flow in Software Development
Abstract
Humans are amazing at processing information. This ability has enabled humans to create software development projects that comprise a tremendous amount of information of various forms from predominantly natural language documents like requirements to blended natural language and structured artifacts like issues to predominantly structured source and test code. So much information is generated daily in a software product that it exceeds the ability of humans to find and process all of the information that may be useful or critical for decisions that must be made. The majority of tools used in practice to access information do not help as they are predominantly aimed at returning complete information rather than just what is needed to complete a task-at-hand. In this paper, I outline the situation facing most developers today and outline new tool interaction styles that are emerging that can help address this problem and keep a software developer in the flow of a task. By improving flow, I argue that we can enable developers (and eventually a broader set of knowledge workers) to work smarter, work better and have more fun.
DOI 10.1145/2661136.2661158