How is the work of software engineers shaped by concerns about energy use? To answer this question, a survey of employees of four companies was carried out, and 464 practitioners responded, representing an overall response rate of 12 percent. Survey questions were formulated from a qualitative analysis of 18 in-depth interviews. Findings across the software life cycle, from requirements to maintenance, are presented. The discussion makes effective use of quotations.
The survey uncovered a few examples of detailed energy requirements; for example, under normal usage, a Y-rated battery should last for X hours. Also uncovered were a few examples of patterns that can lead to lower energy demands; for example, use the most efficient algorithms. The vast majority of respondents believed good use of energy to be a responsibility shared among applications, libraries, operating systems, and hardware. Interestingly, around 40 percent of respondents mentioned use of static analysis tools to find antipatterns, such as code that spawns the creation of too many threads. Respondents were found to be least concerned about energy use during the maintenance phase of the software life cycle. The main conclusion is that practitioners currently lack the knowledge and tools to be fully successful in addressing concerns about energy use.
While the discussion of the survey answers is rational and the findings drawn are reasonable, perhaps an opportunity was lost by not asking more specific questions such as “How many times have you replaced a less efficient algorithm by a more efficient algorithm?” Nevertheless, this paper is recommended to the software engineering community.