After about 10 seconds of waiting, a person’s attention begins to drift to other things. Others have written articles on the subject in the context of computer systems, but the same things has been observed by psychologists in a range of settings. If a process takes more than 10 seconds to complete, it breaks the user’s flow, and they will have to re-orient themselves once the process has finished.
The value to programmers of being in the state of flow has been noted by many authors. Programming is also an activity where a lot of automated tools are used. The tools are intended to save developer’s time, but care must be taken to ensure that the use of a tool does not break the user’s flow. If a developer is in a state of flow, and the flow is broken by a tool that takes too long to complete, the developer will lose productivity until they are able to once again enter a flow state.
The same can occur as a result of the program that the developer is working on. If the program takes a long time to compile or start up, or an operation that the developer is testing involves a long delay, the programmer’s productivity will suffer as they are constantly taken out of the flow state. Flow is also connected to happiness while doing the work, so in addition to decreased productivity, long waits during development can also harm developer’s motivation to perform well and harm the developer’s engagement with the project.
These combined factors point to a high cost to slow applications – not only do users dislike them, but developers are less productive working on them and have lower job satisfaction when doing so.