Reduce, Reuse, Recycle – step towards green IT
Most of us would have come across the 3Rs for a sustainable future. Reduce, Reuse and Recycle. Following these 3Rs will not only lead to a happier planet, but also a happier team and an even happier and sustainable, Agile IT organization. Its fundamentals of programming and common sense. That’s what sustainability is about as well. isn’t it? Keeping common sense while catering today’s needs so that the generation tomorrow can also cater their needs !
Reduce: – defined as “make smaller or less in amount, degree, or size.”
Code – We need to shift our focus from Lines of Code (LoC) to Value of Code (VoC). Reduce the code, keep it simple and valuable as it can be. Do the housekeeping religiously and never let dead code lie around in production or even in test environments. Take out overly complex and redundant code. As developers, if you think the coding effort do not correlate to the value it brings, don’t shy away from asking a big Why? Recent update to Scrum Guide clearly emphasizes more on two keywords – Value and Why. Sprint after sprint while building a product feature by feature – try to get a clear understanding of why a feature is being built and the value it brings to the product/customer/organization.
Process – Process is only as good as the value it brings or the complexity it reduces. Reduce the process to the extent it helps the team to deliver value consistently. Be it an organizational/administrative process or a recurring meeting – if you don’t see the value behind such processes, question their purpose and try reducing the duration. Goal is to have a lean, inter-connected and hyper effective business processes that helps create value time and time again.
Reuse: – defined as “an action of using something again.”
Code – Computer program is not about lines of code but about solving business problems. Enough emphasis has been given on code reuse over the years. Code libraries, design patterns, frameworks helps achieve reusability. Writing Sustainable Code is key. Code in such a way that it caters the current needs effectively while it is also easier to extend in the future. Code reuse is not the same as code duplication. We should be clear in this distinction 🙂
Learnings – Reusing what others have already experienced, learnt, proved can certainly save time, effort and ultimately money. Create demand and supply patterns of knowledge/learnings within your teams and explode it further to the organizational level. Build learning labs, knowledge repositories, communities of learning. We cannot afford to learn everything on our own. Share, reuse, reform is the way to go.
Recycle:- defined as “to use something again for a different purpose.”
Code – Recycling software is processing existing/dormant code to help produce new software to prevent waste of development effort, potentially reduce software cost. This is generally seen as a specialist work. Using dead/unused code for a different purpose needs a specialist so generally development teams do not spend time and effort doing this research. Open source codes, codes from legacy systems are good recycle candidates.
Ideas: – Life long learners never ditch good ideas no matter they materialise or not. They simply journalise those ideas. One of your team member came up with a great idea to help manage a project, but it did not work out. It can very well be used somewhere totally not related to your work. Listen to ideas, brainstorm those ideas, understand the ideas, journalise ideas, use ideas and recycle ideas.
Reduce, Reuse and Recycle certainly helps organizations go Lean and Green !