Arquitectura. Programación. Diseño. Modularidad. Componentes. Intercambiables. Estructura. Construcción. Descentralización.

Ajam.. :thinking:. Las interpretaciones que podemos hacer sobre el título son tan variadas como disciplinas existentes, más aun cuando ellas comienzan a disolverse y mezclarse con otras ramas del conocimiento. Biólogos, ingenieros, psicólogos, filósofos, artistas, y tantas más. Cada cual con su interpretación de la modularidad.

¿Existe algún vínculo entre todas esas definiciones? ¿Podemos lograr una concepción integral al entenderlas? ¿En qué disciplinas no está presente?

Intro

La modularidad es una técnica milenaria que consiste en dividir una tarea en multiples partes para simplificar su creación. De esta forma, en vez de construir un objeto enorme como una piramide en una sola gran pieza, lo cual sería bastante dificil de lograr, lo que hicieron fue construirla desde la sumatoria de miles de piedras manteniendo relaciones de proporción y dimensiones.

Esta metodología de creación sigue aún hoy vigente en cientos de procesos de los más diversos, y continua su expansión a otras areas que hasta hora se desenvuelven de una forma específica. Podemos observarlo en las construcciones civiles, en el software y hardware informático, los famosos juguetes lego, el diseño de espacios interiores y muchos otros más. Pero, ¿qué sucede cuando estas creaciones caducan o necesitan modificar ciertas partes? ¿Fueron creadas para expandirse y perdurar a largo plazo de forma sustentable? El residuo que afrontamos como sociedad es cada vez más alto, y por ello debemos cuestionarnos si los sistemas de producción son eficaces. Basura electrónica, edificios abandonados, casas derrumbadas, investigaciones inconclusas, cintas cinematográficas dañadas, obras artísticas no difundidas son muestras de que muchas de las producciones no están siendo bien planificadas ni aprovechadas en su totalidad como parte del patrimonio de la humanidad.

Antes de emprender el camino oscuro que nos espera, les comparto la situación que inició esta nota.

El origen

Un día encuentro una plaqueta electronica que realice hace muchos años que se encarga de indicar el sentido de giro de un motor a través de unos leds que están ordenados de forma semi-circular.

"¿La podría utilizar hoy? Para medir el volumen del ambiente, o la temperatura, conectarlo al equipo de audio, algo no se.."

No. Se diseñó y desarrolló solo con fines educativo sin preocuparse por estas cuestiones. Se podría haber hecho en varias placas que se conecten, una con los leds, otra con la lógica, etc. Hacerlo a “la Arduino". En este caso la problematica obviamente es menor, aunque me pregunté si no sucedía esto en otras disciplinas y a mayor escala, tanto a nivel educativo como por fuera. Este concepto me resultó tan interesante que no dudé en comprenderlo mejor. Un nuevo camino me esperaba..

Algunos principios

El diseño modular hace hincapié en la versatilidad, sustentabilidad, reutilización y portabilidad que consiguen sus desarrollos, asi como la descentralización y la conexión entre sus partes, la reducción de costos de materiales y tiempo de construcción.

Para conseguirlo es importante que el intercambio de cualquier pieza o componente no afecte al resto del sistema, y esto se consigue mediante un proceso de elaboración por repetición, siendo todas semejantes o basadas en un “molde” o “contenedor” que cumplen con ciertas normas (ISO o IRAM por ejemplo) para estandarizar sus parametros y que otros sepan como vincularse con él de la forma que sea.

Un caso muy conocido es el de los muebles con el uso de cubos de madera, que permiten adaptarse a las necesidades del cliente.

Disciplinas

Hay varios campos en los que la modularidad es asunto rutinario, pero hay otros que no trabajan de esta forma, y sería un gran avance comenzar a replantearnos minimamente.

¿Por qué muchos artistas continuan desarrollando sus obras de forma individual?

¿Tiene sentido que se sigan fabricando objetos sin conocer su proceso? ¿Es posible compartir esa información de forma libre?

En la biología por ejemplo, la modularidad es la habilidad de un sistema para organizarse en pequeñas partes que se relacionan dentro de un sistema completo, como las interacciones moleculares, aunque para la psicología este término se lo puede asociar a la idea del “hombre modular” dentro del modernismo. Wow, parecería que estamos hablando de lo mismo. Desde la construcción civil, se comienza a hablar de la arquitectura prefabricada y su coolaboración hacia la economia circular. ¿Por qué no pensar desde el inicio del diseño de la obra, un posible desmontaje, la reutilización o reciclado de los materiales, o una estructura que se adapte a las necesidades de las personas de la generación actual, pero que pueda adaptarse a las próximas?

Sería muy provechoso continuar reflexionando sobre este concepto en cada una de las disciplinas, pero lamentablemente por una cuestión de tiempo y de falta de conocimiento me centraré en la que creo contribuir más.

Software

La idea de que el software deba estar componentizado (piezas prefabricadas) comenzó a surgir en 1968 por una conferencia de la OTAN sobre la ingeniería de software, titulada “Mass Produced Software Components”.

Creería que más de 50 años despues cualquier persona informática trabaja con componentes. Por citar a dos, los programadores utilizan o crean componentes, que pueden ser librerías, frameworks, micro-servicios u otro tipo de modulos de software, y los arquitectos diseñan la organización de todo el sistema de servicios, definiendo la responsabilidad de cada uno y la relacion entre ellos.

El término modular se lo asocia con less coupled code, es decir, código menos acoplado, que significa de forma breve que las diferentes funcionalidades de un sistema sean independientes entre sí.

La antitesis de esta organización modular a nivel de infraestructura tecnológica es la famosa aplicación “Monolítica”, con la gran ventaja de su sencillez al carecer de una red de servicios con todos los problemas que eso supone, pero sin poder escalar o expandirse de forma ágil y muchas más.

Esta organización de nodos independientes permite, entre otras, balancear cargas, auto escalar cada parte según la demanda, reducir el downtime en caso de fallas (que debemos asumir que puede y va a suceder), tener un sistema mas resiliente, etc.

Algunos de estos conceptos son más conocidos en ingles como:

Resilient systems, Separation of Concerns, SOLID principles, Vertical vs Horizontal scaling

acompañados de frases como: “Reinvent the wheel” o “Put all your eggs in one basket”.

Recomiendo mucho la lectura de libros para afianzar estas ideas teóricas presentes en la vida diaria. “Domain-Driven Design” de Eric Evans me parece un libro grandioso que enseña a comprender el proceso de algo y a diseñar su modelo, siempre simplificado, de la realidad. La idea de crear bloques, Building Blocks, es central en su libro.

Producción

Durabilidad. Disponibilidad. Portabilidad.

¿A cuántas personas les sucede que se les daña una pieza de un producto y el reparo, o es muy costoso por producirse en otro pais, o deben esperar meses hasta que llegue el repuesto, o no se puede arreglar? Un celular que se rompe la pantalla, un libro que se estropea la tapa, una moto. El problema lo paga el usuario final.

Pequeñas piezas estandarizadas y abiertas abren la puerta a que más entidades puedan producirla más facilmente que un producto enorme a medida, hecho que arroja por inducción el aumento de la disponibilidad del producto. Es decir, que si por alguna razón cierto modulo que tenemos se rompe o queremos cambiarlo por otro, la tarea es tan sencilla como conectarla: plug-in.

La modularidad es común en la fabricación, donde se utilizan componentes estándar para construir vehículos y PCs, entre otros productos. Sin embargo, nunca se ha ofrecido a los consumidores una modularidad de tal envergadura, ni sus modos de fabricación han sido compartidos de forma abierta. Las impresoras 3D están evolucionando y podrían ayudar a socializar ciertas producciones.

Como dijimos, es vital que los sistemas pueden intercambiar componentes adaptandose mejor a los requerimientos, en vez de tener que aceptar el paquete entero previamente elegido por el productor. En el software por ejemplo, tenemos al sistema operativo Windows que decide todos los paquetes y funcionalidades mínimas, convirtiendose en un producto rígido que satisface (poco) solamente a usuarios con computadoras relativamente nuevas. Pero, ¿y si necesitamos un sistema operativo para una hardware diferente, como un servidor pequeño? Lo mismo nos sucede con los celulares y otros productos.

¿Qué nos impide como sociedad desarrollar productos que se adecuen al usuario, y cuales son los que necesita? ¿Está la tecnología al servicio de la sociedad? ¿O es dirigida por los productores?

Participe del avance científico pero prisionero del sistema que define la forma y finalidad de la tecnología, la fecha de caducidad, la calidad y otras decisiones, deprecando estandares o no siguiendo ninguno y dejando al usuario con algo que compro pero que ya es “viejo” e incompatible. El usuario hoy está al servicio de otras entidades.

Reflexiones

Es importante que como consumidores fomentemos el uso de estandares y protocolos definidos, asi como el uso de diseños abiertos para permitir la duración y flexibilidad de los productos. Comenzar a desarrollar soluciones modulares libres y abiertas es una forma de contribuir al conocimiento de la humanidad, con herramientas que cualquiera puede utilizar y expandir.

Como vimos al parecer existe una tendencia a mejorar la eficacía de lo que hacemos, concepto que en generaciones anteriores tal vez ni existía, pero aún nos resta un largo aprendizaje para afirmar que tenemos conocimientos sólidos en el desarrollo de creaciones perdurables y expandibles. El trabajo colaborativo interdisciplinario me parece primordial para la gestación de soluciones holísticas.

¡Espero que te haya gustado la nota! :wink: Podes contactarme por Mail y comentarme que te pareció la nota. Tambien si encontraste un bug, estás en desacuerdo o te quedaron dudas!