Sunday, April 2, 2023

A study on Sustainability through Software development with green coding techniques

A Study on Sustainability Through Software development with green coding Techniques

Omkar Prakash Chitnis

Technology Analyst at Infosys Ltd

chitnis.omkar@gmail.com

 

Bachelor of Engineering, PG-Diploma in Business Administration, PG-Diploma in Advanced Computing,  Diploma in Cyber Laws, Microsoft Certified Azure Fundamentals Professional, Infosys Certified Global Agile Developer

 

Abstract- While the Software Industry is looking for Agile methodology and DevOps which satisfy business goals and provide value to clients through faster delivery and working software in iterations, we need are not giving enough attention to the impact of software and computer hardware on Earth. Everyone is putting efforts into sustainability and we as the developer community contribute to it. I feel that the need for sustainable development is an important but unrecognized issue. This article talks about Sustainability through software development with green coding techniques. What is sustainability, what are green coding techniques, and how we should go for it. This study paper also covers what organizations are doing and proposes new ways to achieve sustainability through software development at the Global, Organizational, Team & Personal levels.

 

Index Terms- Sustainability, Agile, DevOps, Green code, Earth

 

                                                                       I.     Introduction

T

his article guides a walkthrough of sustainability through software development with green coding techniques. An approach to software design, implementation, and deployment that places emphasis on energy efficiency and environmental sustainability is known as sustainable software engineering (or sustainable software development). The objective of sustainable software is to reduce the environmental impact that programs and the infrastructure that supports them have.

 

The broad field of sustainable software engineering deals with the long-term effects of planning, developing and delivering software projects. Sustainability, by definition, encompasses five broad spheres of influence: environmental, social, individual, economic, and technical.

Many people are unaware that software, like computer hardware, may contribute to environmental issues. Although the software doesn't directly use energy, it directs and impacts how computer hardware operates, having an indirect impact on energy use and carbon emissions. Software that is computationally inefficient can significantly increase energy usage. Software contributes to the issue of environmental sustainability much like computer hardware does.

With an estimated $5 trillion in annual revenue, the IT sector is the sixth-largest industry in the world and is undoubtedly expanding, which is increasing carbon footprints. The Paris Climate Accord, endorsed by 195 states and the UN IPCC, calls for reducing carbon emissions in order to stabilize global warming at 1.5°C by 2100 compared to pre-industrial levels.

In order to retain the fixed amount of carbon in the atmosphere while achieving net-zero emissions, we must extract one gram of carbon for every gram we emit. To achieve this, we must immediately begin reducing our carbon emissions, aiming for net-zero emissions by 2050 and a 45% reduction by 2030.

Building green software necessitates early, greater examination, which results in a higher-quality product that is leaner, cleaner, and more suited for its intended use. These attributes reduce the need for further up-front expenses. Large businesses will use green software to help them reach their ESG goals, which are crucial performance indicators for stakeholders.

                                      II.     Why sustainable software development?

The carbon footprint produced by digital technology may seem amazing because it exists in the non-physical world. However, data processing is related to CO2 consumption, which continues to increase as digital consumption increases. Energy consumption is directly related to the online services we use. According to the Shift Project Report, global digital energy consumption is growing at about 9% annually. E-waste is caused by all kinds of devices we throw away, including all old devices.

 

The idea of ​​making our planet greener is not enough to convince companies to change their outdated approach. Usually, only business interests or regulatory requirements accelerate change.    

When it comes to sustainability in software engineering, the benefits are huge. They enable product teams to create solutions that focus on growth rather than problem-solving. When development is not sustainable, teams often get stuck in a vicious cycle of correcting mistakes and losing money. Sustainable software development, on the other hand, allows engineers to continuously improve their services despite increasing complexity. They create sustainable software that uses less human and material resources than traditional products. 


           III. How to take steps toward sustainable software development?


A] Raise awareness

 

 Raising awareness is about making people aware of problems and questions. You want a particular topic or issue to get more prominence within your community. The goal is to help people understand the importance of a particular issue and find support to tackle it.

Awareness raising is very powerful because it informs people about new issues and encourages them to participate in making a difference.

Many people are still unaware of the serious impacts of the climate crisis and have not taken steps to combat it. IT has the ability and obligation to motivate them, make them more informed, and make them more involved in the fight against climate change. As a result, IT can help drive “green” initiatives and desired behavioral changes.

This can be done by

 

  • Writing blogs
  • Creating newsletter
  • Giving seminars
  • Using social media
  • Create a community

 

B] Education and training at the school and organizational level

 

 Early learning paves the way for school, college, and lifelong learning. What students learn in their first years of school and how they learn it can have a lasting impact on their professional success.

Freshmen who join IT industry startups and know how to code should know green coding techniques. At the beginner level, it is easy to understand and implement.

His Two Philosophies of Sustainable Software Engineering

In addition to the eight principles of sustainable software engineering, there are two philosophies.

 

  1. Everyone has a role to play in contributing to climate change solutions

 

If you're reading this and you care about the environment, you know you're part of a large global movement where people care and want to take action. We work in all areas of engineering, right down to user experience design.

Nothing happens in isolation, everything is connected and small changes lead to big changes. Even just having regular discussions about sustainability at technical meetings can help others speak up. This is how change is created in any organization.

As Sustainable Software Engineers, we believe that everyone has a part to play in the climate solution. Sustainable Software Engineering is inclusive. Whatever sector, industry, role, or technology; there's always something you can do to have an impact.

 

  1. Sustainability is enough, all by itself, to justify our work

 

As sustainable software engineers, we recognize the many benefits of developing sustainable applications. In most cases they are cheaper, and in many cases, they are more powerful and more resilient. But sustainability is the main reason we practice sustainable software engineering. Everything else is an added benefit.

 

       IV.     principles of Sustainable Software Engineering

There are eight principles of Sustainable Software Engineering that form a shared understanding of what it means to be a Sustainable Software Engineer.

  • Carbon: Build applications that are carbon efficient.
  • Electricity: Build applications that are energy-efficient.
  • Carbon Intensity: Consume electricity with the lowest carbon intensity.
  • Embodied Carbon: Build applications that are hardware efficient.
  • Energy Proportionality: Maximize the energy efficiency of hardware.
  • Networking: Reduce the amount of data and distance it must travel across the network.
  • Demand Shaping: Build carbon-aware applications.
  • Optimization: Focus on step-by-step optimizations that increase the overall carbon efficiency.

These eight principles are independent of:

  • Application domain.
  • Organization size or type.
  • Cloud vendor or self-hosted.
  • Programming language or framework.

 

                                      V.     what are the quick steps to achieve this?

To realize greener software, we need to consider energy efficiency and sustainability of software as important parameters, further to functionality, security, scalability, and accessibility. We also need to design software for reuse, extended longevity of use, and minimal computational and memory resource requirements.

 

Writing an electricity-green software program is, however, a difficult task; it calls for mindset change for software developers and architects in addition to guidelines, excellent practices, fashions, and equipment to a degree and decreases the impact of software programs on the electricity intake of the underlying hardware.

 

 A 2015 IEEE IT Professional article presents a conceptual framework that provides a unifying view of the strategies, models, and tools available so far for designing and developing greener software.

The development of green software spans the entire lifecycle of software: development, operation, and disposal (reuse). 

 

Here are some recommendations for creating greener software. They focus on four areas:  design and coding options, choice of language, selection of AI models, and software development.

 

·         Centralized control of functions for high power and high usage scenarios.

·         Reduce data usage. Enforce efficient caching policies, minimize data exchange, and manage the lifecycle of stored data. Compresses and aggregates data and uses smaller-size media and images when possible.

·         Remove or redesign unused features. This improves energy efficiency and makes software maintenance easier.

·         Detect and eliminate loops that serve no purpose and waste power. Example: querying an unreachable server.

·         Customize app behavior based on device power mode or other operating conditions.

·         Limit the computational accuracy of your application to a desired level that meets your operational needs. For example, if you're just looking for nearby friends, you don't need your very high-resolution geolocation data.

·         Monitor application energy consumption in real-time to identify modules that can be optimized to reduce emissions.

 

                             VI.     What are companies already doing about this?

Organizations commit to addressing the global climate crisis by becoming carbon neutral, if not carbon negative.

 

 In May 2021, Microsoft, ThoughtWorks, Accenture, and GitHub, along with Joint Development Foundation Projects LLC and The Linux Foundation, will form a non-profit organization called Green, a non-profit organization dedicated to "building people, standards, tools, and the best networks." Founded the Software Foundation. Green software practices. "

These companies have also made individual commitments to address the climate crisis. For example, in addition to designing, building, and implementing sustainable applications, Microsoft encourages all software engineers, developers, and others to do the same.

According to Microsoft, increasing energy efficiency and reducing carbon emissions requires enterprises to not only move workloads to the cloud, but also make architectural changes, decisions, and code changes that reduce carbon emissions. there is. Accenture has developed its own green software tools, frameworks, and best practices. Additionally, 95% of its applications run in the public cloud, and the company says it has trained more than 70,000 developers in green software engineering practices.

 

According to Thoughtworks, technologies such as its green cloud services can directly help reduce its carbon footprint.

 

GitHub, owned by Microsoft, has made all development and use of the platform carbon neutral since 2019.

 

 VMware, which joined the Green Software Foundation in January 2022, is increasing its use of energy-efficient IT infrastructure to reduce the total amount of energy required to run its workloads. The company also designs, develops and programs software that reduces the computing power required to run the software.

References

1]https://learn.microsoft.com/en-us/training/modules/sustainable-software-engineering-overview/

2] https://hbr.org/2020/09/how-green-is-your-software

3]https://www.itprotoday.com/development-techniques-and-management/why-sustainable-software-engineering-win-win

4] https://principles.green/

5]https://greensoftware.foundation/articles/10-recommendations-for-green-software-development

6] https://luiscruz.github.io/course_sustainableSE/2022/

7]https://branch.climateaction.tech/issues/issue-1/sustainability-in-software-engineering/

8] https://www.techtarget.com/searchsoftwarequality/definition/green-software

9] https://www.boldare.com/blog/what-is-green-development/

10]https://devblogs.microsoft.com/sustainable-software/?ocid=AID3038246&WT.mc_id=green-8103-cxa&ocid=AID3038246

11]https://www.capgemini.com/insights/expert-perspectives/green-software-engineering-back-to-the-roots/

12] https://www.greensoftwaredesign.com/en/gsd-green-software-design/

 

 

Author

Omkar Prakash Chitnis is an IT Professional working on various technologies for Software development. He possesses Bachelor’s in Electronics & telecommunication engineering., Post Grad diploma in Business Administration, Post Grad diploma in advanced computing, Post Grad diploma in Cyber laws.


 

 

No comments:

Post a Comment

A study on Sustainability through Software development with green coding techniques

A Study on Sustainability Through Software development with green coding Techniques Omkar Prakash Chitnis Technology Analyst at Infosy...