Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenidos
Visión general .......................................................................................................................................... 2
Introducción ........................................................................................................................................ 2
Un contexto cambiante ....................................................................................................................... 3
Visión general de la teoría de la complejidad ..................................................................................... 5
Complejidad en el diseño de sistemas ................................................................................................ 7
Conceptos clave de los sistemas complejos ........................................................................................... 9
Sistemas de servicio ............................................................................................................................ 9
Abstracción de diseño ....................................................................................................................... 11
Sinergias de diseño ........................................................................................................................... 13
Principios de diseño .............................................................................................................................. 14
Diseño de sistemas en red ................................................................................................................ 14
Tecnologías adaptativas .................................................................................................................... 16
Auto‐organización ............................................................................................................................. 18
Ciclo de vida de los sistemas ‐ evolución .......................................................................................... 20
Arquitectura de sistemas ...................................................................................................................... 22
Arquitectura Orientada a Servicios ................................................................................................... 22
Plataformas Tecnológicas ................................................................................................................. 24
Diseño modular ................................................................................................................................. 26
Arquitectura dirigida por eventos ..................................................................................................... 28
Métodos ................................................................................................................................................ 30
Design thinking ‐ pensamiento de diseño ......................................................................................... 30
En la primera sección del curso, exploraremos algunos de los temas principales que conforman el
diseño y la ingeniería de sistemas en el siglo XXI, como el aumento de la sostenibilidad, la tecnología
de la información, la revolución de los servicios y la globalización económica, proporcionando un
conjunto recurrente de temas que se incluirán en nuestra discusión. Esta sección también le brindará
una descripción general de la teoría de la complejidad y los conceptos básicos que utilizaremos a lo
largo del curso, como el modelo de un sistema, un marco para comprender la complejidad y una
definición de sistemas complejos. La última sección de este modelo ofrecerá una descripción general
del diseño de sistemas complejos, brindándole una descripción clara y concisa de lo que es un sistema
de ingeniería compleja y cómo este nuevo paradigma de diseño difiere de nuestro enfoque tradicional.
A continuación, le presentamos los conceptos clave dentro de este dominio, hablaremos sobre
servicios y sistemas de productos y servicios; Diseñando relaciones sinérgicas para integrar diversos
componentes. En esta sección exploraremos una de las conclusiones clave de todo este curso, la idea
de la abstracción como una herramienta poderosa para resolver la complejidad.
En el tercer módulo del curso discutimos los principios primarios para el diseño de sistemas complejos.
En primer lugar, las redes, con estas redes de sistemas altamente interconectados son su verdadera
geometría, comprenderlos y poder ver los sistemas que estamos diseñando como redes es uno de
nuestros principios clave de los que hablaremos. En segundo lugar, veremos los sistemas adaptativos
y cómo I.T. está habilitando a la próxima generación de tecnologías receptivas, adaptables y
dinámicas, permitiendo la auto organización y una nueva forma de diseño emergente de abajo hacia
arriba. Por último, en esta sección también cubriremos los mecanismos clave de la evolución y cómo
afecta el ciclo de vida de los sistemas que estamos diseñando.
Con la arquitectura de sistemas, comenzamos a cambiar de marcha para hablar sobre los mecanismos
más prácticos de cómo diseñar sistemas complejos basados en un nuevo paradigma de arquitectura
de sistemas que surgió dentro de I.T. en las últimas décadas, lo que se llama arquitectura orientada a
servicios. En esta sección, analizaremos las tecnologías de plataforma y su funcionamiento interno, el
diseño de sistemas modulares y la Arquitectura dirigida por eventos, que se adapta particularmente
bien a la naturaleza dinámica de los sistemas que estamos desarrollando.
Por último, métodos de diseño, presentamos una serie de clases sobre el método de diseño y el
proceso más adecuado para el diseño de sistemas complejos. En esta sección se presentará el
pensamiento de diseño que representa un conjunto repetible de etapas en el proceso de diseño para
resolver problemas complejos.
La sociedad de masas, a diferencia de sus predecesores, se centra en la masa de personas y, por lo
tanto, requiere el desarrollo de sistemas de ingeniería en una escala sin precedentes, la clave para
lograrlo fue la estandarización, la sistematización y la economía de escala a través de la centralización,
el mundo que heredamos está dominado por estos grandes sistemas centralizados de Organización,
tales como gobiernos, fábricas y corporaciones. Inherente a este modelo centralizado es la dicotomía
entre productores y consumidores de productos y servicios. Los sistemas están diseñados y
desarrollados por una minoría de profesionales que crean productos terminados que se envían a los
usuarios finales. El modelo industrial se centra en la provisión de objetos tangibles, estos productos
están diseñados como productos terminados que operan en un aislamiento relativo entre sí y siguen
un ciclo de vida lineal desde la producción al consumo y disposición.
Por último, estos productos han sido diseñados y producidos en gran medida para menos del 20 por
ciento de la población mundial que forma parte de la clase media mundial. Podemos decir que el
modelo industrial ha tenido un gran éxito en lo que fue diseñado para lograr, la provisión de un nivel
de vida material relativamente alto para la mayoría de las personas dentro de las economías
industriales avanzadas. También podemos decir que este modelo industrial está bien desarrollado y,
debido a su éxito, se está exportando o duplicando a nivel mundial. Ahora podemos mover el capital
financiero y la experiencia para producir rascacielos, autopistas y aeropuertos en casi cualquier lugar
del planeta desde Shenzhen a Lagos.
Pero a medida que avanzamos hacia el siglo XXI, varios factores están trabajando para revelar la
limitación inherente a este modelo. Ahora analizaremos los factores clave que nos llevan a un entorno
más complejo en el que tenemos que diseñar sistemas para el siglo XXI. Las primarias entre estas son;
El auge del paradigma de la sostenibilidad; El rápido y penetrante crecimiento de la tecnología de la
información; El enorme crecimiento de la economía de servicios. Y la expansión de la globalización
económica. En primer lugar, la sostenibilidad; La creciente conciencia de la necesidad de
sustentabilidad puede derivarse de una ecuación muy simple que es una posición predeterminada
dentro del modelo industrial, el crecimiento exponencial, dentro de un sistema lineal que depende de
recursos finitos, es insostenible.
Para que este sistema continúe en el futuro, parte de esta ecuación tiene que cambiar, el crecimiento
exponencial en el consumo de recursos continuará casi con toda seguridad a medida que la mayoría
de la población mundial continúe ingresando a la economía global. La disponibilidad de recursos será
poco probable que cambie en una dirección positiva, el logro de la sostenibilidad implicará muchas
cosas, pero el cambio de un modelo lineal a uno no lineal estará en el centro de la misma.
En segundo lugar, la tecnología de la información; La revolución de la información está teniendo un
efecto profundo y radical en casi todas las áreas de la sociedad y la tecnología, permitiendo nuevas
formas de organización en red, ya que los sistemas se vuelven desagregados de ser monolíticos,
estructurados y estáticos a ser cada vez más distribuidos, dinámicos y heterogéneos.
TI coloca las plataformas que conectan a las personas, como la red mundial, o la tecnología a la
tecnología, como el Internet de las cosas, en el centro de los desafíos de diseño que se avecinan,
algunas de estas plataformas son verdaderos sistemas complejos, compuestos por millones o incluso
miles de millones de nodos que se interconectan densamente, interactúan y son capaces de adaptarse
a medida que evolucionan con el tiempo. La tecnología de la información también está teniendo un
fuerte efecto democratizador en el diseño, ya que las herramientas para el diseño y la producción se
ponen cada vez más accesibles, el mundo formal del diseño profesional, que una vez fue cerrado en
las patentes, está dando paso a la aparición de ecosistemas para la co‐creación, donde el usuario final
se está convirtiendo en una nueva fuente de innovación.
En tercer lugar, la economía de servicios; El modelo industrial está preparado para la producción y
distribución de bienes tangibles, pero en las últimas décadas se ha visto un enorme crecimiento en la
sección de servicios de la economía, los servicios de hoy conforman aproximadamente dos tercios de
la producción económica mundial y dominan las economías avanzadas. Los servicios se basan en una
lógica muy diferente a los productos. El diseño de servicios no se trata de diseñar más cosas, sino de
la función o servicio que brindan y de la interconexión de estos servicios en procesos centrados en las
necesidades del usuario final. Nos estamos moviendo hacia un mundo menos sobre productos y más
sobre redes dinámicas de servicios en tiempo real. Los servicios son todo acerca de las personas, la
mayoría de los problemas realmente difíciles en el futuro son no tanto técnicos, son de naturaleza
social. Un sistema de servicio bien diseñado, bien construido y bien administrado debe centrarse y
optimizarse principalmente alrededor de las personas, ya sea que estemos hablando de un paciente
en un sistema de salud, un cliente de una empresa o un ciudadano que interactúa con su gobierno.
Esto nos lleva a uno de los temas clave en el diseño de sistemas complejos, que es lo que llamamos
sistemas socio técnicos. Por razones que veremos más adelante, el mundo industrial no fue diseñado
para las personas, fue diseñado para procedimientos, estándares y Los sistemas, las máquinas eran
los íconos e ídolos de la era industrial, racionales, estables y predecibles, las personas esperábamos
que encajaran en este modelo. El resultado neto de esto es que heredamos un mundo enormemente
alienante que excluye el compromiso total y los recursos del dominio social y cultural. Apenas estamos
comenzando a reexaminar el enorme potencial que ofrecen a través de innovaciones como las redes
sociales, el mundo que diseñaremos para el siglo XXI es más social, más personal y humano. Esta capa
social que se está colocando sobre todo y cómo interactúa e interconecta con el mundo técnico de la
tecnología es otro tema importante que revisaremos a lo largo del curso.
Por último, la globalización económica; Hasta la fecha, la mayoría de los productos dentro del sistema
capitalista industrial fueron diseñados para una pequeña minoría de la población del mundo que vive
en economías occidentales avanzadas, en estos países se han cumplido las necesidades que el
capitalismo ha trabajado tan duro para satisfacer. Mientras tanto, en otras partes del mundo, las
necesidades humanas básicas como el agua potable y el saneamiento no se satisfacen, en un mundo
interconectado como el nuestro, esta situación es cada vez más inestable.
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
El modelo formal de diseño y desarrollo que forma parte del capitalismo industrial ha creado sistemas
de dos niveles en muchas partes del mundo en desarrollo, donde usted es parte de la clase media y
tiene acceso a productos de mercado, servicios públicos, derechos legales. y así sucesivamente o no
lo eres, y simplemente te dejan improvisar, como es el caso de más de mil millones de personas que
viven en barrios marginales de todo el mundo.
Uno de los desafíos para el diseño en el futuro es la expansión del diseño formal para todos los niveles
económicos, no se trata de la caridad, se trata de la innovación en el diseño de productos y modelos
de negocios para poder alcanzar los niveles económicos más bajos y lograr un retorno de la inversión
viable y hay un número creciente de empresas que lo demuestran.
El mundo postindustrial en el que vivimos es como despertar la mañana después de una fiesta con
resaca, heredamos un mundo donde vivimos dentro de sistemas industriales masivos e inertes que
están rodeados de desafíos. La fabricación de más productos que son más rápidos, más fuertes y más
grandes se está convirtiendo cada vez más en productos básicos. Si bien se está abriendo un nuevo
mundo de valor en el diseño de sistemas complejos que conectan recursos preexistentes para brindar
a los usuarios soluciones a estos problemas del mundo real.
En resumen, entonces; Podemos decir que el modelo industrial de diseño de sistemas ha tenido
mucho éxito en el desarrollo de un conjunto de tecnologías industriales, desde microondas a aviones,
que nos permiten tener un nivel de bienestar material mucho mayor del que antes era posible. Pero
hoy se nos presentan nuevos desafíos que nos obligan a ir más allá de su lógica. La necesidad de
diseñar ciudades sostenibles, servicios de salud que permitan a las personas vivir una mejor calidad
de vida y grandes sistemas de información, todo esto nos presenta el desafío de desarrollar sistemas
complejos y requiere un nuevo paradigma en el diseño.
Visión general de la teoría de la complejidad
Algunos de los sistemas que tenemos que diseñar y desarrollar hoy en día son muy complejos, como
las redes eléctricas inteligentes, los sistemas de información empresarial, las redes de transporte
urbano, etc., pueden incluir millones o incluso miles de millones de componentes, muchas partes
interesadas diferentes con objetivos diversos, densas redes de interconexiones e interdependencias
que pueden ser desconocidas y que aún están evolucionando con el tiempo, realmente captar y
experimentar la complejidad de estos sistemas es intimidante, como mínimo.
La única forma de superar esta complejidad del mundo real que nos rodea es a través de la
abstracción, es decir, los modelos conceptuales que capturan las características subyacentes.
Escondiendo los detalles y en el mundo del diseño de sistemas complejos, es la teoría de la
complejidad la que nos ofrece estos modelos conceptuales abstractos básicos para trabajar. La teoría
de la complejidad ha surgido de varias áreas diferentes en las últimas décadas, en particular de la
física, las matemáticas, la informática y la ecología. Todas estas áreas tan diferentes se han encontrado
tratando de modelar, diseñar y administrar lo que ahora llamamos sistemas complejos. Los sistemas
complejos son sistemas compuestos de muchas partes diferentes que están altamente
interconectadas y son capaces de adaptarse.
Así que vamos a descomprimir un poco, en primer lugar, los sistemas complejos son un tipo de
sistema. Un sistema es solo un conjunto de cosas que realizan alguna función colectiva. Por lo tanto,
el cuerpo humano es un sistema el que consta de muchos órganos individuales que funcionan en
conjunto como una totalidad funcional, un negocio es otro ejemplo de un sistema, muchos individuos
y departamentos diferentes funcionan como una totalidad para producir colectivamente algún
conjunto de productos o servicios. Y, por supuesto, hay muchos otros ejemplos de sistemas tales como
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
ecosistemas, sistemas hidráulicos, sistemas sociales, etc. Aunque no todo es un sistema, si tomamos
una colección aleatoria de cosas, decimos un disco duro, una luz y un reloj y los juntamos, esto no es
un sistema, es simplemente un conjunto de elementos porque no están interconectados y son
interdependientes en la realización de alguna función colectiva.
Debido a que los elementos dentro de un sistema realizan alguna función colectiva, se dice que los
sistemas son mayores que la suma de sus partes. Es decir, el sistema en su conjunto tiene propiedades
y funcionalidad que ninguno de sus elementos constituyentes posee, una célula vegetal es un ejemplo
de esto, está compuesta de muchas moléculas inanimadas pero cuando las juntamos obtenemos una
célula que tiene Las propiedades de un sistema vivo, por lo que no es ningún elemento que tenga las
propiedades de la vida, sino que es la forma particular en que organizamos estas moléculas las que
dan lugar a esta propiedad emergente del sistema vivo como un todo.
Una cosa clave a entender sobre el pensamiento sistémico es que representa una alternativa a nuestra
forma de pensar científica moderna que se enfoca principalmente en dividir las cosas en sus partes
constitutivas para analizar estas partes y luego trata de entender todo el sistema como simplemente
la suma de estos elementos individuales. Este enfoque funciona bien cuando tratamos con conjuntos
de cosas que no tienen propiedades emergentes, pero debido a que algunos sistemas, de hecho,
muchos sistemas, tienen estas propiedades emergentes como un todo, este método, que también se
llama reduccionismo, no siempre funciona mejor, en cuyo caso necesitamos usar el pensamiento de
sistemas que pone mayor énfasis en la comprensión de los sistemas en su totalidad y dentro del
entorno que les da contexto.
Así que esa es una visión general muy rápida del pensamiento de sistemas, pero para llegar a sistemas
complejos necesitamos agregar complejidad a esto. Los sistemas tienen una serie de propiedades que
los hacen complejos. En primer lugar, la cantidad de elementos dentro de nuestro sistema, esto es
bastante sencillo cuantas más partes haya, más complejo será. En segundo lugar, la complejidad es un
producto del grado de conectividad entre estos elementos, cuanto más interconectados e
interdependientes sean, más complejo será nuestro sistema. Dentro de los sistemas simples, hay
pocas conexiones entre los elementos y es relativamente fácil entender las relaciones directas de
causa y efecto, es decir, podemos dibujar una línea directa entre una sola causa y un solo efecto, por
lo que llamamos a estas simples organizaciones, sistemas lineales. Pero cuando aumentamos la
conectividad dentro del sistema y especialmente cuando hay un gran número de elementos, estas
relaciones de causa y efecto se vuelven más complejas, ya que puede haber múltiples causas para
cualquier efecto dado o viceversa, a diferencia de nuestro sistema lineal simple. Llamamos a estas
organizaciones más complejas, sistemas no lineales, y la no linealidad es una propiedad clave de los
sistemas complejos.
La complejidad también es producto del grado de diversidad entre elementos. Cuando todos los
elementos dentro de nuestro sistema son muy similares u homogéneos, es mucho más sencillo
modelar, diseñar o gestionar, en lugar de tratar con una organización heterogénea compuesta de
muchas partes diferentes, cada una con su propio conjunto único de propiedades. Por último, la
complejidad es producto del grado de autonomía y adaptación de los elementos dentro del sistema.
Cuando los elementos tienen un nivel de autonomía muy bajo, el sistema puede diseñarse,
administrarse y controlarse de manera centralizada de manera descendente. Pero a medida que
aumentamos la autonomía de los elementos, esto ya no es posible a medida que el control y la
organización se distribuyen y cada vez son más las interacciones a nivel local que definen cómo se
desarrolla el sistema.
Así que ahora sabemos un poco acerca de la teoría de la complejidad y tenemos una definición de
trabajo para lo que es un sistema complejo, de modo que cuando escuchamos a alguien hablar sobre
un sistema complejo, sabemos lo que significan, es un sistema compuesto de partes múltiples y
diversas que están altamente interconectadas y capaz de adaptarse. Incluso podríamos tener en
mente algunos ejemplos, como los mercados financieros con muchos comerciantes altamente
interconectados que se adaptan al comportamiento de los demás a medida que interactúan a través
de compras y ventas. O un ecosistema con múltiples especies diferentes que son interdependientes y
se adaptan entre sí y con su entorno. O una red de cadena de suministro con muchos productores y
distribuidores diferentes que interactúan y se adaptan entre sí para entregar un producto. Por
supuesto, hay muchos más ejemplos de sistemas complejos, pero nos resumiremos aquí y hablaremos
sobre la aplicación de la teoría de la complejidad al diseño y la ingeniería en la siguiente sección.
Complejidad en el diseño de sistemas
El diseño de sistemas complejos representa un paradigma alternativo a nuestro enfoque de ingeniería
de diseño tradicional. El paradigma del diseño de sistemas complejos se centra en el desarrollo de
sistemas abiertos que integran diversos componentes a través de redes dinámicas, con una
funcionalidad global emergente desde abajo hacia arriba a medida que los elementos interactúan, se
adaptan y evolucionan con el tiempo. Esto contrasta con un enfoque más tradicional, que se centra
en el desarrollo de objetos discretos y bien definidos al dividirlos en componentes individuales y luego
coordinar estos componentes dentro de un diseño global de arriba hacia abajo. Ejemplos clásicos de
estos complejos sistemas de ingeniería son Internet y las ciudades, pero también los sistemas de
atención médica, las redes eléctricas, las carteras financieras, las redes logísticas y las redes de
transporte.
El diseño y la ingeniería son actividades humanas muy amplias y fundamentales, y existen muchas
definiciones diferentes para ellas. Sin embargo, en el corazón de muchas de estas definiciones está el
diseño como un proceso. Ese es un proceso en el que concebimos una solución original o mejorada
para lograr un estado final óptimo y deseado. Luego, identificamos el conjunto de factores y
restricciones dentro del entorno dado y, por último, desarrollamos un modelo para la disposición de
un conjunto de elementos para lograr este estado final deseado, es decir, el diseño. Por lo tanto, ya
sea que estemos diseñando una bicicleta, un nuevo proceso de producción para nuestra fábrica o
diseñando algún servicio de atención médica, podemos decir que el diseño se trata de la disposición
de los elementos dentro de un sistema para lograr una funcionalidad global óptima. Dentro de la
ingeniería, este óptimo funcional normalmente se habla y cuantifica en términos de la eficiencia del
sistema. Entonces, un paradigma de diseño es un enfoque general que consiste en un conjunto de
suposiciones y teorías básicas sobre cómo funciona el mundo que queremos diseñar, junto con un
conjunto complementario de principios y métodos con los cuales abordar este proceso de diseño.
Como muchas otras áreas, nuestro paradigma moderno de ingeniería hereda su fundamento teórico
de la ciencia moderna y, en particular, de la física clásica. Un método clave empleado por ambos es el
reduccionismo. El reduccionismo sostiene que un sistema complejo no es más que la suma de sus
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
partes y que su cuenta puede reducirse a las cuentas de sus constituyentes individuales. El enfoque
reduccionista da como resultado una visión del mundo que se compone de componentes aislados que
interactúan en una forma lineal predeterminada, a veces llamada el universo del trabajo del reloj. Al
igual que cuando ponemos nuestras gafas reduccionistas, todo comienza a parecer pequeños
engranajes deterministas en una máquina enorme. Por lo tanto, el enfoque reduccionista aplicado a
los resultados de ingeniería en la descomposición o descomposición de sistemas completos en
componentes discretos que se pueden aislar y modelar usando ecuaciones lineales. La funcionalidad
general del sistema se logra luego mediante la definición de un plan general de arriba hacia abajo
sobre cómo todos estos componentes encajan de nuevo. Para lograr esta funcionalidad general del
sistema, es importante que los elementos puedan estar restringidos, es decir, sean relativamente
estáticos y su comportamiento pueda ser predeterminado y, por lo tanto, controlado. El enfoque
reduccionista ha funcionado bien en la ingeniería de puentes, aviones y rascacielos. Estos sistemas
están diseñados para ser, y queremos que sean, estables, predecibles y confiables. El reduccionismo
funciona bien cuando se trata de sistemas con un bajo nivel de interconectividad e interdependencias,
donde los componentes son estáticos, controlables y el entorno es relativamente inalterable.
Pero lo que sucede cuando este no es el caso, cuando tenemos que diseñar sistemas de información
donde los componentes están altamente interconectados e interdependientes, cuando tenemos que
construir ciudades sustentables con múltiples partes interesadas que tienen sus propias agendas o
sistemas de infraestructura que tendrán que operar en ¿Un cambiante entorno de futuro incierto
creado por el cambio climático? En este caso, nuestros supuestos básicos o paradigma de diseño
deben cambiar a uno que esté más enfocado en las conexiones que integran diversos componentes
en los sistemas en lugar de nuestro paradigma tradicional basado en componentes, y aquí es donde
entra en juego el diseño de sistemas complejos.
En primer lugar, los sistemas complejos son sistemas abiertos. En el diseño y la ingeniería
tradicionales, estamos tratando con cosas como sillas, puentes y edificios. Tienen límites bien
definidos.
Podemos controlar completamente todos los elementos dentro de estos límites y diseñar
completamente el sistema.
Esto los hace ordenados y predecibles. Con el diseño de sistemas complejos, lo que estamos tratando
son sistemas abiertos. Piense en las redes de energía eléctrica, las ciudades o Internet en sí, un sistema
masivamente modular y distribuido. No tiene límites definidos.
Si bien nuestro enfoque tradicional se centra mucho en los componentes, es decir, en el diseño de las
cosas, el diseño de sistemas complejos consiste en conectar estas cosas entre sí, y las redes son las
plataformas a través de las cuales conectamos las cosas con los sistemas que ofrecen funcionalidad.
En lugar de centrarse en las propiedades de las cosas, es decir, cómo hacerlas más grandes, más
rápidas y mejores, el enfoque principal aquí es cómo diseñar los protocolos e interacciones para que
los diversos componentes puedan trabajar juntos. Piense en las redes eléctricas inteligentes. Lo que
estamos diseñando aquí es una red a través de la cual múltiples componentes (medidores y
generadores de energía y diferentes dispositivos eléctricos) se pueden comunicar e interoperar a
través de un conjunto estandarizado de protocolos.
Cuando intentamos aplicar este enfoque para diseñar algo como ciudades enteras, los resultados
pueden ser desastrosos, un desperdicio masivo de recursos, entornos sumamente alienantes y de
desconexión. En estos sistemas complejos, la capacidad real de actuar, de desplegar capacidades, se
encuentra en el nivel local. Piensa en las redes sociales. Una red social sin sus usuarios es
esencialmente nada. Al final del día, son los usuarios quienes realmente crean el valor del sistema.
Tratar de controlar la red probablemente terminará en una sobrecarga con restricciones de nivel del
sistema. Los usuarios se desconectarán y simplemente se retirarán. En sistemas de ingeniería
compleja, la funcionalidad global surge de la auto organización de elementos a nivel local. Por lo tanto,
no buscamos diseñar el sistema en todos sus detalles, sino que nos centramos en configurar el
contexto y las interacciones locales que pueden conducir a una coordinación global efectiva.
El sistema funcionará, las condiciones a las que se enfrentará y las tareas que deberá realizar. En los
sistemas de ingeniería compleja, los componentes tienen un alto grado de autonomía, ya sea que
estemos hablando de sitios web en Internet o donde las personas deciden construir sus casas o invertir
su dinero. Los elementos se están adaptando a su entorno local y, por lo tanto, el estado del sistema
es un producto del proceso evolutivo que resulta de esto. Su capacidad de adaptación y evolución
permite que estos sistemas operen en entornos más complejos y volátiles, donde el conocimiento
completo del sistema y su entorno es imposible.
Conceptos clave de los sistemas complejos
Sistemas de servicio
Un sistema de servicio es una combinación coherente de personas, procesos y tecnología que ofrece
algo de valor a un usuario final. Los sistemas de servicios son un tipo de complejo socio técnico.
Sistema que está diseñado para ofrecer cierta funcionalidad dentro de un contexto particular a un
usuario final en particular mediante la agregación de diferentes tecnologías y personas a través de
procedimientos.
Ejemplos de sistemas de servicio son todas las formas de educación, entretenimiento, sistemas de
transporte y servicios de telecomunicaciones, entre muchos otros.
El modelo industrial para diseño e ingeniería estaba o está muy enfocado en la producción de cosas.
Así, vivimos en un mundo de cosas aisladas, que llamamos productos: automóviles, relojes, mesas y
lavadoras. Se conciben, diseñan, desarrollan y operan en un aislamiento relativo entre sí. Pero, en las
últimas décadas, ha habido una revolución silenciosa pero fundamental en los servicios, ya que han
llegado a dominar las economías postindustriales.
Los servicios no son solo otro sector de la economía. Representan un nuevo paradigma en la forma en
que pensamos sobre los sistemas que diseñamos, uno que cambia el enfoque de tecnologías aisladas
a sistemas integrados. Dentro del paradigma de servicios, el mundo postindustrial está saturado de
productos y personas que ya no quieren más cosas.
Los servicios son esencialmente el producto de conectar muchos productos, es decir, la integración de
productos en sistemas de servicios, lo que llamamos sistemas de servicios de productos, o más
simplemente sistemas de servicios. Los sistemas de servicio se pueden caracterizar por el valor que
resulta de la interacción entre sus componentes. Un servicio para compartir autos podría ser un buen
ejemplo de esto. Al conectar a las personas, la tecnología y la información, podemos ofrecer al usuario
final casi nada más que la funcionalidad o los servicios puros de la movilidad personal. Otro buen
ejemplo de un sistema de servicio de productos del mundo real es Rolls‐Royce, que produce motores
a reacción, pero no los venden a sus usuarios finales. Los prestan como un servicio a través de lo que
denominan su programa "potencia por horas", la aerolínea obtiene la funcionalidad del motor como
un servicio, pero la propiedad y el mantenimiento permanecen en manos del productor. El exitoso
sitio web Airbnb es otro ejemplo de un sistema de servicio de productos. Proporcionan una interfaz y
una plataforma comunes para integrar a muchos proveedores diferentes de alojamiento para ofrecer
un servicio unificado al usuario final.
Este concepto de servicio es muy importante en el diseño de sistemas complejos, ya que ayuda a
cambiar el enfoque a lo que es realmente importante, es decir, las relaciones entre los componentes,
todo el sistema y, lo que es más importante, la funcionalidad del sistema.
Porque al final del día, realmente no queremos cosas, componentes o incluso sistemas, lo que
realmente queremos es funcionalidad, funcionalidad pura, y eso es lo que llamamos un servicio.
Al enfocarnos en este servicio final, podemos trabajar hacia atrás para preguntar cuáles son los
elementos básicos que necesitamos para brindar esto, o qué necesitamos para conectarnos para
entregar esta funcionalidad. La mayoría de estas cosas ya están ahí fuera; Solo necesitamos diseñar
nuevas configuraciones, nuevos marcos para su integración. Nuestro ejemplo de Airbnb es bueno. Los
componentes de su sistema, es decir, las personas que realmente proporcionan el alojamiento, ya
estaban allí. Airbnb acaba de crear una nueva plataforma e interfaz para conectar estas cosas a la
prestación de un servicio integrado.
Este nuevo paradigma de sistemas de servicio trae consigo una nueva lógica que es muy diferente a
nuestra tradicional centrada en el producto. Así que echemos un vistazo a algunas de las
características clave de los sistemas de servicio. En primer lugar, los servicios son intangibles. No se
pueden tocar, agarrar, mirar u oler. La tangibilidad es un factor importante de los bienes industriales
sobre los cuales se basa gran parte de nuestra economía. Se pueden cuantificar, tasar, comprar,
vender y poseer fácilmente. Muchos servicios solo tienen valor en uso, lo que significa que el valor del
servicio a menudo solo se libera cuando se utiliza el producto. Así, la aplicación se desplaza de la
propiedad al acceso. Una consecuencia de esto es que definir y medir el valor entregado se vuelve
más complejo con el diseño de nuevos modelos de negocios más sofisticados que se mueven a la
vanguardia. Esta naturaleza inmaterial de los servicios también significa que el cambio hacia los
servicios representa una forma poderosa de hacer más con menos, desmaterializar nuestras
economías y, a menudo, se presenta como un método importante para lograr la sostenibilidad.
Cuando vendemos soluciones en lugar de productos, para ofrecer estas soluciones de manera
adecuada necesitamos un profundo conocimiento de las necesidades y el contexto particulares del
usuario final.
Mientras que los productos existen en ubicaciones particulares dentro del espacio y con frecuencia se
venden como productos excepcionales, los servicios son más sobre el tiempo. Las soluciones
integradas implican asociaciones a largo plazo entre clientes y productores. Por ejemplo, Nike vende
zapatillas para correr. Comprar un par de zapatos deportivos es una compra que se hace una vez, pero
al crear Nike Plus, un servicio de entrenamiento digital que se conecta a una plataforma web donde
los usuarios pueden intercambiar su rendimiento de ejecución, han logrado convertir el producto en
una instancia. de una relación de entrega de servicio prolongada con sus clientes que probablemente
los verá volver a comprar zapatos en el futuro simplemente para continuar con el servicio.
En los entornos de servicio, el cliente proporciona entradas al proceso de servicio, y con frecuencia el
cliente está presente durante el servicio y desempeña un papel activo. Por lo tanto, el valor es co‐
creado por el cliente y el productor. A esto se suma el hecho de que los usuarios finales desean
servicios integrados y, a medida que los servicios se vuelven más sofisticados tecnológicamente con
las empresas centradas más en sus capacidades básicas, las redes de empresas deben cooperar
durante períodos prolongados de tiempo para garantizar el diseño y la entrega de estos servicios
A medida que las redes de tecnología de la información en nuestro mundo, la vanguardia de los
desafíos de diseño se convierte en el diseño de estos sistemas de servicios complejos que pueden
integrar muchos componentes diversos en redes dinámicas en tiempo real que envuelven al usuario
final para simplificar el complejo y entregarlo con un diseño de servicio perfecto. El paradigma de
servicios cambia nuestra concepción de lo que estamos diseñando cuando hablamos del diseño de
sistemas complejos. Eso es un cambio de desarrollar una cosa a desarrollar una función o servicio, que
proporciona una solución a un usuario final en particular. Luego podemos preguntar qué recursos o
qué componentes necesita uno para integrarse en un sistema para entregar esta funcionalidad.
Abstracción de diseño
La abstracción en el diseño es el proceso de eliminar niveles sucesivos de detalle de una
representación para capturar solo las características esenciales de un sistema. A través del proceso de
abstracción, un diseñador puede ocultar la información irrelevante sobre un sistema para reducir la
complejidad y enfocarse solo en lo que es de interés esencial. La abstracción dentro de un diseño
ayuda a definir qué es de relevancia general para todo el sistema y qué es específico para aplicaciones
particulares de la misma, lo que hace posible diseñar sistemas de múltiples niveles en los que subsisten
subsistemas más pequeños y específicos dentro de marcos más grandes y genéricos.
En los sistemas complejos, siempre hay dos niveles fundamentalmente diferentes del sistema: el
micro y el macro, o lo que también se puede llamar el local y el global. Esto contrasta con los sistemas
lineales simples, donde es posible reducir todo el sistema a un nivel, y se debe al hecho de que, en
primer lugar, los sistemas complejos se componen de muchas partes.
Podemos estar hablando de millones, como en el número de habitantes de una ciudad, o miles de
millones, como en el número de dispositivos conectados a Internet. Un número como un millón es
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
algo muy abstracto, tratando de relacionar un número como un billón con nuestra experiencia física
diaria en la que realmente estamos tratando con números como 5, 10 o posiblemente 100. Por lo
tanto, hay una gran diferencia o diferencia en la escala. entre cualquier nodo individual en el nivel
local y el sistema en su totalidad.
En segundo lugar, dado que los componentes tienen cierto grado de autonomía, se están adaptando
a su entorno local. Estos componentes a menudo son muy simples y no responden a la información a
nivel global. Por lo tanto, un patrón de orden puede desarrollarse y, a menudo, se desarrolla en el
nivel micro, y un segundo patrón emerge o se impone en la escala macro como resultado del intento
de diseñar el sistema para tener alguna forma de coordinación global. Un ejemplo de esto podría ser
el uso oficial de dos idiomas diferentes en muchas partes del mundo, donde tenemos el nivel local
que ha emergido orgánicamente y el inglés que se ha colocado encima de esto para hacer que el
sistema sea más interoperable en el mundo a nivel global. Por último, debido al alto grado de
conectividad dentro del sistema, tenemos muchas interacciones. Estas interacciones llevan
inevitablemente a la sincronización de elementos, lo que da lugar a patrones de macro escala. Esto se
llama emergencia. Los atascos de tráfico son un buen ejemplo de emergencia, al igual que las corridas
bancarias. El resultado neto de todo esto es que tenemos dos niveles cualitativamente diferentes
dentro de sistemas complejos, lo que significa que no se pueden reducir a un solo nivel. Esto hace que
diseñar y administrar estos sistemas sea mucho más difícil.
Primero debemos ser conscientes de esta naturaleza multidimensional de los sistemas complejos, y
ser conscientes de que, si intentamos reducirlos a sistemas mono dimensionales simples, habrá
consecuencias no deseadas y desafortunadas. Por lo tanto, tenemos que aprender a diseñar para esta
naturaleza multidimensional a sistemas complejos. Para hacer esto, tenemos que ser capaces de
estructurar y modelar el sistema que estamos diseñando de acuerdo con sus diferentes niveles de
abstracción. Pero ¿qué es la abstracción? La abstracción es una herramienta poderosa usada en todas
las áreas de matemáticas, ciencias e ingeniería. Quizás la forma más fácil de entenderlo es como un
proceso de eliminar capas sucesivas de detalles de nuestra representación del sistema para capturar
sus características esenciales, lo que podríamos llamar sus características globales; Son comunes a
todos los componentes y, por lo tanto, están en el nivel de los sistemas.
Esto es como hacer zoom en un mapa satelital de una ciudad. Cada nivel tendrá un cierto grado de
detalle, creando un cierto tipo de estructura que servirá para definir el patrón en el nivel inferior. Por
lo tanto, vemos cómo los sistemas de ingeniería complejos son lo que llamamos sistemas de sistemas.
Pero a diferencia de los sistemas mecanicistas donde cada nivel es solo una versión escalada de los
componentes debajo de él, lo que los matemáticos llaman invarianza de escala, los niveles a sistemas
complejos pueden entenderse como invariantes de escala, pero también tienen su propia variación y
dinámica internas que no pueden estar completamente abstraído de distancia. Esto es característico
de las estructuras fractales, estructuras geométricas que tienen esta propiedad invariable con la escala
(por ejemplo, las arterias del cuerpo humano), la estructura de los copos de nieve, la formación de
montañas rígidas y las costas del mar. Si tomamos uno de estos, como el litoral, y lo ampliamos, la
estructura general en cada nivel será la misma, pero no será exactamente la misma. Habrá variaciones
y diferencias únicas en cada nivel.
Imagina que uno está diseñando un programa de ajuste estructural para la economía de Mongolia.
Ninguna cantidad de análisis de datos y análisis de nuestra sede del FMI nos dirá cómo se desarrollarán
realmente las cosas en el terreno. Sí, nuestros modelos económicos abstractos nos dirán cómo
funciona el sistema en el nivel genérico global, pero hay otro nivel en la economía mongol que
representa una mezcla social, cultural y geográfica particular, que es única en este caso particular de
Una cosa que hay que sacar de esto con respecto a nuestra metodología de diseño es la importancia
de los estudios etnográficos y la experiencia real del usuario final. Los modelos abstractos son una
cosa, pero en estos grandes sistemas complejos, pasarán por transiciones de fase a medida que se
implementen en tierra. Si diseñamos una intervención militar en Irak sin comprender el contexto a
nivel local dentro del cual se lleva a cabo, entonces esta transición de fase puede ir en cualquier
dirección. Una experiencia real del nivel local es crucial si esperamos tener una fuerte influencia sobre
este proceso. Con la gran escala de algunos de estos sistemas complejos, las cosas pueden ir muy mal
y ser muy desordenadas. El llamado "Big Dig" puede citarse como un ejemplo de esto. Un mega
proyecto para redirigir una carretera a través del centro de Boston, estimado en 2.8 mil millones de
dólares, se completó a un costo final de 14.6 mil millones de dólares después de haber sido plagado
por numerosos problemas de implementación.
Sinergias de diseño
Una sinergia se puede definir como la interacción o cooperación de dos o más organizaciones,
sustancias u otros agentes para producir un efecto combinado mayor que la suma de sus efectos
separados. Es la creación de un todo que es mayor que la suma simple de sus partes. Un enfoque de
diseño sinérgico es uno que se centra en la interacción entre las partes dentro de la organización para
identificar y desarrollar sinergias.
Los sistemas de ingeniería compleja están compuestos de muchos componentes diversos, podemos
estar hablando de componentes que nunca fueron diseñados para interactuar. Tome el ejemplo de
Internet: se denomina "red de redes" y muchas de esas redes de área local originales que fueron
construidas para hospitales, empresas o fábricas fueron diseñadas con su propia lógica interna.
Cuando se construyeron, nadie pensó en cómo algún día podríamos conectarlos a todos. Por lo tanto,
hoy tenemos el gran desafío de abrir todos estos sistemas de información y exponer sus datos y
funciones a través de interfaces comunes. Diseñar estos sistemas compuestos heterogéneos es un
poco como ser un DJ, tomar una canción de los Beatles y mezclarla con Nirvana y Fat Boy Slim. De
alguna manera, debemos hacer que trabajen juntos para el usuario final, superar toda esta diversidad,
diferencia y desorden general, y hacer esto diseñando las relaciones entre los componentes. Las
relaciones pueden ser fundamentalmente de dos tipos diferentes, sinérgicos, constructivos o
destructivos, lo que podríamos llamar relaciones de interferencia.
Así que vamos a tomar un ejemplo de ambos. Las relaciones destructivas representan la interferencia
de dos o más componentes dentro del sistema, como una intersección de cruce de caminos. Para el
tráfico en cada carretera, la otra carretera es esencialmente una interferencia, la desacelera y la
detiene en su camino.
Esto es lo que llamamos un juego de suma cero. Cuando el tráfico en una carretera obtiene lo que
quiere, el tráfico en la otra pierde, y viceversa. Hay muchos ejemplos de juegos de suma cero en los
sistemas que diseñamos, desde la contaminación acústica hasta las ciudades más pobladas. Siempre
intentamos evitar el desarrollo de estos juegos de suma cero y las relaciones de interferencia que
llevan a ellos. Por el contrario, las relaciones constructivas son sinérgicas, es decir, cuando dos o más
componentes interactúan y el resultado neto es beneficioso para ambas partes.
Requiere una inversión significativa en la infraestructura del sistema, es decir, las relaciones a través
de las cuales interactúan los elementos. Para ilustrar esto, recordemos nuestro ejemplo del cruce de
carreteras. ¿Cómo podríamos evitar un juego de suma cero aquí? Bueno, los ingenieros ya han
descubierto esto creando un paso elevado con rampas que conectan las dos carreteras.
Ahora tenemos un juego de suma positiva, pero se requirió un diseño inteligente y una importante
inversión de recursos. Esta no era la posición por defecto. Las tecnologías alternativas podrían ser otro
ejemplo. Mientras que muchas de nuestras tecnologías tradicionales crean un juego de suma cero
entre las necesidades humanas y las necesidades ecológicas, las tecnologías alternativas bien
diseñadas intentan cambiar esto mediante el aprovechamiento de las relaciones sinérgicas. Otro
factor que estos ejemplos podrían ilustrar es la importancia de los sistemas no lineales o paralelos en
la creación de relaciones sinérgicas. En sistemas lineales simples, todo requiere la misma entrada y
produce la misma salida. El resultado es un proceso lineal de entrada de recursos del entorno y de
salida de residuos al entorno. Por supuesto, todos estamos familiarizados con este modelo, ya que
representa los fundamentos de las economías industriales.
Para crear sinergias, es necesario que exista cierta diversidad en el sistema, es decir, procesos que
tienen lugar en diferentes niveles paralelos. De esta manera, diferentes componentes en el sistema
procesan diferentes recursos, y puede ser posible conectar lo que es desperdicio de un componente
a lo que es un recurso de entrada para otro, convirtiendo lo que a menudo es un juego de competencia
de suma cero sobre un recurso en un juego de suma positivo donde cuanto más se consume uno, más
puede el otro también. Por supuesto, los ecosistemas son ejemplos clásicos de esto, y ser capaz de
modelar y desarrollar estos ciclos sinérgicos tanto a nivel micro como a nivel macro dentro de nuestros
sistemas industriales es clave para lograr la sostenibilidad. En el diseño de estos sistemas complejos,
la enorme heterogeneidad y diversidad de componentes es un desafío clave. Podemos estar tratando
con componentes socio‐técnicos ampliamente dispares y cualitativamente diferentes. En lugar de
trabajar en contra de él intentando reducir la variación dentro del sistema, podemos utilizarlo para
crear sistemas de varios niveles mediante el diseño de relaciones sinérgicas. Aunque este es un
concepto bastante abstracto y, como tal, más fácil de decir que de hacer, aún debe ser un principio
general en nuestra caja de herramientas de diseño de sistemas complejos.
Principios de diseño
Diseño de sistemas en red
Los sistemas complejos están, según muchas definiciones, muy interconectados, por ejemplo, redes
sociales, redes financieras y redes de transporte. En estos sistemas altamente interconectados, son
cada vez más las conexiones que definen el sistema en oposición a las propiedades de sus
componentes constituyentes. Por ejemplo, piense en un automóvil deportivo caro. En la carretera, es
el rey, con 0‐60 en menos de tres segundos y hasta 250 kilómetros por hora. Pero ponga este
automóvil en el tráfico urbano y quedará bloqueado como cualquier otro automóvil. No importa cuán
grandes sean las propiedades del automóvil, solo irá tan rápido como lo permita la red de transporte.
Esto debería demostrar que en sistemas de ingeniería complejos lo que realmente importa es la
Piense en el sistema de transporte aéreo. No se trata tanto de las propiedades estáticas de su
ubicación en el espacio y de la distancia a la que se encuentra su destino, sino, más importante, de su
ubicación en la red. Si está al lado de un centro importante, puede ser más rápido y más fácil viajar a
otro centro importante en el otro lado del planeta, como lo sería viajar de un centro desconectado a
otro que está a una fracción de la distancia.
Independientemente de si los llamamos explícitamente redes o solo sistemas, las redes son la
verdadera geometría de los sistemas complejos. Y, por lo tanto, es muy importante pensar en
diseñarlos desde esta perspectiva de acceso, conectividad y estructura de red. Para hacer esto,
primero debemos entender un poco acerca de la naturaleza de las redes, y la teoría de redes es el
área de matemáticas y ciencias que nos proporciona los modelos para analizar redes. Así que echemos
un vistazo a algunas de las características clave de las redes y cómo afectarán al sistema en su
totalidad. Probablemente la característica más importante de una red es su grado de conectividad, es
decir, ¿qué tan conectado está todo el sistema? Diseñar para un entorno urbano densamente poblado
como Hong Kong será muy diferente del diseño para una ciudad como Los Ángeles, que está dispersa.
En sistemas altamente interconectados, las interconexiones densas pueden requerir capas mucho
mayores. Los componentes pueden ser mucho más especializados y puede haber un nivel mucho más
alto de dependencias. Como resultado de esto, los fallos pueden propagarse rápidamente. Un
pequeño problema de seguridad en un aeropuerto, por ejemplo, puede ocasionar retrasos en grandes
áreas del sistema de transporte aéreo dentro de una nación.
En estos sistemas grandes y altamente interconectados, no siempre conocemos las dependencias.
Nadie tiene conocimiento completo de todas las interrelaciones que regulan sistemas complejos como
los grandes centros urbanos o nuestras cadenas de suministro globales. Por lo tanto, nuestro objetivo
no debe ser diseñar estos sistemas para que sean perfectos, con una tolerancia del 100%, ya que esto
no es realista. En su lugar, necesitan ser diseñados para ser robustos al fracaso. Nuevamente, internet
es un buen ejemplo, ya que se denomina "red de mejor esfuerzo". Esto significa que hace todo lo
posible, pero si algo sale mal, entonces no es un gran problema. Simplemente deja caer tu paquete y
vuelve a intentarlo.
Sucede todo el tiempo, pero el internet todavía funciona. La aparición de fallos se debe diseñar en
estos sistemas y no fuera de ellos para lograr robustez.
Otra consideración clave en el diseño de estos sistemas en red es su grado de centralización versus
descentralización, ya que este es un factor definitorio en la estructura y composición de las redes. En
las redes centralizadas, tenemos un nodo o un pequeño conjunto de nodos que tienen una fuerte
influencia en el sistema, y la red se definirá en gran medida por las propiedades de estos nodos
primarios. Estas redes centralizadas pueden aprovechar las economías de escala y es posible tener un
alto grado de control sobre el sistema a través de un punto de acceso. Debido a esto, las redes
centralizadas pueden ser muy eficientes a corto plazo, así como más rápidas y fáciles de administrar.
Pero también son más vulnerables a ataques estratégicos, a menudo menos robustos y sostenibles
debido a sus dependencias en unos pocos nodos centralizados. También pueden provocar un alto
grado de desigualdad y problemas en el equilibrio de la carga. Esto se debe a la ocurrencia de
demandas pico de recursos altamente centralizadas, con atascos de tráfico en hora punta y precios
exagerados de propiedades en el centro de las ciudades como ejemplos de esto. El uso intensivo de
las economías de escala engendradas en el sistema industrial de organización significa que muchas de
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
las redes que conforman las economías avanzadas están altamente centralizadas, incluido nuestro
sistema financiero global centralizado en unos pocos nodos clave, muchos sistemas de transporte
nacionales y redes logísticas, que son diseñados como un núcleo centralizado y estructuras de radios.
Las redes descentralizadas están en contrario sin nodos centralizados. La responsabilidad, el control y
los recursos se encuentran en el nivel local y están dispersos entre un gran porcentaje de los nodos.
Ejemplos de estos incluyen el intercambio de archivos entre pares (peer‐to‐peer), sistemas de
agricultura sostenible, servicios para compartir automóviles y democracia directa. Las redes
descentralizadas generalmente requieren una mayor participación de los usuarios, ya que no pueden
depender del procesamiento por lotes centralizado y la economía de escala. Los nodos en la red a
menudo son más autosuficientes y menos especializados, por lo que es más fácil intercambiar y
reemplazar cualquier nodo por cualquier otro, lo que los hace menos susceptibles a los ataques y más
robustos a las fallas. También tienen menos dependencias y suelen ser más sostenibles a largo plazo.
Tecnologías adaptativas
Las tecnologías adaptativas complejas se refieren a redes de tecnologías que pueden adaptarse y
responder entre sí. Ejemplos clásicos de esto son la robótica de enjambres, el sistema de enrutamiento
de Internet o las redes de transporte urbano. Con el auge de la Internet de las cosas, las redes de
tecnologías adaptativas están destinadas a ser mucho más frecuentes.
La adaptación es la capacidad de un sistema para alterar su estado en respuesta a algún evento dentro
de su entorno. Esta capacidad de adaptación es algo que asociamos más a menudo con los sistemas
biológicos en oposición a las tecnologías que diseñamos. El mundo industrial que hemos diseñado es
en muchos aspectos relativamente estático. Producimos cosas como redes eléctricas, edificios y sillas,
y luego se sientan allí, específicamente diseñados para no cambiar. Cada día que uno camina por el
mismo anuncio en la calle, presenta la misma información a miles de personas. Pero solo será
relevante para un porcentaje muy pequeño de ellos, y como es estático, solo lo notarán la primera vez
antes de desactivarlo para convertirse simplemente en ruido de fondo. Ahora imagine que, si ese
anuncio cambiara todos los días, es decir, fuera dinámico. En lugar de un póster, ponemos una pantalla
que podría actualizarse. Sería de mayor relevancia, más funcional.
Ahora vamos incluso un paso más allá. Imagínese si esta pantalla pudiera recibir información sobre los
perfiles y las preferencias de los usuarios que se encontraban cerca y entregar dinámicamente
contenido relevante para sus intereses. Este es el mundo de los complejos sistemas de ingeniería
adaptativa y, como la tecnología de la información nos proporciona las herramientas para crear
tecnologías más inteligentes, está aumentando el mundo para el que tenemos que diseñar.
Para comprender esta transición de los sistemas estáticos a los adaptativos, tomemos como ejemplo
el historial de la Web. La Web 1.0 era un sistema muy estático donde los desarrolladores web tenían
páginas web codificadas. Cuando visitó un sitio, el servidor simplemente le dio la misma página que
se había escrito posiblemente dos o tres años antes sin cambios. La Web 2.0 que todos conocemos y
amamos aprovechó las nuevas tecnologías de scripting del lado del servidor para obtener información
dentro y fuera de las bases de datos, y de esta forma actualizar dinámicamente las páginas web,
haciéndolas interactivas y cambiando con el tiempo. La Web 3.0 emergente utiliza tecnologías
semánticas y redes sociales para adaptar el contenido relevante a su perfil e intereses específicos, por
lo que no solo es dinámico, sino que también responde al contexto. Fuera de la Web, la reducción
masiva de costos en los circuitos integrados está llevando a que los sensores y los actuadores se
coloquen en muchos dispositivos y objetos. A medida que los paquetes dentro de las cadenas de
suministro, los autos en el tráfico y las redes eléctricas se están volviendo más inteligentes, pueden
responder a los eventos dentro de su entorno local a través de redes de malla en tiempo real. Pero
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
también pueden introducir datos en grandes sistemas centralizados para su análisis, lo que permite
una mayor optimización a través del balanceo dinámico de la carga, ya que cosas como las lavadoras
y los faroles comienzan a tener la capacidad de adaptar sus demandas de energía a la carga actual del
sistema.
Hay que considerar esencialmente dos niveles de estos complejos sistemas de ingeniería adaptativa:
el micro y el macro. En el nivel micro, necesitamos elementos con algún tipo de sistema de control.
Un sistema de control es un mecanismo para captar información, procesarla de acuerdo con un
conjunto de instrucciones y generar una respuesta que altera el estado del componente. Por supuesto,
todas las criaturas vivas tienen esto, desde los organismos unicelulares más simples hasta los más
complejos, el cerebro humano. Sin embargo, estamos utilizando cada vez más lo que llamamos
sistemas cibernéticos para permitir que todo tipo de tecnología tenga esta funcionalidad adaptativa,
ya que se convierten en parte de redes de tecnologías que pueden comunicarse y responder a los
cambios en el estado de otras tecnologías en tiempo real como es el caso de las líneas de producción
automatizadas, aviones y sistemas de transporte público.
En la escala macro, cuando estamos diseñando estos sistemas adaptativos, ya no podemos controlar
rígidamente el sistema y determinar su funcionalidad de la manera que podemos cuando decimos,
por ejemplo, diseñar un puente, ya que el resultado final será más orgánico, como un ecosistema de
productos, dispositivos y personas que interactúan y se adaptan dentro de las redes en lugar de los
sistemas mecánicos rígidos a los que estamos acostumbrados. Por lo tanto, si eliminamos esta
característica clave de control que es fundamental para nuestra concepción tradicional de poder
diseñar, donde vemos la limitación de la autonomía de los componentes como un requisito previo
para el diseño, ¿cómo podemos diseñar estos sistemas adaptativos? La respuesta es trabajar con las
características innatas de los sistemas adaptativos, no en contra de ellos. Los sistemas adaptativos por
definición se adaptan a su entorno. Si colocamos una planta en una maceta nueva o un niño en una
escuela nueva, se adaptarán a ese entorno en particular. Esto es parte de la dinámica de lo que los
biólogos y ecólogos llaman homeostasis. Lo hacen a través del proceso de sincronización de su estado
con el de otros elementos a los que están expuestos, y esta es la clave para diseñar sistemas
adaptables de auto organización. No intentamos alterar directamente el estado de los componentes.
Los influenciamos indirectamente diseñando las conexiones dentro del entorno en el que opera el
sistema.
Si queremos que las personas sean más conscientes del medio ambiente, no les pedimos que hagan
esto o no lo hagan. Los conectamos con el entorno natural, los exponemos a las consecuencias de sus
acciones tanto negativas como beneficiosas. Cuando un consumidor recoge un producto anónimo en
un supermercado de una ciudad, a unos miles de kilómetros de donde se produjo, se desconectan
totalmente y se desvinculan de él. Pero cuando les contamos una historia sobre el ciclo de vida del
producto, hacemos que se sientan comprometidos y parte de ese proceso, es más probable que se
comprometan y se responsabilicen de sus acciones. Nosotros, como diseñadores del producto o
servicio, no hemos tratado de manipularlos simplemente los hemos conectado con la realidad de su
entorno y les hemos dejado saber cómo se adaptan y responden. Por lo tanto, diseñar estos sistemas
adaptativos consiste en crear plataformas abiertas que conecten componentes. Si queremos diseñar
un entorno urbano que ofrezca una mejor calidad de vida a sus ciudadanos, necesitamos construir
espacios abiertos donde las personas puedan interactuar y auto organizarse para desarrollar el tejido
sociocultural.
En el otro extremo, tenemos lo que llamamos sistemas de auto organización que están menos
diseñados pero que, en cambio, se crean a partir de las acciones e interacciones de sus usuarios, por
lo que probablemente serán menos ordenados. Nuestro enfoque de ingeniería de diseño tradicional
está, por supuesto, en el lado izquierdo de este espectro. Es un modelo lineal basado en el supuesto
de que el usuario final es un receptor o consumidor pasivo. Dentro de este modelo industrial, la
variación y el compromiso del usuario final se reducen para adaptarse a los procedimientos y sistemas
de producción en masa prediseñados. El resultado obvio de esto es la desconexión, la alienación y un
mundo en el que los usuarios finales están limitados por sistemas creados por unos pocos diseños e
ingenieros en grandes organizaciones centralizadas. Este es un modelo con el que todos debemos
estar muy familiarizados. Aunque los sistemas generados por los usuarios siempre han estado allí en
los márgenes de la corriente principal, el aumento de I.T. e internet ha puesto herramientas poderosas
para la auto organización y colaboración en manos de muchos. Hoy en día, muchas de las empresas y
servicios más innovadores, dinámicos y de rápido crecimiento están aprovechando esto creando
plataformas para que las tecnologías y las personas interactúen, se adapten y se auto organicen.
En lugar de la división tradicional entre el productor y el consumidor de una tecnología o servicio, la
creación conjunta aprovecha el recurso relativamente inexplotado y potencialmente vasto del
compromiso del usuario final. Si bien los productos terminados son a veces lo que la gente quiere,
también es cierto que cuando otorgamos a las personas la capacidad de ser parte del proceso de
diseño y producción, se sienten más comprometidos, es más probable que valoren el producto final y
pueden ser una fuente valiosa de La innovación entre otras cosas.
Luego, la pregunta es ¿por qué diseñar estas plataformas de co‐creación para que sean productivas si
no podemos controlarlas realmente? ¿Qué sucede si nuestra empresa recurre a los diseños para la
producción de nuestro próximo par de zapatos deportivos? ¿Cómo sabemos que van a ser lo que
queremos? Parte de la concesión del control es aceptar el hecho de que una persona usará una red
social para salvar el planeta y la siguiente para evitar el trabajo. Sin embargo, lo que podemos hacer
es crear estados de atracción, es decir, cuando construimos la plataforma, establecemos las posiciones
predeterminadas deseadas que los usuarios pueden cambiar, pero serán atractivas para la mayoría,
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
ya que son las predeterminadas. Por ejemplo, al crear un sitio para compartir videos, si queremos que
el sitio se abra y se comparta, podríamos establecer los derechos de autor predeterminados para un
video subido a creative commons. Pueden cambiarlo, pero este es un ejemplo de un estado atractivo.
De manera similar, cuando estamos diseñando un sistema de transporte urbano, si construimos
muchas vías verdes, carriles para bicicletas y calles peatonales, las personas todavía tienen la opción
de elegir el modo de transporte que utilizan. Sin embargo, caminar y andar en bicicleta se convierten
cada vez más en elementos de atracción en el sistema hacia el cual las personas gravitan naturalmente
a medida que se convierte en el curso de menor resistencia.
Por lo tanto, podemos ver cómo, para cada elección que tenemos, hay un valor predeterminado
porque es el más barato, el más cercano o el más fácil. Aprovechar estas posiciones predeterminadas
es un poderoso método de diseño. La creación de subsidios para energía renovable o espacios de
trabajo abiertos para la colaboración hace que estos resultados deseados sean atractivos. Si, en un
extremo de nuestro espectro, tenemos nuestros sistemas tradicionales totalmente controlados, y en
medio las plataformas de co‐creación, entonces en el otro extremo tenemos redes de pares que son
sistemas verdaderamente auto organizados, ejemplos como Bitcoin, redes de malla , y la robótica de
enjambre. Hay muy poco en el camino de una plataforma centralizada aquí. Los elementos en el
sistema son casi totalmente autónomos. Cada nodo contribuye a proporcionar la infraestructura del
sistema y al mantenimiento del sistema. Por lo tanto, requieren más participación y responsabilidad
de cada nodo en la red, pero pueden resultar en sistemas excepcionalmente robustos. En los sistemas
adaptativos complejos, siempre hay una dinámica entre los agentes y la estructura, es decir, entre los
elementos del sistema y el propio sistema. Comprender esta dinámica y la compensación entre poder
controlar el sistema en lugar de aprovechar los recursos incontrolables de los usuarios es una
consideración clave.
Cuando imponemos un diseño formal de arriba hacia abajo en el sistema, crearemos barreras de
entrada y, por lo tanto, excluiremos elementos, ya sea de manera intencional o no. Entonces,
inevitablemente, se auto organizarán a nivel local para crear un sistema paralelo de dos niveles, uno
formal y otro informal. Las chabolas y favelas son buenos ejemplos de esto. Debido a que los requisitos
para ingresar al sistema urbano formal eran demasiado altos para los migrantes, crearon un sistema
informal auto organizado. Este es un estado indeseable que creará problemas crónicos de integración
de sistemas.
Al comprender la relación entre lo formal y lo informal, el diseño centralizado y la auto organización
distribuida, podemos diseñar una plataforma de creación conjunta de múltiples capas para integrar
los dos, con una transición integrada de restricciones y requisitos informales bajos a un nivel más
formal altamente restringido. Los sistemas formales descendentes pueden ser muy austeros,
abstractos e impersonales. Están diseñados para ser universales, una talla para todos. Los sistemas
burocráticos son paradigmas de esto. Están diseñados para ser impersonales y estandarizados para
todos. McDonald's se cita a menudo como un ícono de este paradigma, con los mismos
procedimientos y procesos para hacer una Big Mac, ya sea en Bahrein o en Santiago.
Pero hay una buena razón por la que muchas grandes corporaciones que son íconos de la globalización
tienen oficinas regionales y ofertas localizadas.
Si realmente desea involucrar a las personas, debe involucrarlas en sus propios términos, y la creación
conjunta es una de las formas más efectivas de lograrlo. Cuando se trataba de traducir Facebook al
francés, todo lo que tenían que hacer era abrirlo para que los usuarios lo tradujeran y los usuarios
apasionados lo habían completado en unos pocos días. Por lo tanto, un sistema impersonal se adaptó
Aprovechar los vastos recursos del usuario final a través de la co‐creación es una de las grandes
fuentes de potencial sin explotar que apenas estamos empezando a descubrir en las economías
postindustriales. Nos exige conocer y comprender mejor la dinámica de la auto organización y, lo que
es más importante, la interacción entre los agentes dentro del sistema, es decir, los usuarios y la
estructura del sistema, el productor del producto o servicio.
Ciclo de vida de los sistemas ‐ evolución
El ciclo de vida del sistema, en ingeniería y diseño de sistemas, es una vista de un sistema o sistema
propuesto que aborda todas las fases de su existencia para incluir la concepción, diseño y desarrollo
del sistema, producción y / o construcción, distribución, operación, mantenimiento y soporte. retiro y
eliminación progresiva. Los sistemas complejos son sistemas intrínsecamente dinámicos, lo que
significa que están cambiando continuamente con el tiempo. Los sistemas biológicos son un buen
ejemplo de esto. La única vez que no participan en algún proceso de desarrollo es cuando dejan de
existir. Esto contrasta fuertemente con los sistemas lineales que gravitan intrínsecamente hacia algún
estado de equilibrio en el que permanecerán estáticos a menos que sean perturbados por alguna
fuerza externa. Diseñar para estos sistemas complejos dinámicos requiere un enfoque holístico que
analice el ciclo de vida del sistema. La teoría de los sistemas lineales es la columna vertebral de la
ciencia y la ingeniería modernas que han creado nuestras economías industriales. Dentro de este
paradigma, las tecnologías están diseñadas para operar en algún tipo de equilibrio estático normal
dentro de un entorno bien conocido y predefinido. Su ciclo de vida es lineal en el que se crea el
sistema, puesto en su entorno operativo donde está diseñado para funcionar dentro de un conjunto
normal de parámetros, en un equilibrio estable y estático. Está, lo más importante, diseñado para
resistir el cambio y mantener las operaciones dentro de estos parámetros durante el mayor tiempo
posible, antes de eliminarse. Este modelo funciona bien para sistemas lineales simples, como puentes,
en los que cuando sujetamos nuestras vigas, queremos que nuestros pernos permanezcan allí. No
queremos que respondan, cambien o crezcan de ninguna manera.
En sistemas complejos, no estamos tratando con tornillos. Estamos tratando con componentes que
tienen cierto grado de autonomía y capacidad de adaptación. Personas, empresas, precios de
acciones, aplicaciones web, teléfonos inteligentes: estas cosas tienen su propia lógica interna
mediante la cual se adaptan a los cambios dentro de su entorno local. A veces, esta lógica es muy
simple, como un algoritmo financiero que automáticamente venderá o comprará una acción a un
precio determinado. O a veces es muy complejo, por ejemplo, por qué una persona compra un artículo
de moda en particular sobre otro. Sin embargo, el resultado neto es que el sistema puede cambiar y
no está determinado a seguir un ciclo de vida lineal desde la cuna hasta la tumba. Puede aprender,
crecer y adaptarse en respuesta a las condiciones internas y externas para renovarse, es decir, volverse
más o menos sostenible y, por lo tanto, alterar su ciclo de vida.
La mayoría de las empresas no duran mucho, menos de unas pocas décadas. Hay muchas razones por
las que esto podría ser, pero un modelo para capturar la dinámica subyacente de cómo evoluciona
una empresa se llama el algoritmo de exploración y explotación. En sus primeros años, una empresa
puede explorar muchos productos o servicios diferentes, pudiendo girar, mantenerse flexible y
diversificada. Pero a medida que el negocio se desarrolle, habrá algunos productos que resultarán más
lucrativos, y es probable que el negocio los incremente, centrándose en ellos y desarrollando un
sistema de administración estructurado más formal a medida que aprovechan las economías de
escala. El resultado de explotar algunos productos lucrativos será que la compañía se volverá más
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
rentable, pero también se auto organizó en un estado más crítico. Un pequeño cambio en el mercado
que se mueve contra el producto principal del negocio podría destruir la empresa.
Luego podemos tomar un ejemplo de un negocio que ha diseñado un curso alternativo de desarrollo
para sí mismo. Google ha generado, desde su inicio, más del 90% de sus ingresos a partir de su único
servicio de búsqueda web. Entonces, ¿por qué desarrolla y mantiene un conjunto completo de
productos que generan ingresos relativamente pequeños? Una teoría es que Google sabe que en un
mercado que evoluciona rápidamente tiene que estar donde sucederá la próxima gran cosa, ya sea en
las redes sociales o en el video compartido. Al crear esta diversidad, al seguir invirtiendo los recursos
obtenidos de la explotación de su servicio central para explorar y generar variedad, puede evolucionar
mejor y garantizar su sostenibilidad.
Debido a que los mercados cambian, el clima cambia, todo cambia, para diseñar sistemas sustentables
es diseñar sistemas que incorporen el cambio y la evolución en su estructura. Para comprender mejor
este proceso de evolución, analicemos para ver cómo funciona. Sólo hay un puñado de componentes
clave. Necesitamos poder crear cierta variedad, permitir la adaptación y realizar la selección para ver
cuáles de los elementos son los más adaptables al entorno en particular.
En primer lugar, en la producción de variaciones, el sistema tiene que crear muchos tipos diversos. En
sistemas biológicos, esto se hace mediante la mezcla y deformación de los genes. En el mundo formal
del desarrollo de productos, esto suele ocurrir en los laboratorios de I + D, pero cuando aprovechamos
el poder de la creación conjunta, tenemos un nuevo recurso para mezclar y remezclar para crear una
diversidad infinita. En segundo lugar, la adaptación, estos diversos tipos se ponen en funcionamiento
para interactuar y adaptarse al entorno. Esto requiere que proporcionemos a los elementos el espacio
o la autonomía necesarios para que puedan interactuar y adaptarse, bajo su propia lógica, a su propio
entorno local. Por último, la selección. Se realiza un proceso de selección de los elementos para
seleccionar el denominado "más apto", es decir, el más adecuado para ese entorno en particular. En
diseño, esto significa crear bucles de retroalimentación como los sistemas de calificación de usuarios
para determinar qué productos o servicios realmente funcionan mejor para el usuario final.
Por lo tanto, hay dos modelos diferentes para el diseño del ciclo de vida de un sistema. En un extremo
del espectro, tenemos nuestros sistemas lineales tradicionales que probablemente serán más fáciles
y más rápidos de diseñar, requieren menos inversión y, a menudo, operan más eficientemente en el
corto recorrido.
Pero estarán sujetos a un ciclo de vida en descomposición lineal cuando intenten externalizar el
cambio. En el otro extremo del espectro, tenemos sistemas evolutivos que internalizan el cambio,
aprovechando el mecanismo de la evolución para mantener un ciclo de vida cíclico y sostenible
durante un período de tiempo indefinido. Los sistemas complejos operan en un estado de cambio
constante, ya sea que estemos hablando de redes sociales, aeropuertos o economías emergentes.
Poder cambiar tan rápido como el cambio mismo significa internalizarlo a través de la integración de
mecanismos evolutivos en las plataformas que estamos construyendo. La evolución no es un proceso
místico que solo ocurre en ambientes naturales. Es una característica clave de los sistemas dinámicos,
ya sea que estemos conscientes de ello o no. Pero al ser consciente de ello, uno puede utilizarlo en
nuestro diseño para crear sistemas con un ciclo de vida sostenible y cíclico.
Existen muchas definiciones para SOA, pero esencialmente es un enfoque arquitectónico para crear
sistemas construidos a partir de servicios autónomos que se agregan a través de una red.
SOA apoya la integración de diversos servicios a través de protocolos y procedimientos definidos para
permitir la construcción de funciones compuestas que se basan en muchos componentes diferentes
para lograr sus objetivos. Requiere la desagregación de los sistemas monolíticos y la conversión de los
componentes individuales en servicios que luego están disponibles para ser reconfigurados para
diferentes aplicaciones.
Imagina que uno quisiera construir una nueva aplicación web que les permita a las personas pagar sus
boletos de estacionamiento en línea. Uno podría pasar años desarrollando un subsistema que
funciona como un mapa de calles, y luego otro subsistema para hacer frente a los pagos, y otro para
el inicio de sesión, la autenticación de usuarios, etc. O simplemente podría hacer uso del servicio de
mapas de Google, un servicio de pasarela de pago de PayPal y un servicio de inicio de sesión de usuario
de Facebook. Mi trabajo entonces sería integrar estos servicios diversos mediante la creación de
algunos procesos comunes que guían al usuario a través del uso de estos servicios diferentes para
entregar la funcionalidad deseada. Por lo tanto, en lugar de crear un sistema que se basara en todos
mis diferentes componentes internos dentro de mi software bien limitado, mi nueva aplicación se
construiría en su lugar con una arquitectura orientada a los servicios, una arquitectura orientada a los
servicios.
Imagina que soy dueño de una cafetería. Mi interés es proporcionar a los clientes alimentos y bebidas
en un ambiente agradable. Para hacerlo, tengo que reunir muchas cosas diferentes, desde los granos
de café y el equipo hasta los empleados, etc. Necesito diseñar una plataforma común para que todas
estas cosas interoperen y entreguen el servicio final.
Pero pensemos en este sistema dentro del lenguaje más formal de SOA. En primer lugar, cada
componente del sistema proporciona un servicio, ya sea el empleado que sirve el café o las sillas en
las que se sienta la gente. Nosotros, como diseñadores del sistema, no estamos interesados en el
funcionamiento interno de estos componentes porque no necesitamos esa información.
Lo abstraemos encapsulándolo. Solo el proveedor del servicio necesita conocer la lógica interna del
componente. Para nosotros, son simplemente servicios.
Cuando se trata de un cliente que paga con tarjeta de crédito, simplemente deslizan su tarjeta e
ingresan el número PIN. Nadie en la tienda entiende cómo se realiza realmente la transacción. Sólo el
proveedor de servicios financieros tiene esa información. Para el resto de nosotros, se abstrae a través
de la encapsulación. También podemos observar que el proveedor de servicios financieros tiene un
control casi completo sobre la lógica que encapsulan, al menos durante el tiempo de ejecución del
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
sistema, como es el caso de muchos otros componentes en el sistema. Esto se llama autonomía de
servicio.
Sin embargo, lo que sí necesitamos saber es qué función cumple el componente y cómo interactuar
con él. Llamamos a esto una interfaz. Cuando uno de nuestros nuevos empleados recoge un paquete
de café, ella sabe qué es y cómo usarlo porque tiene una etiqueta. También podemos notar el gran
letrero amarillo sobre el contenedor en la esquina que alienta a los clientes a deshacerse de sus
desechos. Esto se llama descubribilidad del servicio. Los servicios se complementan con metadatos
comunicativos mediante los cuales se pueden descubrir e interpretar de manera efectiva. Podríamos
decir que nuestro contenedor está transmitiendo la disponibilidad de su servicio. Aunque he
contratado a un equipo de personal multicultural, existe un acuerdo de que todos hablarán en inglés
cuando interactúen con otro personal en el taller. Esto se llama un contrato de servicio estandarizado.
Los servicios se adhieren a un acuerdo de comunicaciones según lo definido colectivamente por uno
o más documentos de descripción del servicio.
Como parte de mi negocio, tengo una red de proveedores y personal de mantenimiento. Si necesito
más personal, llamo a la agencia de contratación y tendré un nuevo empleado a partir de la próxima
semana. Si la tienda necesita pintura, puedo llamar a mi decorador. Si necesito más mesas, puedo
comprarlas. Todos estos diferentes servicios son lo que se denomina débilmente acoplado al sistema.
Esto significa que estos diferentes módulos pueden unirse o salir, acoplarse o desacoplarse del sistema
según sea necesario, manteniendo así su independencia. Este acoplamiento suelto permite el
aprovisionamiento dinámico o el desaprovisionamiento de recursos para mantener un mecanismo
eficaz de equilibrio de carga de los sistemas.
Por último, una vez que mi pequeña empresa esté en funcionamiento y genere ingresos, es posible
que desee comenzar otra u otras diez. Pero esta vez en, digamos, el negocio del restaurante o tal vez
una confitería. Lo bueno que noté es que no tengo que empezar desde cero cada vez. Solo puedo
extender mi contrato de seguro, ordenar más mesas, usar la misma cuenta bancaria, etc. Esto se llama
reusabilidad o composabilidad del servicio. Debido a que los servicios son independientes de cualquier
proceso en particular en el que los compilé, es decir, cualquiera de las tiendas que establezco, se
pueden reutilizar, componer y recomponer sin cesar en nuevas configuraciones.
El valor real de SOA llega cuando escalamos las cosas al mundo de los sistemas complejos, a la
arquitectura de las grandes empresas, diseñamos entornos urbanos o incluso economías enteras.
Debido a su abstracción, la misma arquitectura puede sustentar nuestro diseño en el nivel micro y en
el nivel macro. Tenemos un conjunto de componentes heterogéneos. Estos componentes pueden ser
personas de diferentes culturas en una sociedad. Pueden ser diferentes modos de transporte dentro
de una ciudad, o pueden ser diferentes dispositivos que se conectan a una plataforma de Internet de
las cosas.
Creamos un lenguaje genérico que puede usarse para describir todos los componentes del sistema y
su servicio. Creamos interfaces para los componentes que traducen su idioma o funcionalidad local al
idioma global.
Les damos un descriptor para describir la funcionalidad de los componentes, la disponibilidad, los
términos, las condiciones y varios otros parámetros para su acoplamiento y la prestación del servicio.
Creamos un bus de servicio que integra estos componentes funcionales en un sistema completo, y
creamos una interfaz para que el usuario final interactúe con los servicios que necesita.
Durante las últimas décadas, con el auge de las plataformas de Internet, como App Store o eBay, se
ha demostrado que son algunos de los servicios más dinámicos, innovadores y de mayor crecimiento.
Pero, por supuesto, el modelo de plataforma para la arquitectura de sistemas siempre ha estado allí
desde la invención de las granjas y las fábricas hasta la fabricación de bloques de construcción de Lego.
Cuando muchas personas ven una nueva tecnología en el trabajo, generalmente no consideran todas
las piezas que entraron en su creación. Simplemente ven las increíbles capacidades y nunca le dan
mucha importancia. Sin embargo, dentro de las economías industriales avanzadas, muchos productos
y servicios están habilitados por el poder de la abstracción. Son remixes, construidos a partir de
servicios de plataformas que permiten el agrupamiento interminable y el reagrupamiento de
diferentes componentes. Wikipedia define una tecnología de plataforma como una estructura o
tecnología desde la cual pueden surgir varios productos sin el costo de un nuevo proceso de
introducción. Para lograr esto, nuestro sistema debe ser diseñado para tener dos niveles
fundamentalmente diferentes, es decir, debe tener una plataforma que brinde los servicios básicos
que se pueden combinar en diferentes configuraciones en el nivel de la aplicación para entregar varias
instancias de la tecnología a El usuario final.
Un ejemplo de una tecnología sin plataforma es un martillo, ya que es un sistema homogéneo. No hay
diferenciación entre la infraestructura del sistema y su aplicación. Todos ellos son sólo una cosa. Es
una instancia de un martillo. No puede generar nuevas y diferentes configuraciones de sí mismo. Lo
mismo se puede decir de un coche. Es una instancia de una tecnología.
El usuario final obtiene y usa todo el asunto. Para que la comparación sea más clara, podríamos
comparar la instancia de un automóvil con una plataforma de automóvil que permite a una compañía
automotriz lanzar varios vehículos construidos sobre un chasis común, que es la plataforma, con
diferentes motores, interiores y factores de forma, para la misma o diferentes vehículos y marcas
dentro de la empresa.
Probablemente el mejor y más claro ejemplo de plataforma tecnológica sean las computadoras
personales, la plataforma, en este caso, es el sistema operativo de la computadora. Pero antes de
poder llegar a la plataforma que está haciendo todo el gran trabajo, necesitamos una base para que
se siente, es decir, un conjunto de tecnologías habilitadoras. En este caso, nuestra capa de base es
nuestro hardware de computadora y todo el firmware de bajo nivel que se interconecta entre esta y
el sistema operativo. Pero dentro de una empresa, nuestra capa de base podría ser el sistema
económico del que forma parte, los servicios públicos como la seguridad, el estado de derecho y el
mantenimiento de los recursos naturales que permitirían que nuestra empresa funcione. Lo mismo
sería cierto de una ciudad, se basa y es habilitado por un sistema de infraestructura nacional.
La siguiente capa desde los cimientos o el hardware es la plataforma, el sistema operativo de la
computadora en este caso. Básicamente, administra los recursos y servicios de la computadora que
requerirán las aplicaciones. La plataforma toma los recursos disponibles para ella de la infraestructura
y crea los bloques de Lego con los que nos utilizaremos para construir cosas. Estos recursos se
presentan a los productores en el nivel de aplicación a través de API o interfaces de programa de
aplicación. En una fábrica de automóviles, la plataforma sería la tecnología física en la línea de
producción para crear las piezas del automóvil. Nuestros empleados pueden reorganizar esta línea de
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
producción para crear diferentes vehículos. En el ejemplo de una ciudad, este nivel de plataforma
podría ser las utilidades urbanas con las que los contratistas se interconectarán para construir oficinas
y espacios residenciales, y habrá un conjunto estándar de procedimientos para que lo hagan. En la
parte superior del sistema operativo se encuentra la capa de aplicación. Los desarrolladores utilizan
los servicios proporcionados por el sistema operativo y los agrupan en varias combinaciones
diferentes para entregar una aplicación completa al usuario final. Las aplicaciones en la App Store, los
autos que salen de nuestra línea de producción, los edificios en una ciudad o los productos financieros
ofrecidos por un banco son ejemplos de la capa de aplicación, configuraciones infinitas y
reconfiguraciones en respuesta a las necesidades percibidas y comentarios de usuario final.
Por último, la capa de interfaz de usuario. Cuando el usuario final enciende su computadora, no
quieren ver los 0 y los 1 o las líneas de código. Quieren ver cosas que entiendan, imágenes de archivos
y agradables menús desplegables. La mayoría de las personas que interactúan con los sistemas que
estamos diseñando lo harán para obtener la máxima funcionalidad con el mínimo esfuerzo. Para que
lo hagan, necesitamos una capa que traduzca la lógica interna del sistema a un lenguaje que
entiendan. Esta interfaz puede ser el panel de control de nuestro automóvil o la recepcionista de
nuestro hospital que le dice a la gente a dónde ir. Sea lo que sea, se trata del usuario final, el idioma
que hablan, lo que necesitan y la forma de traducir la funcionalidad del sistema en una solución que
involucra la participación del usuario final.
Continuando con nuestra analogía del mundo de I.T. podríamos llamar a esto una pila de soluciones,
el conjunto completo de subsistemas y capas de abstracción para proporcionar a las plataformas una
funcionalidad completa sin dependencias. Es importante tener en cuenta que a medida que
avanzamos en cada nivel de abstracción hacia el usuario final, estamos simplificando la complejidad y
el nivel de compromiso requerido. Aquellos que trabajan en el nivel de la plataforma requieren una
comprensión profunda del sistema y tienen que lidiar con toda su complejidad, pero están
relativamente sin restricciones.
Aquellos que se involucran con el sistema en la aplicación y el nivel de usuario están limitados por lo
que los proveedores de la plataforma han diseñado, pero con esta tecnología, podrán hacer más con
menos entradas y participación. El resultado neto es que debemos obtener un efecto de amplificación
a medida que avanzamos en la pila de soluciones debido a la mayor facilidad de interacción. Por lo
tanto, habrá muchos más desarrolladores de aplicaciones que desarrolladores de sistemas operativos
y, a su vez, habrá muchos más usuarios finales que desarrolladores de aplicaciones, y este debería ser
el caso donde estemos utilizando este modelo de plataforma para arquitectura de sistemas.
Finalmente, podríamos preguntarnos: ¿por qué deberíamos preocuparnos por las plataformas
tecnológicas? Hay varias razones por las que esta arquitectura debería beneficiarnos. En primer lugar,
al distribuir el sistema en varias capas, podemos abstraer la complejidad con la que los usuarios o
productores del servicio tienen que lidiar. Todo tiene su propio espacio. En segundo lugar, podemos
evitar redundancias si la plataforma proporciona los servicios comunes que requieren todos los
componentes. Podemos reducir la necesidad de que cada componente en la capa de aplicación
reinvente la rueda. En tercer lugar, las plataformas son la arquitectura ideal para crear sistemas
generados por usuarios. Por lo tanto, podemos aprovechar el efecto de amplificación del que
hablamos antes para hacer más con menos, ayudando a mantener un sistema central ágil. Y, por
último, la arquitectura de la plataforma es ideal para construir sistemas flexibles, adaptativos y
evolutivos. Dada su independencia de las instancias fijas, el sistema puede seguir innovando en el nivel
de la aplicación para continuar regenerándose.
Al diseñar un sistema, una de nuestras consideraciones arquitectónicas clave será decidir si estamos
construyendo un sistema homogéneo o un sistema modular. Por ejemplo, en el diseño de la estructura
mecánica de una nueva impresora 3D, se podrían adoptar dos enfoques diferentes. En primer lugar,
la decisión de adoptar un enfoque monolítico, en cuyo caso todo el marco sería de plástico. O uno
podría adoptar un enfoque modular, utilizando tuercas y pernos para sujetar los subcomponentes y
combinar estos subsistemas para construir todo el sistema mecánico como un compuesto de módulos.
Una arquitectura homogénea integra y restringe los subcomponentes en un sistema global. Por
ejemplo, construir mi casa con concreto de masa vertida en lugar de bloques de construcción
individuales. El libro Mac de Unibody a Apple es otro ejemplo de una arquitectura homogénea.
El diseño modular, en contraste, es una arquitectura de sistemas que distribuye todo el sistema en un
conjunto de distintos módulos que pueden desarrollarse de forma independiente y luego conectarse
juntos. Ejemplos de esto podrían ser una placa de circuito electrónico hecha de componentes
eléctricos autónomos o una casa hecha de módulos prefabricados que se conectan entre sí.
La modularidad es una característica clave de los sistemas de ingeniería compleja (con Internet
nuevamente como un paradigma de la arquitectura modular) por varias razones.
En primer lugar, por definición, los sistemas complejos están altamente interconectados. Por eso
modelamos y hablamos de ellas como redes. En estos sistemas altamente interconectados, el costo
de la interacción será muy bajo. Este bajo costo de colaboración hace que sea mucho más fácil
desagregar los sistemas homogéneos, distribuirlos en módulos y luego reconectarlos en un todo
compuesto a través de la red. La globalización económica podría ser un ejemplo de esto, ya que las
barreras y el costo del comercio internacional se han reducido. Han surgido cadenas de suministro
modulares donde los procesos de producción y las cadenas de suministro se desagregan y distribuyen
debido a la facilidad de interacción a través de redes logísticas globales y telecomunicaciones. En
segundo lugar, los sistemas complejos están compuestos de elementos autónomos, lo que significa
que no podemos restringirlos completamente dentro de un modelo integrado de arriba hacia abajo.
La creación de componentes otorga a cada elemento un grado de autonomía, lo que le permite
adaptarse.
Entonces, ¿qué necesitamos para diseñar un sistema modular? Bueno, necesitamos al menos tres
cosas: un módulo, una interfaz y un conjunto de protocolos para interconectar esos módulos. En
primer lugar, para crear módulos, debemos desagregar nuestro sistema monolítico. En informática,
esto se llama separación de preocupaciones. Estamos tratando de captar lo que hace que cada
componente sea una preocupación separada, es decir, autónoma y diferente de todo lo demás. Al
mirar un mapa del mundo, veremos que está distribuido en los países. Cada uno de estos países es
diferente de alguna manera y tiene cierto grado de autonomía. Cómo desagregar el sistema es muy
importante. Si trazamos líneas arbitrarias en la arena sin el debido respeto a los sistemas culturales y
económicos que están detrás de ellos, entonces surgirán problemas más adelante. El concepto de un
módulo es tanto definir distintas funciones separadas como encapsular esta función, abstrayendo así
su mecánica interna del sistema en general. Esto se llama caja negra (black‐boxing).
En ciencia e ingeniería, una caja negra es un dispositivo, sistema u objeto que puede verse en términos
de sus características de entrada, salida y transferencia sin ningún conocimiento de su funcionamiento
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
interno. Definimos y visualizamos estas entradas, salidas y características funcionales con una interfaz
que le dirá a otros módulos en el sistema qué hará este elemento. Es un poco como el perfil de una
persona en LinkedIn. Sus perfiles son la interfaz que te dice lo que hacen. La interfaz también debe
decirle qué entregar al módulo y qué esperar a cambio, como cuando compra un automóvil nuevo,
habrá un póster en la ventana que le indicará que le dé una cierta cantidad de gasolina y le
transportará una cierta cantidad de combustible. distancia. Un automóvil, como muchas otras cosas,
es una caja negra, no necesita saber qué pasa dentro de él para conducirlo. Por último, necesitamos
alguna forma de unir estos módulos, lo que podríamos llamar acoplamiento. Se llama pobre
acoplamiento cuando los módulos tienen un alto grado de autonomía, o pueden estar estrechamente
acoplados, lo que significa que están más limitados por su interacción con otros módulos y el sistema.
Este acoplamiento también requiere un conjunto de protocolos para definir los términos, acuerdos y
lenguaje común a través de los cuales los módulos interactúan.
Las ventajas del diseño modular incluyen: Primero, puede permitir la colaboración distribuida y la
resolución de problemas. Podemos estar lidiando con un sistema complejo muy grande que no
requeriría nada menos que un genio o un héroe para comprenderlo y manejarlo. A través de la
modularización del sistema, varias funciones se pueden distribuir más fácilmente en un equipo grande
sin que ningún miembro del equipo cree o entienda todo el sistema.
En segundo lugar, los módulos se pueden reutilizar infinitamente, como los ladrillos Lego. Podemos
combinarlos y combinarlos, lo que hace que sea más probable que sea una solución sostenible.
También debería ser mucho más fácil administrar y mantener el ciclo de vida del sistema. Los
componentes individuales que muestran fatiga pueden reemplazarse sin tener que reemplazar todo
el sistema, y deberíamos poder hacerlo con un tiempo de inactividad mínimo.
En tercer lugar, los sistemas modulares son mucho más versátiles, adaptables y se pueden personalizar
más fácilmente. El diseño modular empleado en la industria automotriz facilita que los concesionarios
de automóviles ofrezcan una amplia variedad de personalizaciones, en las que simplemente se
"incorporan" a las actualizaciones, como un motor más potente o neumáticos de temporada. Por
último, el diseño modular puede ser un mecanismo de contagio muy importante debido a que una
taza es un diseño monolítico, una grieta se propagará fácilmente a través de la estructura, haciendo
que todo el sistema sea disfuncional. Al diseñar para la autonomía, reducimos las dependencias dentro
del sistema y los módulos actúan como amortiguadores naturales para la propagación de desastres y
para mantener la seguridad.
Las desventajas de la arquitectura modular incluyen: Primero, debido a que todo se ha desagregado,
todo tendrá que pasar por alguna red de interacciones para que tenga lugar. A menos que el costo de
la interacción sea muy bajo, supondrá una carga muy alta para el sistema. Entonces, si mi banco toma
50 dólares para procesar todas las traducciones financieras de mi tarjeta de crédito, el sistema me
llevaría a la bancarrota rápidamente. La modularización excesiva puede llevar a un sistema fracturado.
Digamos que tengo 100 personas para alimentar y entro a la tienda a comprar algunas bananas, pero
cada una está envuelta en un módulo de plástico con una etiqueta. Bueno, voy a pasar bastante
tiempo desenvolviendo cada uno y generando una gran cantidad de residuos en el proceso. A menos
que los protocolos y las interfaces de los módulos estén bien diseñados, podemos perder mucho
tiempo negociando continuamente los contratos entre los módulos. Si tuvieras que hacer tus compras
en un mercado local en el que tuvieras que regatear todo en un idioma que no entiendas, es probable
que tu respuesta sea buscar un supermercado donde puedas obtener todo de una vez. Cuando los
contratos entre módulos son difíciles y costosos de negociar, queremos reducir el número de
interacciones y, por lo tanto, hacer que el sistema sea más homogéneo.
Arquitectura dirigida por eventos
La arquitectura dirigida por eventos (EDA) es un patrón de diseño que se basa en la producción, la
detección y la reacción a los eventos que tienen lugar en el tiempo. Es un paradigma de diseño
normalizado para contextos dinámicos, asíncronos y orientados a procesos; Se aplica más
ampliamente dentro de la ingeniería de software.
La tecnología de la información es clave para habilitar un nuevo mundo de arquitectura impulsada por
eventos. Cuando comenzamos a poner chips en todo tipo de dispositivos y objetos, instrumentamos
nuestras tecnologías y ponemos los teléfonos inteligentes en manos de muchos, el mundo que nos
rodea deja de ser estúpido y estático y comienza a ser más dinámico, adaptable, y las cosas comienzan
a suceder en tiempo real.
Cuando las luces de una casa o la puerta de un garaje están equipadas con sensores y actuadores, ya
no necesitan que una persona los encienda. En vez de eso, esperan en un estado de inquietud,
esperando que ocurra algún evento al cual puedan responder instantáneamente.
Esto contrasta con muchos de nuestros sistemas tradicionales en los que los componentes están
restringidos por algún mecanismo de coordinación centralizado, y la información a menudo tiene que
ser enrutada desde el nivel local a un mecanismo de control centralizado, luego procesada por lotes y
devuelta al componente para responder después de algún tiempo. Los componentes dentro de
sistemas complejos pueden adaptarse localmente, lo que significa que a menudo pueden actuar y
reaccionar en tiempo real. A esto se agrega el hecho de que muchos de estos sistemas complejos de
ingeniería son redes de componentes no asociados que se acoplan de manera flexible. Realmente no
tienen ninguna estructura. A veces ni siquiera existen hasta que ocurre algún evento.
Cuando realizo una consulta en un motor de búsqueda, es posible que mi computadora esté
conectada a un centro de datos en Texas. Pero la próxima vez que haga la misma consulta, podría
estar interactuando con un servidor en Corea del Sur. Dependiendo del equilibrio de carga del sistema
en ese instante en el tiempo, la estructura de la red se define dinámicamente durante el tiempo de
ejecución del sistema.
Una arquitectura dirigida por eventos consiste principalmente en creadores de eventos,
administradores de eventos y consumidores de eventos. El creador del evento, que es la fuente del
evento, solo sabe que el evento ha ocurrido y emite una señal para indicarlo. Un administrador de
eventos, como su nombre lo indica, funciona como intermediario en la gestión de eventos. Cuando el
administrador recibe la notificación de un evento de un creador, puede aplicar algunas reglas para
procesar el evento. Pero, en última instancia, los eventos se transfieren a los consumidores de
eventos, donde un solo evento puede iniciar numerosas actividades posteriores. Los consumidores
son entidades que necesitan saber que el evento ha ocurrido y normalmente se suscriben a algún tipo
de administrador de eventos. Por ejemplo, un servicio de alojamiento en línea donde los creadores de
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
eventos (es decir, los dueños de propiedades) transmiten la disponibilidad de su alojamiento al
administrador de eventos (la plataforma en línea), que los agregaría, y los consumidores de eventos
(personas que buscan alojamiento) podrían suscribirse a la lista de correo de la plataforma
enviándoles notificaciones de nuevos listados relevantes.
Algunas de las ventajas de usar una arquitectura dirigida por eventos son: EDA se adapta
particularmente bien a la estructura de sistemas complejos de ingeniería. No necesitamos definir un
sistema formal bien delimitado de qué componentes forman parte o no.
En cambio, los componentes pueden permanecer autónomos, pudiendo acoplarse y desacoplarse en
diferentes redes en respuesta a diferentes eventos. Por lo tanto, los componentes pueden ser
utilizados y reutilizados por muchas redes diferentes.
En segundo lugar, la versatilidad. La arquitectura controlada por eventos permite que los sistemas se
construyan de una manera que facilite una mayor capacidad de respuesta porque los sistemas
controlados por eventos son, por diseño, normalizados para entornos impredecibles, no lineales y
asíncronos. Pueden ser altamente versátiles y adaptables a diferentes circunstancias. A continuación,
EDA se optimiza inherentemente para el análisis en tiempo real. Dentro de este paradigma
arquitectónico, tenemos una capacidad mucho mayor para encontrar, analizar y luego responder a
patrones en el tiempo antes de que ocurran los eventos críticos, mientras que, tradicionalmente,
pasamos mucho tiempo buscando en el espejo retrovisor analizando datos sobre cosas que
sucedieron ayer o el año pasado, la arquitectura dirigida por eventos permite un mundo más
preventivo. En lugar de esperar a que mi carro se descomponga y luego dejarlo en el garaje por unos
días para arreglarlo, podemos anticiparnos a todo esto haciendo que el carro envíe un flujo de
información a un centro de datos que lo analiza y dispara eventos cuando se identifican los patrones
que conducen a la actividad disfuncional.
Este es el mundo de Big Data en tiempo real, análisis avanzado y procesamiento complejo de eventos.
El procesamiento de eventos complejos es un método para rastrear y analizar flujos de información
que combina datos de múltiples fuentes para inferir eventos o patrones que sugieren circunstancias.
El objetivo del procesamiento de eventos complejos es identificar eventos significativos (como
oportunidades o amenazas) y responder a ellos antes de que ocurran o lo más rápido posible después
de que ocurran. El procesamiento complejo de eventos va de la mano con una arquitectura dirigida
por eventos.
Las desventajas de EDA incluyen riesgos de seguridad y mayor complejidad. Debido a que los sistemas
de EDA a menudo están extremadamente acoplados y son altamente distribuidos: no siempre
sabemos exactamente qué componentes son parte del sistema y las dependencias entre ellos. El
sistema puede volverse opaco y algún pequeño evento podría desencadenar una cadena imprevista
de relaciones. Un buen ejemplo de esto es el comercio algorítmico, que es un paradigma de la
arquitectura basada en eventos. Esto involucra algoritmos de computadora diseñados para realizar
transacciones financieras en un determinado evento, generalmente comprando o vendiendo una
garantía en algún cambio en el precio de mercado. Nadie tiene información completa o parcial sobre
qué algoritmos existen, qué hacen todos y cómo pueden estar interconectados.
Esta situación dentro de una infraestructura crítica es claramente un grave problema de seguridad.
Un corolario de esto es que las cosas pueden volverse muy complejas debido a la naturaleza abierta e
inherente no lineal de este tipo de patrón de diseño.
El pensamiento de diseño, como los sistemas complejos, es interdisciplinario. Atraviesa los dominios
tradicionales al reconocer que todo en nuestro mundo está diseñado. Por lo tanto, saca al diseño de
su zona de confort en la construcción de sillas y elegantes tazas de café para aplicarlo en todas las
áreas, desde el diseño de organizaciones efectivas hasta la creación de servicios de salud y servicios
financieros.
El proceso de diseño es un poco como volar un globo y luego dejar que todo el aire salga de él
lentamente. Requiere una fase inicial de pensamiento divergente en la que hacemos preguntas
expansivas para explorar el contexto completo y muchas opciones diferentes antes de tener que
limitar nuestra visión a una única solución y refinarla a través del pensamiento convergente.
Pero este proceso no es mecánico. Es más evolutivo, lo que significa que no podemos prever
completamente el producto final desde el inicio. Surge y, por lo tanto, debemos pensar en el futuro
de manera abierta. Eso significa tener confianza en la posibilidad de que un resultado desconocido
sea factible, ya que todo el punto del proceso de diseño es que crearemos algo que aún no existe y,
por lo tanto, es imprevisto. Pero no tenemos que reinventar la rueda del proceso de diseño cada vez.
Hay algunas etapas generales que diferentes personas definirán de diferentes maneras, pero vamos a
hablar sobre algunas de las fases más identificadas en el proceso de pensamiento de diseño. Incluyen
las etapas de investigación, creación de ideas (conceptualización), creación de prototipos y pruebas.
Estos pasos no necesariamente siguen un camino lineal. Pueden ocurrir simultáneamente y repetirse.
En primer lugar, la fase de investigación. Lo que estamos haciendo aquí no es crear una cosa. Lo que
estamos creando es una solución, que es una solución a un problema que tiene una persona o
personas en particular. Por lo tanto, necesitamos entender el contexto dentro del cual existirá nuestro
sistema y dónde se encuentra en relación con otras cosas dentro de ese entorno. Es solo cuando
vemos el contexto dado en el que opera una versión preexistente del sistema que obtenemos una
visión completa de por qué es así, y de este modo podemos empezar a concebir una solución
mejorada. Cuando no entendamos el contexto, entonces es probable que simplemente vayamos en
círculos, reaccionando a la solución preexistente. Una generación de diseñadores decide que las líneas
rectas son lo mejor, exaltando todas sus virtudes, haciendo que todo sea cuadrado y rectangular con
esquinas puntiagudas, hasta que la próxima generación de diseñadores se presente y esté harta de las
líneas rectas. Así que comienzan una nueva revolución de curvas y esquinas redondeadas, hasta que
todos se cansan de todas las curvas y vuelven a descubrir la línea recta, y así sucesivamente.
Al comprender el contexto y la historia del contexto para un diseño, podemos ver sus parámetros, las
ventajas y desventajas de ambos extremos y tratar de encontrar una solución integradora. Si
recordamos que siempre hay dos niveles cualitativamente diferentes de un sistema complejo, el local
y el global, como diseñadores del sistema lo trataremos principalmente en la escala macro. Pero al
final del día, todo se desarrolla a nivel local y debemos entender el contexto local donde las personas
interactúan y viven sus vidas a través de estos productos y servicios. La gente no siempre puede
expresar exactamente cuál es el problema o saber exactamente qué es lo que quiere, por lo que
necesitamos una inmersión profunda para que lo armemos, estudios etnográficos, mapas de viajes de
Documento original https://drive.google.com/file/d/0B0vDIvd2_-lnSjVKUmppelVtdGs/view
Web site: http://complexitylabs.io/books/
Traducido para fines académicos por Edwin Valencia Castillo evalencia@unc.edu.pe
No es una traducción oficial
los clientes, todas las formas de experiencia del usuario final y, lo más importante, la empatía. Esta
fase de investigación es una parte engorrosa y confusa del proceso que a menudo se pasa por alto
para alcanzar un resultado final rápidamente. Sin embargo, con estos complejos sistemas de
ingeniería, es fundamental construir una base sólida con la que avanzar.
Si la fase inicial de empatía y comprensión del contexto tiene que ver con el "por qué", la
conceptualización se trata del "qué". Dentro de estos sistemas complejos, habrá múltiples partes
interesadas involucradas, y debemos considerar las perspectivas de cada uno. La solución debe ser
viable para cada uno de los múltiples actores involucrados, es decir, desde la perspectiva humana de
los usuarios finales que tienen que vivir con el producto terminado, desde la perspectiva económica
de las empresas u organizaciones que van a entregar la solución, desde la perspectiva tecnológica de
lo que es físicamente posible, y podríamos agregar, desde una perspectiva ambiental de lo que es
sostenible dados los recursos disponibles.
Tenemos que ser conscientes de que todos aportan algún tipo de perspectiva a este proceso de
conceptualización, y cada una de estas perspectivas tendrá algún tipo de filtro. Es solo mediante la
identificación y eliminación de estos filtros que podemos pensar realmente fuera de la caja donde
ocurre la innovación real. Una forma de lograrlo es a través de la colaboración. El pensamiento de
diseño sugiere que las mejores respuestas se producen cuando 5 personas trabajan en un problema
durante un día, en lugar de que una persona trabaje en él durante cinco días. Desde todas estas
diferentes perspectivas, podemos llegar a lo que es posible y lo que es factible para todos. La
conceptualización requiere creatividad, pero también racionalidad, pensamiento creativo para crear
continuamente posibilidades, y luego pensamiento analítico para racionalizar su viabilidad dentro de
las restricciones dadas. Una vez que tenemos una idea de lo que estamos construyendo, entonces
necesitamos saber cómo construirlo, y la creación de prototipos es el vehículo a través del cual
experimentamos para descubrir esto. La creación de prototipos puede ser un arte y un oficio. Requiere
habilidades prácticas para construir e imaginación para cerrar la brecha entre una maqueta y el
producto terminado. La idea es fallar temprano. Muchos sistemas complejos son grandes cosas como
las redes de transporte. Los construyes una vez y luego te quedas con ellos durante muchas décadas.
La creación de prototipos nos ofrece un entorno seguro para seguir fallando hasta que tengamos éxito.
Por último, el despliegue y la retroalimentación. Diseñar algo se relaciona mucho con el aprendizaje,
y el mejor aprendizaje es apoyado por la experiencia. Experiencia en el funcionamiento de un sistema
que estamos diseñando, y solo se puede obtener realmente al ponerlo en funcionamiento en su
entorno operativo porque es solo cuando está en su contexto final que podemos obtener una vista
completa de 360 grados de él. Hacemos esto creando un producto viable mínimo, la versión más
básica de nuestro sistema que es completamente funcional y de la cual podemos obtener comentarios
reales. Luego, podemos definir métricas de rendimiento clave y comenzar nuestra contabilidad de qué
tan bien está entregando su funcionalidad. Luego iteramos en esto, obteniendo retroalimentación
cada vez que entra en nuestro sistema de control para ver si estamos evolucionando en la dirección
correcta. Pero, por supuesto, el diseño no se detiene allí. Para que el producto o servicio sea
sostenible, debemos integrar este mecanismo evolutivo en su ciclo de vida completo.