Development

Green and Sustainable Software Engineering [1] is our example process model for the procedure model part “Develop” of the GREENSOFT reference model. Instead of implementing a complete software development process, it implements only an extension that integrates with arbitrary development processes, e.g. Open Unified Process [2] or Scrum [3].

The enhancements introduced with the process model are: Sustainability Reviews & Previews, Process Assessment, Sustainability Journal, and the Sustainability Retrospective.
In principle, these form a continuous improvement cycle that has the objective to enable stakeholders to recognize impacts that result from “producing” and using/operating a software product.

vorgehensmodell-entwickeln-01.png

Process Assessment helps to optimize the sustainability of the “production” process, whereas Sustainability Reviews & Previews help to optimize the sustainability of the software product itself. Both efforts are combined by the Sustainability Retrospective, so that impacts over the whole product life cycle of software are eventually covered. The Sustainability Journal logs all made decisions to increase the sustainability of the development process and the resulting software product.

Process Assessment

The Process Assessment activity continuously monitors the development process. Therefore, different data from the development process is gathered, in order to assess its impacts on sustainable development, and to identify factors that should be optimized in order to improve the process. This data can also be used as a basis to perform a Life Cycle Analysis of the software product.

Sustainability Reviews & Previews

Sustainability Reviews & Previews take a look at the work done, assess outcomes according to sustainability issues, and develop measures, which are implemented until the next Sustainability Review & Preview in order to optimize the sustainability of the software product under development. These reviews take software aspects, like requirements, architecture, or coding into account that have impacts on the sustainability. Sustainability Reviews & Previews take place after one-half or two-thirds of a process phase/iteration. This enables actors to assess impacts and to realize optimization measures within the same process phase/iteration. Here, impacts that can be positively influenced and changed by the stakeholders that participate directly in the Reviews & Previews are of special interest. For example, it makes no sense to discuss the insufficient insulation of the office buildings, if the participators do not have the power to change it during the duration of the project.

vorgehensmodell-entwickeln-02.png

Sustainability Retrospective

The Sustainability Retrospective sums up the data collected by Sustainability Reviews & Previews and Process Assessment. It also assesses the software products’ overall impact on sustainable development, and looks for ways to improve the sustainability of upcoming software projects and their software products. Further outcomes of the Sustainability Retrospective are e.g. assessments and group reflections of impacts on sustainable development of the software product and its development process, decisions for future projects, lessons learned, or best practices regarding sustainability issues of software and development processes.

Sustainability Journal

The key findings of the different activities are continuously recorded in the Sustainability Journal. Due to the fact that all related activi-ties record their key findings in this journal, it covers sustainability issues concerning the entire product life cycle of the software prod-uct. The journal can be used for further refer-ence or as a basis for reports on sustainability issues concerning the software product. Such reports may be of interest for the public, cus-tomers, or users, depending on the type of software product.

vorgehensmodell-entwickeln-03.png

Practices

Besides reflecting on the product life cycle of software, there are further methods that sup-port software architects, designers, and developers in producing green and sustainable software applications:

  • Incorporate aspects of the Quality Model for Green and Sustainable Software into your own quality model
  • Start software performance engineering early
  • Continuously apply energy consumption measurements and calculate energy effi-ciency metrics
  • Continuously apply performance and re-source consumption measurements and calculate performance and efficiency met-rics

Remarks

This procedure model sets an organizational framework to manage sustainability issues of a software product. Hence, there cannot be any guarantee that resulting software products are more sustainable than they would have been without applying these practices.

The success of Green and Sustainable Software Engineering however, depends on the commitment of its stakeholders, especially software architects and developers. Hence, it is necessary to raise their awareness for sustainability issues with appropriate information and trainings.

References

  1. Dick, M, Naumann, S: Enhancing Software Engi-neering Processes towards Sustainable Software Product Design. In: Greve et al.: EnviroInfo 2010. Integration of Environmental Information in Europe. Proceedings of the 24th International Conference on Informatics for Environmental Protection, Co-logne/Bonn, Germany. Aachen: Shaker Verlag, 2010, S. 706 - 715.
  2. OpenUP, A lean unified process epf.eclipse.org [2012-02-08]
  3. Scrum, An empirical Agile project management framework epf.eclipse.org [2012-02-08]