Green Software Engineering
The rapid growth of digital economy, production of software products demands a more sustainable way to deal with global warming issues. All of the tech industry is contributing to the growth of carbon footprints and we need to handle it efficiently.
I will focus on the life cycle of Software Engineering and also explain how they can incorporate green software engineering into practice, from requirement engineering to the end product in the whole cycle. Further digging deeper into the following topics:
• Green Requirement Engineering
• Green Architecture and Design
• Green Coding
• Optimization of Infrastructure
• Green Usage of software products
The development of software products should be in such a way that it decrease carbon, increase efficiency and lower carbon intensity. The choice of coding language should be based upon time, complexity and resource usage so we can incorporate green coding. Participate in electronic recycling programs and shift your previous infrastructure to the services such as cloud to decrease resources usage.
When it comes to green usage of the software products then never leave your laptops and systems on sleep as it also increase the carbon footprints.
In the end of the talk people will be able to practice some green computing concepts in their everyday life.
This session took place in track Programming & Software Engineering and was classified suitable for intermediate domain / novice python by the speaker.
Transcript (auto)
Auto-generated from the recording utilizing Open-Source AI. Speaker labels (Speaker 1, Speaker 2) reflect diarization, not identity. Timestamps refer to the recording.
Speaker 1 [00:06]
Thank you so much for coming. Today's talk is about, as you know, green software engineering. First, I would like to introduce myself. My name is Farah. I'm from Pakistan. I have moved to Germany, and I'm working as a software engineer. Okay, let's get to the talk. And first of all, I would like to start it with a quote that, first, green technology is not just for someone who belongs to the field of environment or environmental. It's for everyone who wants to make a better future. now what exactly is green software engineering how we can implement it and why we should implement it for this we have to look that what exactly a green software is a green software is like a normal software but where we are paying attention is its impact on the environment that how it's impacting the environment we are not compromising over the efficiency over the performance over the software architecture. We are paying attention that how our software is going to impact our environment around. So for that, we are going to pay attention to the resources it's using, the energy usage, how it's working, and the language we are using. And I will look into this in detail later. Green software engineering is basically an umbrella term. When we talk about green software, we are just concerned about the software. But when we are talking about the green software engineering we are talking about the front-end changes and the back-end changes in the front-end changes we have to pay attention to our software where we pay attention to the architecture practices languages requirements everything but when we talk about the back-end changes we have to pay attention that what kind of hardwares we are using what about the data centers are our data centers green enough we pay attention about the carbon emissions and all those factors okay so now why green software engineering is necessary and why we should move to green software engineering yes our software engineering is best we every day we see that lots of companies are trying to go digital we have apps for almost everything we can do everything with our apps today then why we should move to green software engineering the reason is that in 2023 according to the various surveys our IT spending was 4.6 trillion and it's going to increase more in this year and it's going to be around 5.6 or something or maybe more but the global gas emissions that we are doing in our green and our software engineering field is 1.8 to 3.9 percent which shows that we are playing a very major role in the global gas emission that's why it's very necessary for us to understand that how we should implement green in our the software technologies in our application development to protect our environment as we are impacting it at a great level okay now i'm coming towards that how exactly we can implement all those factors i would like to first know that how many people here are from the field of software engineering okay so majority of them but i would like to try to explain everything so even if you don't belong to that field it will be easy for you to understand uh in first the in software development life cycle we have different phases uh and our first phase is mostly mostly about the green require about the requirement engineering so how we can make it green in requirement engineering what we mostly do is that we just try to understand what our customer actually wants what they are trying to get and how we should make that software for that we mostly communicate with the customers that what kind of software you want how we should make that and we try to understand our overall feature and then we divide all those functions into requirements to understand that how many features we have to develop now to convert our requirement engineering into green requirement engineering the first and easiest things we can do is that we can look for a green stakeholder now who is the green stakeholder green stakeholder is someone who got some information or knowledge about the environment who can understand and who can do the analysis that how our requirements are going to impact the environment how we do it that we add an extra layer of analysis that how many resources our software is going to take how many persons how much energy um what kind of data centers we are using are can we go cloud or we have to have our own soft servers so in green requirements we just adding one more layer of analysis in the requirements it's basically the same process but little bit more analysis now going towards the green code uh coding is basically the phase we we just start the development or product we are done with the requirements we just know what customer exactly wants we just come towards the coding and here is the part of the software developers start so in green coding how we can go with the concept of green according to the various researches and studies C language is considered to be the most green language but I understand that in most of the cases it's not necessary that C is the only language that we can use for the software development yes for the back end i can say okay let's take c language but for the front end we use various language today we you know that we use react we use angular and there are so many other things like type scripts these are the languages that we use for the front end so how we can implement the concept of green coding in the front end we all are familiar that there is a concept of reusability in coding reusability basically means that i am not writing the same code again and again. Let's take a very simple example that in every applications we have simple things like a form, buttons and all those things. So for all of those modules I am going to make a combined module and I will use it again and again in my application rather than writing the code again. So this is how we can implement the concept of reusability. Code refactoring is the process where we just try to improve the quality of our code. So in code refactoring we can see whether we are using lots of loops can we eliminate them how we can make them a little bit more better and also if there are some redundant codes that can be removed so basically code refactoring is about making your code clean two more things that we can do to make our code clean is through pair programming in code reviewers it is always said that two brains are better than one because in pair programming maybe i'm doing programming in a way or i am making a module in a more complex way that is taking way more resources but the other person can come up with an idea that how I can make it a little bit more better and more efficient and in the code review phase we always have a code review phase where I have written a code I just give it and someone else review is it it is better enough it is good enough so in the code review phase the code reviewer can also pay attention that what are the ways that rather than just looking that this code is working the way it should the reviewer should also pay attention and how we can make it a little bit more better reusable um so in code review we can also implement the concept and by using all these uh things we can make our code green now coming towards the sdlc model uh in software development we have various models that we follow for the overall development uh if you have some ideas, we also have a waterfall model, iterations model. In iterations model, what we do is that we do all the development work in iteration. What that actually means is that in first iteration, I may say that, okay, I'm going to deliver four features. In the second iteration, I will add two more. In the third, I will add two more. It's like a concept of continuous development. But in waterfall development, what I do is that once the customer tells me about all the requirements and all the requirements are done those requirements get freezed what that means is that i cannot change those requirements so if we want to implement the concept of green then we should try to look for the concepts that go with the concept of iteration like agile and scrum where we are doing the iteration so maybe in first iteration i say okay we are working on four requirements but one of that requirements is taking way more resources or maybe we can change the scope of that requirement so maybe make it we can make more changes to to implement that requirement so i can in the next iteration i can implement those changes but in the waterfall model if i am following a waterfall model you know that once the requirements are frozen i cannot change them so even if i feel that one requirement is even not necessary i can change it or i shouldn't implement it i will go with the flow so if you want to go green try to go with the concept of iteration in every iteration do a little bit of analysis that is this requirement is actually necessary how you can change it how you can make it a little bit more better so in the next iteration you will have a better requirements or better software next the other few more things that you can do in your software development life cycle is about testing testing is the phase when the developers are done with the coding. They give the code and the tester test that are they actually doing the work or not, and they also see if there are some loops, there are some bugs, and we have to fix them. So in the testing, we can also do the continuous testing process where we can see that whether this requirement is taking way more resources. It's all about providing an extra layer of analysis. In every phase, we are doing a little bit more analysis then before to make sure that all of our uh requirements are going with the concept of green not taking way more resources way more people way more energy because you know the more energy usage goes to more carbon gas emissions so that's why we are just trying to decrease that in every phase uh we can also um see that our data centers are the green you know what that basically mean is that in the data centers we can try to look into like how we can make our energy more green and we can also go with the concept of cloud if you feel your applications can use the cloud services so try to use them now the question is that we have seen that what exactly green is why we should do it how we should do it now the question is is it worth it okay so as a person and as a business owner if I go to someone and say you should move to green and the first question they will ask that is it worse than of why I should move to this process if my process is working fine and I feel there is nothing wrong as a business owner you just look at the pros and cons so I will try to explain this concept with a few examples to make it easy for you first of all people think that if we are going to move towards the concept of green maybe they will impact our performance no it is not going to impact your performance because we are doing a little bit extra work yes you have to do a little bit more analysis extra work but it's gonna increase your performance in the end we can see an example that microsoft is the biggest tech giant in the industry we all know about it microsoft also started to go with the concept of sustainability in 2022 they said that they have decreased their carbon emission by 0.5 percent okay so they were working towards the concept of sustainability but they also had 18 percent of growth so we can never say that if you are going with the concept of sustainability it will impact your growth no now coming towards the capital okay so as a business owner if you say that you wanna have green energy and you want to have the concept of green energy in your organizations how it is going to impact you but in the terms of capital I give you the example of my own company at smart micro my CEO Ralph wanted to go green a few years back so he invested a lot of money in that and he just what he wanted was that the whole organization should have green energy we do not want to use the electricity he went for that and he invested a lot of money so i asked him what do you think as a business owner was this a good choice so he said yes yes it's a good choice now uh in our office all the laptops even if you are running your own devices like you're charging your devices even the car ports to charge your card are on the base to solar so we are all using the solar energy but you cannot expect advantages very quickly so the time frame in which i will actually see the positive results by having green energy lies between five to ten years so it may be like in the first year I invested like 20k euros I'm just giving rough estimation 20k euros to have green energy at my place in my organization but the return that I got in that year maybe 2000 euros so it's not a very great amount and I will be like I have invested way more than i am getting back so in the first year second year so maybe in the third year so the in the new years like the first five years you cannot expect to have a lot of benefits but in 10 years you will be ahead than the organizations who are not using green energy or let's take an example that there are two organizations organization a and organization b so organization A says that we are going to have green energy and they invest a lot of money in that but the organization B says that we are not interested in that so they don't do anything and they are just going with the flow suddenly there are some issues and there is some sudden increase in the taxes and the electricity cost who is going to be in benefit company A or company B they will continuously pay more amount of course the company also invested a lot of money but in a long term company a who went green who went with the concept of green will not bother about the taxes of the high cost or anything so in a long term green and having green energy ongoing green is going to help you a lot but in terms of capital you can say you have to wait to see the changes but in terms of performance you can see the changes a bit more early because it's a more analysis will help you to have a better software to have a better quality in all the phases of the software okay now what are the social actions that we can all can take to build a better future so these are the social actions that you can take as a person as a developer as a business owner and there are a few small steps that you can do even if you don't belong in the field of IT and I will also tell you a very small tip that you all can implement and you all can go green from today. First of all let's talk about the laptop buying thing. What you do when you buy a laptop like what's the first thing that you do if you have to buy a laptop okay so from today what you can do is that you can also look into the eco profile of that laptop to go green okay we all look for what are the specs how it's gonna work or maybe if you are gamer or someone you will look ah is it gonna run fine this is gonna work everything so apart from that add one more thing that try to look into the eco profile of that laptop as well what exactly is eco profile ego profile basically provides all the information about your laptop then how it's going to be recycled how it was actually made the different kind of materials and also um sometimes in eco profile they also provide information about the carbon gas emissions so in this way you can just have more information about your laptop and try to buy a product that provides eco-friendly and that is more eco-friendly to the environment so from today whenever you are buying a new laptop just try to look into the eco profile it's very easy just write the name of the laptop and try to search eco profile so many companies like microsoft and some other companies are also providing uh this information so you will find it very easily next thing is energy star we all have seen that energy star logo right so so so many products are certified with the energy star products are the one that are way more eco-friendly so it it doesn't only imply to the laptops uh the energy star eco energy star certified uh things are more for you can also look for your home appliances it's not just limited to your laptops third thing is recycling always try to recycle your devices rather than throwing them away so in this way you can also protect your environment and the last thing is shut down it's the most easiest thing it's the most easiest thing you can do and it's the tip i was talking about that from today you all can go green by shutting down your devices the co2 emission of one laptop by just using it for eight hours daily is lies between 44 to 88 kgs just eight hours and we are not using our devices for just eight hours so so from today or you all can go green by shutting down your devices yes i understand as a developer i also love putting my laptop on sleep okay it's don't sleep, I will just open it and I will do whatever I want. I understand that feeling. But at least for nighttime, from today, we all are going to shut down our devices. We have to protect our environment. It's a very small thing. And I think with this very small thing, we all can go green. And even if you don't belong to the field of IT, we know that we all are using our laptops and our devices every day, right? So I believe that from today's talk, afterwards, you're all going to shut down your devices at least at the night time and as a company owner you also can make a rule in your company that after the watch time please shut down your devices everything should be shut down so we can just decrease the carbon emission as a person i know for the recycling services many companies like dell lenovo they all are providing recycling services amazon also provide recycling services and there are also some companies what they do is that they just pay you the money and they do the recycling service for yourself so you can just call them they will just pick the devices from your place and you this way you can easily recycle your devices and you and if you are buying a laptop of HP you can also try to look into the HP Intel Evo laptops they have basically started it new where they where they try to be a way more sustainable they have changed the timings of the laptops that mostly it will take a little bit less time to charge so now in the Microsoft is also trying to be way more sustainable so they have also made a lot of changes even for the Windows update that started to be they started to be way more sustainable. So for the Windows update, they have made changes as well. So one more thing I would like to add is that when we talk about the carbon emissions, it's not just by the usage. The carbon emission by the laptop also depends on its manufacturing and its transportation. So when we are manufacturing the laptop, it also results into a lot of carbon emissions. And when we are transporting it also. So as a person, of course, all the tech giants are trying their best to go towards the concept of sustainability. Dell said that in 2014, 2050, they want to go with the concept of neutral emission where they would try to be on zero gas emissions. And Microsoft is also trying to go at the zero gas emissions by 2030 and 2040. So all of these tech giants are trying go towards the concept of sustainability so of course on the manufacturing part we cannot do anything the tech giants are working their part in the transportation part as well but for the usage part what we can do is that what we can do is that we try to understand that what is the efficient use of using a laptop right for the daytime you can use it as much as you want in the daytime shut it down even in the carbon emission of our um the smart devices is very high but of course i cannot ask you to shut down your uh phones as well it's something very necessity we use it every day it's another topic and i um i think it's gonna take way more time but for the laptops and all those devices for the pcs um from today i expect that you all are going to shut it town and last but not the least thing is that when you know something good try to educate others as well try to deliver the good message with others as well and do it for yourself for your next generation and for earth it's very necessary and even if you are the first person in the room to do something good do it never feel like i am the only one i am doing something good how it's gonna make a difference if we all started to make baby steps it's gonna make a great difference in the upcoming years thank you so much
Speaker 2 [23:19]
Thank you, Farah, for your talk. We will go now to the questions all people have given me via Slido. Are there tools that analyze code, though I can see how efficient my code is in terms of energy efficiency?
Speaker 1 [23:38]
saw some tools like online websites where they were providing information but it was mostly about the emails like I'm sending an email they they were like I will just put information that how many emails I have sent to today and how I have received then they tell about the carbon emissions but it is basically I will say that it's a new discipline and so many people are trying to get along with this and dive deep but right now I do not have idea about any tool that can do it but that's why I have mentioned the points that the pair programming and code reviews are the best thing that we can do to try to know about the efficiency and one more thing I would like to add here is that in terms of code if you want to know about that is it green enough or not you will look at the time the more time my code is taking the the more energy it's using so basically in the concept of green we are trying to minimize the concept of energy usage so try to have less energy right less time that's why we are removing redundant codes and loops and all those things
Speaker 2 [24:53]
And how do you measure the impact of the hardware your application uses, like cloud and non-cloud?
Speaker 1 [25:01]
It's basically like I mentioned, cloud are basically the services that are already done. If I have to use that in my applications, I will just have those cloud services, right? But if I say that, okay, no, for my software, I want to have my own server, I want to have my own services, then it's going to start from the scratch. If you start something from the scratch, it's going to have more resources, more energy. so in comparison if i say if i have to make something from the scratch for my software and if i have to use services that are already available that are already done then for the concept of green you would try to prefer to have services that are already done so here you are basically saving the energy rather than if i say okay let's make my own server then i will have lots of hardware, lots of energy usage, lots of manpower. So in comparison, I am having way more energy usage than the cloud.
Speaker 2 [26:06]
Does green software engineering affect or limit the choice of framework and or programming languages to use?
Speaker 1 [26:13]
yes it affects as i told you that according to the various researches c is considered to be the most green language um if you look into internet i came across this it was a research paper it was a very huge research paper it provides information about almost all the programming languages where they saw that c is a little bit more green language as comparison to the other languages And they tried to do this research in terms of like the compilation time the language is taking, how much time is taking execution, like performance. So they tried to measure it through the various concepts. So in the end of the research, they mentioned that some languages were in terms of performance high, but in terms of resource usage were also high. some were very low in the resource usage but in terms of performance they were very low as well so they in that research they said that C is green language but for the other languages they were like they were not really sure that how exactly they should measure it that all of these languages are green enough or not and Rust is also considered to be a green language and one more thing when you are saying is that you have to look that this language is depending upon the interpreter or compiler. So in this way, you can also determine that language is green enough or not. And I would also suggest that try to look into that research paper. It's actually very huge. If I start to elaborate, it will take a bit more time to explain. And there is actually a research paper about the green languages. Plus, if you don't have the choice in some companies we know that we just go and they say oh this is the software work on it so in that case we don't have the choice in that case you will try to go with the concept of reusability code factoring and all those things to go with the concept of green if you have no choice of language.
Speaker 2 [28:16]
Thank you, Farah, for answering all our questions.