¿Qué tan verde es su software?

En consecuencia, las empresas deben incluir software en sus esfuerzos de sostenibilidad. Deben articular una estrategia que guíe las compensaciones y permita la flexibilidad, revisar y perfeccionar el ciclo de vida del desarrollo de software, y utilizar software «sostenible» para hacer que los centros de datos basados en la nube sean más ecológicos. Sin duda, el software es la columna vertebral de prácticamente todas las soluciones inteligentes diseñadas para dar soporte al medio ambiente. Es fundamental, por ejemplo, en los esfuerzos para hacer frente a la deforestación y reducir las emisiones. En muchos casos, sin embargo, el software también es parte integral de una huella de carbono que crece rápidamente. De hecho, las tecnologías digitales recientes y proliferantes han empeorado muchos de los problemas ambientales que pretenden resolver. Sin embargo, las empresas pueden hacer del software una parte integral de sus esfuerzos de sostenibilidad teniendo en cuenta su huella de carbono en la forma en que se diseña, desarrolla e implementa y replanteando algunos aspectos de cómo funcionan los centros de datos que proporcionan servicios basados en la nube. Seamos claros: por sí solo, el software no consume energía ni emite ninguna descarga dañina. El problema radica en la forma en que se desarrolla el software para su uso, y luego en la forma en que se utiliza. El software se ejecuta en hardware y, a medida que el primero sigue creciendo, también lo hace confiar en las máquinas para ejecutarlo. Por ejemplo, blockchain impulsa algunas de las soluciones verdes más avanzadas disponibles, como microrejillas que permiten a los residentes comerciar energía respetuosa con el medio ambiente. Y esta innovación de software también está detrás del desarrollo de criptomonedas. En 2019, los investigadores del Universidad de Cambridge estimó que la energía necesaria para mantener la red Bitcoin superó a la de toda la nación de Suiza. Luego está el sector de la tecnología de la información y las comunicaciones en su conjunto. Para 2040, se espera que representen el 14% de los huella de carbono — frente a un 1,5% en 2007. El desarrollo mismo del software puede ser intensivo en energía. Por ejemplo, considere lo que aprendimos cuando entrenamos un modelo de inteligencia artificial (IA) en un pequeño modelo de conjunto de datos de flores de iris. El modelo AI logró una precisión del 96.17% en la clasificación de las diferentes especies de las flores con sólo 964 julios de energía. El siguiente aumento de 1,74% en la precisión requería 2.815 julios de consumo de energía. El último aumento incremental del 0,08% en la precisión tomó casi un 400% más de energía que la primera etapa. Ahora considere ese mismo ejemplo en el contexto de la imagen más amplia de la IA en general. El entrenamiento de un solo modelo de red neuronal hoy en día puede emitir tanto carbono como cinco coches en sus vidas. Y la cantidad de potencia computacional requerida para ejecutar grandes modelos de entrenamiento de IA ha sido aumentando exponencialmente, con un tiempo de 3,4 meses duplicado. Dicho esto, no tendría sentido limitar la dependencia del software como medio para permitir el trabajo, especialmente en el mundo post-Covid donde trabajo desde casa o ubicaciones remotas podría convertirse en la norma para muchos. Tampoco sería una respuesta viable limitar la innovación impulsada por el software. Sin embargo, las empresas pueden hacer del software una parte integral de sus esfuerzos de sostenibilidad al juzgar su rendimiento en función de su eficiencia energética tanto como de los parámetros tradicionales (por ejemplo, funcionalidad, seguridad, escalabilidad y accesibilidad) e incluir prácticas ecológicas y objetivos como criterios para CIO exámenes de rendimiento. En última instancia, las recompensas superarían los desafíos: el escrutinio inicial y creciente que requiere la creación de software ecológico se traduce en un producto de mayor calidad: más delgado, más limpio y más adecuado para su propósito. Estas cualidades también compensan los costes iniciales adicionales. El software ecológico ayudará a las grandes empresas a cumplir sus objetivos de ESG, una medida de rendimiento cada vez más importante para las partes interesadas. Por último, nuestra investigación (que se publicará próximamente) ha demostrado que los ingenieros informáticos recién acuñados están sopesando cada vez más el enfoque de una empresa en sostenibilidad al elegir un empleador; un compromiso con el software ecológico puede ser un atractivo persuasivo. Entonces, ¿cómo pueden las empresas volverse verdes con su software? Es un proceso de tres partes que comienza con la articulación de una estrategia que establece algunos límites, luego se dirige al ciclo de vida del desarrollo del software y hace que la nube sea verde también. Ninguna empresa de la que conozcamos está plenamente involucrada en este proceso, ya que lo describimos y cosechando todos los beneficios del software ecológico a propósito. Sin embargo, un número creciente de empresas, incluyendo Google, Volkswagen y Rainforest (en sí misma una empresa de pruebas de software), están implementando una variedad de los siguientes enfoques y técnicas. Articular una estrategia que guíe las compensaciones y permita la flexibilidad. Esto hará que los equipos de IT piensen cuál debería ser el nivel adecuado de tolerancia para los efectos ambientales de su software. Casi siempre hay compensaciones entre los objetivos empresariales y ambientales, y los ingenieros de software necesitan ser capaces de determinar dónde está la línea de go/no-go. Piense en el modelo de IA que entrenamos en el conjunto de datos de flores de iris. Si ese último paso para aumentar la precisión vale la pena la energía que consume es una decisión empresarial que requiere una orientación clara de la parte superior. Igualmente importante es que la estrategia exija flexibilidad, lo que permite a los ingenieros improvisar y aprender a través de pruebas y errores. El software verde sigue siendo un campo emergente, limitado en gran medida al mundo académico. No hay guías para ingenieros en esta área. Por último, esta estrategia amplia debería sugerir las métricas necesarias para medir el progreso. Para las actualizaciones de software, estas no serían difíciles de establecer (por ejemplo, determinando cuánta energía consume una nueva versión que la versión anterior). Sin embargo, en el caso de los nuevos programas informáticos, sería más difícil definir medidas útiles. Inicialmente podrían incluir medidas tales como la eficiencia del uso de la memoria, la cantidad de datos utilizados y las operaciones de punto flotante (matemáticas) por segundo. Revisar y perfeccionar el ciclo de vida del desarrollo de software. Comience preguntando: ¿Cuál es la huella ambiental más pequeña posible que podríamos hacer con esta aplicación? Utilice esa expectativa para guiar las primeras etapas del ciclo de desarrollo de software. Esta expectativa puede cambiar a medida que adquiera conocimientos, pero puede ser de gran ayuda para informar el estudio de viabilidad y cualquier evaluación de las compensaciones entre enfoques alternativos. A continuación, desarrolle recomendaciones sobre, por ejemplo, los algoritmos, lenguajes de programación, API y bibliotecas que puede utilizar para minimizar las emisiones de carbono. Y requieren una evaluación constante de alternativas que podrían ser más eficientes. Estas evaluaciones pondrían a prueba la compatibilidad del software en varios diseños de hardware con limitaciones de energía, como los controles móviles, automóviles y domésticos. En la etapa de implementación, supervise el consumo de energía en tiempo real mediante técnicas como análisis de código dinámico. Los datos que recopile serán críticos para comprender las brechas entre las opciones de diseño y los perfiles energéticos reales. Algunas empresas ofrecen herramientas para ayudar a desarrollar sistemas cada vez más eficientes y conscientes de la energía. Por ejemplo, Intel ofrece a los desarrolladores herramientas y recursos para gestionar el consumo de energía. La empresa Asistente de desarrollo de software permite a los ingenieros tomar mediciones de energía del sistema a medida que ejecuta cargas de trabajo específicas dentro de su aplicación y determina su eficiencia. Sin embargo, este tipo de herramientas escasean. La evaluación de las compensaciones clave entre las emisiones de carbono y los objetivos empresariales, como la flexibilidad, sigue siendo una subida ascendente. Haz que la nube sea verde. Las aplicaciones modernas casi siempre se implementan en la nube. Sin embargo, el crecimiento exponencial de los servicios basados en la nube ha dado lugar a la rápida expansión de los centros de datos con uso intensivo de energía. Los centros de datos consumen alrededor del 2% de electricidad global hoy; para 2030, podrían consumir hasta un 8%. Hasta la fecha, la mayoría de los esfuerzos para hacer que los centros de datos sean ecológicos se han centrado en optimizar el hardware (reduciendo la incidencia de servidores sobrecalentados) y reducir las emisiones de carbono (aumentando la combinación de energía renovable que los impulsa). Estas técnicas ayudan a abordar el problema; sin embargo, la inclusión de intervenciones de software sostenibles abre nuevas oportunidades para ahorrar energía. Por ejemplo, eliminar copias duplicadas de datos o comprimir datos en fragmentos más pequeños ahorraría energía. También lo haría la implementación de unidades de procesamiento de gráficos para administrar cargas de trabajo en el perímetro (cerca del dispositivo o del usuario final), lo que crea eficiencias al dividir las tareas grandes en otras más pequeñas y repartirlas entre muchos procesadores. La adopción de arquitecturas de servidor más ecológicas probablemente será crucial para ahorrar consumo de energía. El uso de servidores virtuales, por ejemplo, ayudaría a las empresas a escalar sus servidores a petición, ahorrando energía en los centros de datos empresariales. La virtualización permite esencialmente la creación de múltiples entornos simulados (o recursos dedicados) a partir de un único sistema de hardware físico. La contenedorización, esencialmente una mejora con respecto a los sistemas virtuales, es otra opción. Cuando la computación sin servidor separa las aplicaciones a nivel de hardware, la contenedorización las separa en el nivel del sistema operativo. Las arquitecturas de aplicaciones más recientes, como la computación sin servidor o las funciones como servicio (FAaS), permiten aún más control sobre la capacidad y, por extensión, el consumo de energía. La informática sin servidor, por ejemplo, comparte eficientemente los recursos de infraestructura mediante la ejecución de funciones solo a petición. Y dado que factura por tiempo de ejecución, obliga a los programadores a mejorar la eficiencia de sus códigos. Los grandes proveedores de servicios informáticos sin servidor, como AWS Lambda y Microsoft Functions, por ejemplo, proporcionan escalado continuo con un modelo de costes de pago por uso. Ya sea el teléfono móvil el que requiere un uso más eficiente de los recursos y la potencia informática para ahorrar energía o el centro de datos en la nube donde los servidores deben optimizarse para el consumo de energía, la necesidad de software ecológico seguirá creciendo. Al incluir software en sus esfuerzos de sostenibilidad ahora, su empresa tendrá una ventaja en esta importante área. Los autores agradecen a Vikrant Kaulgud y Vibhu Saujanya Sharma de Accenture Labs y Shruti Shalini y Dave Light de Accenture Research por sus contribuciones a este artículo. - Via HBR.org