Application Sustainability Is More Than A Programming Language Choice
(Part 2 of a two-part series)
Still Calling On Developers To Save The Earth!
Two days ago, we introduced the concept of application sustainability and noted that while less abstract languages may have lower energy costs, there are other considerations in sustainable development and deployment. Whether your team is starting up a sustainable development initiative or you want to critically analyze vendors claiming application sustainability, everyone must think beyond language. As organizations consider their applications’ environmental impact, here are the factors to consider:
- Programming language. As we’ve discussed, lower-level languages are more efficient on their own, but as you’re calculating programming language efficiency, make sure to include energy consumption from the compiler, linker, and byte code generator.
- Problem-solving and algorithms. It’s hard to find an optimized solution to a problem and code through an inefficient algorithm: I can add 1 + 1 to get 2, or I can first add 4, then subtract 7, then add 3 … and also get 2. It takes computer science experience to think of optimized solutions and write efficient algorithms with effective coding. Keep in mind that fewer developers today have expertise in lower-level languages, so insisting on lower-level languages will limit your experienced developer pool. As a result, you may end up with some less experienced developers that explode energy usage in other ways.
- Testing efficiency. Testing is core to the application development process. If tests are inefficient or poorly designed, those will also increase energy use, especially as we build more automated tests, since agile and DevOps have encouraged ruthless automation. Moving away from ruthless automation to smart automation by leveraging AI and ML to determine when to automate a test or to execute an automated test could be a high energy saver.
- Application design. A level up from coding, poor design may also result in higher energy consumption. A wrong design could imply more code being executed: A UI that calls on a shared services continuously, which is available through the network and on a remote machine, would consume much less energy if it were colocated. Make sure your developers have good system design skills, but also think about the design capabilities of product architects who also need to consider sustainability.
- Application deployment. Anything deployed in production consumes space and might require load balancing routines or virtualization to swap binaries in and out. But the process of deploying apps could also have high energy consumption pipelines. DevOps engineers have a key role in providing optimized and effective pipelines for code delivery.
- Application protection. Once deployed, organizations must monitor application performance and protect applications from attacks through a combination of infrastructure and security tooling (think web application firewalls, bot management, runtime security tools, and observability tools). All of these are associated with the application and consume energy, so add that to the total. For tools that protect multiple applications, divide energy consumption across the protected apps.
- Data usage. Applications produce and use a lot of data. Processing and storing that data can get expensive and inefficient. With data storage expected to account for 14% of global carbon emissions by 2040, it’s time to take a look at application data and ask whether we really need all of it. Perhaps applications ignore some collected data entirely, or perhaps we can reduce some retention periods. Bonus: Getting rid of unnecessary data may also help firms tell a better privacy story.
Be wary of any organization that points to language choice as the sole indicator of its sustainability commitment, and ask about how they approach the other factors. Also, ask about measurement: What’s the marginal energy cost for every new user on the application? Metrics are hard to come by at the moment, but as the application sustainability movement picks up steam, ask organizations at the forefront to share their sustainability metrics and formulas. Want to talk more about application sustainability? Schedule an inquiry with us.
This blog post is part of Forrester’s Earth Day 2022 series. For more Forrester insights on sustainability, see the full set of Forrester’s climate action blogs.