When we think about reducing our ecological footprint, our first instinct is to consider the means of transportation we use or our recycling and consumption habits.
However, with the advent of artificial intelligence for the average citizen, the most discussed topic would be the impact that technology, particularly software, can have on the environment. This impact is so invisible in our daily activities that it is difficult to realize that our work has real and significant consequences on the environment.
Thirdbridge, with expertise in software engineering rather than in the environment, offers some tips and tricks to keep in mind for designing software responsibly.
What Developers Can Do
Our greatest opportunity to make an impact in application development lies in influencing the users of the products we create. Indeed, the most significant measures are ultimately those that affect the largest number of people. It is this user base that upgrades their devices every 2-3 years and makes thousands of requests to particularly energy-intensive servers. Therefore, we can contribute by optimizing the use of digital products.
At Thirdbridge, we've asked ourselves: what can we do to reduce the environmental impact of the products we develop for our clients? There is a simple rule applicable to software design that allows for an indirect impact on ecology, and I call it the 3 Us: Useful, Usable, and Used. It is actually a user-based approach to software design. The benefits are not only environmental; this mindset also aims to maximize the value offered to end users.
Designing a Useful Product
Useful
It aims to design a product that addresses a need. The goal is simply not to market a product that consumes resources without adding value. It may sound straightforward, but pinpointing the user's need can be a tedious process. The answer will never be, or rarely be, very obvious. One way to understand what the user needs is to create prototypes. Through prototypes, it is possible to make observations and better understand how and why the product is useful in the lives of those who use it. With a useful product, we ensure that the valuable resources used have an advantage for some.
Let's elaborate on a scenario: your application aims to encourage daily water consumption. You've thought of a method to achieve this: sending notifications several times a day. This is the first prototype, but is it really useful? Do your users want to be reminded to drink water, or do they rather want to be motivated to do so? I don't claim to know the answer, but let's assume that the result of your prototyping shows they prefer to be motivated. The second prototype could instead focus on encouraging tracking their consumption and seeing their progress. Perhaps your users will see greater value in this and possibly drink more water. One thing is certain, the energy consumed by your product is not wasted because it serves a purpose.
Optimizing Product Usability
Usable
One obvious thing when considering ways to reduce user energy consumption is the usability of the product. If we think about it on the surface level, the application must obviously function. Where it becomes interesting is when we think on a deeper level: does the solution offered meet the previously considered needs? Even with an application that addresses a clear need and provides real added value, if your users don't understand how to use it, much of the effort is lost. It is possible to better understand how your users behave by analyzing analytical data of their usage and adjusting accordingly. With a usable product, we can be certain that our use of valuable resources is optimized.
Let's revisit our scenario. We've established that the need to track water consumption is addressed, but does the application make this solution easy? With your MVP, you've implemented a form as follows: amount of water consumed, unit, time of consumption.
With the collected analytical data, you've noticed that 20% of users abandon at the unit, 50% abandon at the time, and 10% don't submit the form inadvertently. So, you find that only 20% of people using the application are using it correctly.
Well, that may be exaggerated, but follow along. With this data, changes can be made to the application to make it much more usable. Remove the unit: the user can choose the default unit. Remove the time: use the submission time. Remove the button: the form is submitted upon entry of the quantity. These changes should greatly improve usability, and thus optimize the energy consumed by your application.
Encouraging Regular Use
Used
With this third U, we want to ensure that the product, or certain features of it, are not forgotten. It simply means considering whether all parts and features of the product are necessary (did you know about Facebook Avatars?). Once again, here, we can answer this question by analyzing user analytical data. By using a product, we ensure that the consumption of precious resources is not in vain.
Earlier in the article, it is recommended to modify the functionality of your water consumption application by adding progress tracking. You took my advice to heart and developed a complete page on consumption data analysis: the history of the last 4 months with a thorough trend analysis. However, the analytical data shows that there are twenty times more impressions on the summary page than on the consumption details page (perhaps still exaggerated, of course). The conclusion to draw is that it is probably safe to remove this page that consumes a lot of energy to perform all these calculations when it is barely used.
By taking the time to think about these three axes, there may be some elements that align with one of your products. These may be minor details, but multiply these small optimizations by the number of requests per session, per day, per user, per application, and you will have a somewhat more significant number that will definitely have an impact.
As application developers, we can see a significantly greater impact if we are able to advise our clients well on the resources used by the applications developed to ensure their sustainability. The most important thing is to continue finding creative ways to address the problem and to imbue eco-responsible value into our personal and professional identities.