Skip to content

Green IT Practices

  • See the Green Software Patterns catalog. The items below are a collection of others I found.
  • Good software architecture
    • Focus on using good higher-level abstractions.
  • Use an appropriate data structure / code
    • IDE based recommendations for use of efficient data structure implementations (correctness is respected of course; Java).
    • Algorithms that are most energy efficient on the common case (scenario-driven refactoring).
  • Use the appropriate programming language (discussion)
  • Optimise hot code (Amdahl’s law basically; can use energy profiling)
  • Clean up useless code and data
  • Execute less
    • Selective testing as discussed in Testing.
    • CI/CD pipelines running less code.
  • Analytical (?) over AI? (software 1.0 over software 2.0)
    • Presuming that specialized handwritten code is more energy efficient than AI models (also consider the training).
  • Good enough is good enough
  • Reduce data usage.
    • Caching (e.g., locally to avoid computations or CDN based for less traffic).
    • Compression.
    • Smaller digital media (smaller images).
  • Self-adaptation: software with multiple energy profiles (discussed; e.g., low power mode turns off background processes; might require realtime energy profiling for profile selection).
  • Appropriate hardware: size (phone vs. server), processor type, and modernity (newer hardware better? but tradeoff on environmental e-waste and resource use).
  • Product: Minimalism; avoiding scope creep.
    • Remove unused features (also good for maintainability)
  • Green robustness. Use of chaos engineering to find inefficiencies. The Carbon Monkey.