banner

Blog

Jan 14, 2024

Reutilizar, reducir, reciclar (código): aprovechar el software sostenible

Por Jacob Mathison

El potencial y la calidad de los componentes de software reutilizables (RSC) podrían afectar la forma en que vemos la sostenibilidad web y los productos digitales "verdes". Sin embargo, los RSC son uno de los aspectos menos visibles del ciclo de innovación de una empresa de software o tecnología y, a menudo, permanecen en la parte inferior del barril comercial. El término "componente reutilizable" es demasiado técnico para aquellos que no están involucrados en los esfuerzos de tecnología e innovación y demasiado vago para los programadores (comprensiblemente) que buscan hacer su trabajo con el mínimo esfuerzo. Copiar y pegar unas pocas líneas de código puede tener un impacto en el desarrollo sostenible porque, intencionadamente o no, sigue su principal línea de cuestionamiento: ¿Es eficiente? ¿Es fácilmente comprensible? ¿Es modular? ¿Es rentable?

Es comprensible que las empresas estén interesadas en cómo las primeras tres preguntas impactan en la cuarta y última. Pero, paradójicamente, la mayoría no está dispuesta a invertir el orden en que se mide el impacto en el resultado final. Si se difundiera más información y concienciación sobre la reutilización del software, sería evidente que, como primera definición, "la reutilización del software se basa en la planificación previa para reutilizar un componente de software que satisfaga las necesidades de las organizaciones involucradas en el desarrollo de software en nuevos entornos". contextos". La planificación, la participación y el diseño estratégico van mucho más allá del diseño web basado en componentes (componentes: piense en todos y cada uno de los elementos que son visibles para los usuarios cuando visitan un sitio web o una aplicación).

El aumento de la modularidad en el diseño, las plataformas sin código y las soluciones listas para usar con pilas tecnológicas populares como Vue.js y Laravel no es solo un fenómeno relacionado con el software, sino una respuesta a las crecientes demandas de los consumidores de variedad de productos en un período de tiempo muy corto y al mismo tiempo garantiza la longevidad y relevancia del producto. De hecho, cuando se aplica a los principios generales de diseño, "[m]odularidad en el diseño puede, por lo tanto, definirse como la elección de los límites de diseño de un producto y de sus componentes (...) de modo que las funciones y tareas de diseño sean interdependientes e independientes entre sí". a través de los módulos".

Específicamente en tecnología, los límites del diseño a menudo se determinan al tener equipos dedicados para front-end, back-end, desarrollo de productos y UX/UI, entre otras áreas. Estos límites podrían tomar muchas variantes; en su mayoría, las empresas de software eligen estructuras tipo cápsula en las que se desarrollan elementos funcionales con el objetivo de garantizar la interactividad, tanto con el usuario final como entre los propios elementos de diseño. Muchas bibliotecas de códigos y bibliotecas de estilos conocidas, como Vuetify o Bootstrap, tienen como objetivo mantener intactos los principios de diseño (como la legibilidad y la accesibilidad).

Medir la sustentabilidad del software a menudo puede significar un seguimiento de costos/beneficios, así como modelos económicos de reutilización. En el nivel más básico, la sustentabilidad se puede medir por cuántas líneas nuevas de código se han escrito (lo que no solo requiere esfuerzo humano, tiempo y capacidad profesional, sino que también compromete los tiempos de carga, el procesamiento y el uso del ancho de banda). Incluso en 1992, este concepto estaba lejos de ser nuevo: en relación con la cantidad de líneas de código nuevas que se escribieron para un proyecto, existen métricas concretas para rastrear el beneficio neto de reutilización versus el costo neto de reutilización. Hoy en día, se han sugerido modelos de automatización para medir el ciclo de desarrollo de evolución de mantenimiento para el desarrollo sostenible en software, incluido el uso de enfoques basados ​​​​en modelos, predicciones algorítmicas o aprendizaje automático. Pero implementar nuevas soluciones puede resultar costoso para las pequeñas y medianas empresas.

En respuesta a este problema, los investigadores Maggo y Gupta hablan sobre este aspecto menos visible del software sostenible: "Existe un costo adicional requerido para el desarrollo de componentes de software reutilizables desde cero que se pueden usar para construir y fortalecer sus reservas de software". Para evitar este costo adicional, la clave es la evaluación del proceso de cinco factores que se pueden implementar sin recursos agregados.

Complejidad: Esto mide la complejidad de la arquitectura, el diseño y la implementación de un sistema de software. El objetivo aquí es minimizar la complejidad mediante la creación de código modular, reutilizable y bien organizado, lo que facilita a los desarrolladores la comprensión, el mantenimiento y la creación del sistema existente.

El Rolling Stone Culture Council es una comunidad a la que solo se puede acceder con invitación para personas influyentes, innovadoras y creativas.¿Califico?

Costo: La viabilidad financiera a largo plazo significa personalizar sin la necesidad de rediseñar un sitio web o una aplicación por completo (también relacionado con la capacidad de cambio). Una inversión inicial en diseño de software debería ser suficiente para proporcionar retornos a mediano plazo, ya sea en una estructura B2C o C2C.

Estabilidad:La estabilidad enfatiza el uso de componentes confiables y probados y el seguimiento de las mejores prácticas con respecto al alojamiento y la depuración para garantizar que el sistema se mantenga estable, seguro y resistente si la aplicación o la web necesitan escalar hacia arriba o hacia abajo.

Posibilidad de cambiar: Los componentes de software reutilizables y el diseño de software sostenible deben responder al cambio y proponer cambios rápidos de acuerdo con los nuevos requisitos. Al diseñar software teniendo en cuenta la modularidad y la flexibilidad, la sostenibilidad promueve un código que se puede actualizar o reconfigurar sin interrumpir su funcionalidad principal.

Oportunidad: Esta es la capacidad de entregar productos de software dentro de un marco de tiempo razonable. Significa evaluar prácticas de desarrollo eficientes, como reutilizar código y optimizar flujos de trabajo, para acelerar el proceso de desarrollo y permitir que las empresas tengan una mayor capacidad de respuesta a las tendencias del mercado o las necesidades de los consumidores.

Investigadores de la Universidad de Huddersfield dicen que una de las claves está en la integración del equipo de diseño y software. La integración es "diseñarlos para acomodar cambios futuros en mayor medida sin cambios significativos en la estructura básica del sistema con un costo mínimo". Estos investigadores han demostrado cómo “el conocimiento de las decisiones de diseño arquitectónico de un sistema intensivo en software se pierde fácilmente, lo que conduce a un aumento de los costes de mantenimiento y evolución, y a la erosión del diseño (…)”.

En otras palabras, sugieren que los desarrolladores deben usar sistemas de diseño que resistan alteraciones mínimas a bajo costo sin dejar de ser funcionales. Esto requiere adherirse a las normas internas e internacionales establecidas para los principios de diseño, como la separación de preocupaciones y la integridad conceptual. Es por eso que las arquitecturas de referencia de software (es decir, Bootstrap) que tienen implementaciones exitosas pueden servir como ejemplos de lo que pueden hacer las arquitecturas de software sostenible dentro de familias de sistemas de software o dominios comerciales específicos. Si se implementa correctamente, el conocimiento técnico, cuando se combina con sólidos principios de diseño, es reutilizable: pero ¿puede resistir la prueba del tiempo tecnológico?

Complejidad: ¿Califico? Costo: Estabilidad: Variabilidad: Puntualidad:
COMPARTIR