Montevideo, 18 de enero de 2023.
La sostenibilidad es una de las prioridades en las actividades humanas en general. Desde el sector tecnológico, se puede contribuir a construir y ejecutar aplicaciones de software sostenibles que permitan minimizar la huella de carbono. Esto puede ser posible mediante la utilización de diferentes métodos y herramientas aplicados en el ciclo de vida del software.
La Ingeniería de Software Sostenible surge con la finalidad de establecer estándares y aplicar las mejores prácticas para crear software o aplicaciones sostenibles y así contribuir a la conservación de los recursos naturales. A través de este enfoque, es posible reducir el consumo de energía y producir menos emisiones de carbono.
Esta disciplina se basa en la aplicación de ocho principios que sirven como guía para la construcción de sistemas más amigables con el medio ambiente. Sus enfoques van desde crear aplicaciones más eficientes en su uso hasta cambios en los protocolos utilizados para la transmisión de datos.
Para conocer más sobre esta disciplina, en la siguiente entrevista, Martín Miguez, desarrollador de Sofis Solutions, comparte la importancia de generar soluciones que contribuyan a la reducción de la huella de carbono en cada aspecto de la aplicación y ofrece algunos consejos para incorporar buenas prácticas en el desarrollo de software.
¿Cómo surgió la práctica de la Ingeniería de Software Sostenible?
La sostenibilidad es un concepto que está abarcando casi todos los aspectos de nuestra vida. Esto se debe al uso indiscriminado que hemos hecho de los recursos, y que de alguna forma estamos viendo sus consecuencias. Entre ellas, la Ingeniería de Software no escapa a ser parte del problema.
A partir de esto, comienzan a surgir soluciones sostenibles para optimizar los recursos desde el punto de vista de la Ingeniería de Software.
¿Cuál es el papel de la Ingeniería de Software en el Desarrollo Sostenible?
La Ingeniería de Software puede desempeñar roles muy importantes en este aspecto; cada vez es más visible el impacto que las tecnologías tienen en la huella de CO₂. Esto se puede ver principalmente por el consumo de energía, aunque aquí también podríamos hablar más sobre las fuentes generadoras de esa energía, que son la causa principal de esta huella.
Algo que está claro es que se pueden implementar tecnologías sostenibles a largo plazo con una buena conciencia ambiental, desde su creación e implementación —donde la Ingeniería de Software tiene un papel importante— hasta su mantenimiento y actualización.
¿Por qué es importante implementar prácticas de sostenibilidad en el ciclo de vida del software?
Las prácticas de sostenibilidad ayudan en muchos sentidos; el principal es la disminución de la huella de CO₂, y esto se logra con ayuda de herramientas tecnológicas, procesos y prácticas. Pero también ayudan a generar conciencia ambiental en quienes las implementan y comprenden.
Otro factor que impacta directamente es la calidad del software, ya que estas prácticas buscan principalmente minimizar el consumo de energía, lo que se traduce en optimizar el uso de procesadores, la gestión de datos, las interacciones cliente-servidor, etc. Esto da como resultado sistemas más óptimos, con mayor velocidad y más escalables.
¿Cuáles son los beneficios de desarrollar un producto y/o servicio desde una perspectiva sostenible?
Los beneficios son muchos; si hablamos desde el punto de vista de la sostenibilidad, el beneficio directo es la reducción de la huella de CO₂.
Pero existen otros beneficios indirectos que no son menores, desde lo mencionado en la pregunta anterior sobre la calidad del producto, hasta beneficios empresariales. Esto implica la aceptación que tienen este tipo de productos y servicios debido a la creciente conciencia ambiental de la población en general, lo que puede traducirse en la pérdida de clientes o usuarios por no cumplir determinadas normas de calidad ambiental.
¿Cómo se puede incorporar la sostenibilidad en la práctica diaria del desarrollo de software?
El primer paso es crear un plan a nivel empresarial y, a partir de ahí, ir generando prácticas y procesos dentro de las posibilidades para ir construyendo una cultura de desarrollo de software sostenible. Las prácticas y procesos pueden traducirse en políticas, herramientas, metodologías, estándares, entre otros.
Y menciono “dentro de las posibilidades” porque la realidad muestra que muchas de estas prácticas requieren inversión de tiempo y dinero. Otro punto es que depende de los clientes, quienes pueden no estar de acuerdo con determinados cambios o formas de trabajo porque ya tienen metodologías y procesos establecidos. Pero es importante destacar que existen muchas formas de incorporar estas buenas prácticas.
¿Qué tipo de buenas prácticas de software pueden realizarse orientadas al Desarrollo Sostenible?
Hoy en día, se puede observar en algunas empresas el uso indiscriminado de servidores o PCs (varios entornos de desarrollo, pruebas, bases de datos de prueba, aplicaciones X, mocks, etc.) que generalmente están encendidos y conectados 24/7. Esto puede tener diferentes soluciones, como máquinas virtuales, contenedores o uso de la nube. Cada una de ellas aprovecha sus capacidades de optimización.
Otra práctica que puede aplicarse en el desarrollo es optimizar nuestros entornos de trabajo. Dependiendo de cuál sea, existen configuraciones que podemos mejorar para minimizar el uso de procesos (proyectos abiertos que no utilizamos, plugins añadidos que generan procesamiento, solicitudes y actualizaciones constantes, builds automáticos continuos, entre otras cosas). Otro punto importante dentro del desarrollo es el uso del lenguaje que cada uno utiliza; muchas veces estamos acostumbrados a usar métodos o funciones que sabemos que funcionan correctamente, pero desconocemos que existen otros que hacen lo mismo de forma más eficiente.
Aunque existen herramientas que nos ayudan con esto, como SonarQube, entre otras, aquí es importante la capacitación, la investigación o el feedback de los propios desarrolladores, además de generar algunas prácticas o reglas generales que sigan esta dirección.