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.
- 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.
- 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
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/
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