Está en la página 1de 38

TECHNOLOGY

RADAR
Una guía con opiniones
sobre las tecnologías
de vanguardia

Volumen 24

#TWTechRadar
thoughtworks.com/radar
Contribuyentes
La Junta Asesora de Tecnología (TAB) es un grupo de 20 tecnologistas senior
de ThoughtWorks. El TAB se reúne presencialmente dos veces al año y
quincenalmente por teléfono. Su función principal es ser un grupo asesor
para ThoughtWorks CTO,Rebecca Parsons.

El Radar Tecnológico está preparado por la La TAB actúa como un solo individuo que puede analizar temas que influyen
en la tecnología y a tecnologistas de ThoughtWorks. Con la pandemia
Junta Asesora de Tecnología de ThoughtWorks mundial de hoy, se volvió a crear este volumen del Technology Radar a través
de un evento virtual.

Rebecca Martin Fowler Bharani Birgitta Brandon Camilla Cassie


Parsons (CTO) (Chief Scientist) Subramaniam Böckeler Byars Crispim Shum

Erik Evan Fausto Hao Ian James Lakshminarasimhan


Dörnenburg Bottcher de la Torre Xu Cartwright Lewis Sudarshan

Mike Neal Perla Rachel Scott Shangqi Zhamak


Mason Ford Villarreal Laycock Shaw Liu Dehghani

TECHNOLOGY RADAR | 2
© ThoughtWorks, Inc. All Rights Reserved.
Sobre
el Radar
Nuestros Thoughtworkers son apasionados por
la tecnología. La construimos, investigamos,
probamos, liberamos su código fuente,
escribimos sobre el y constantemente queremos
mejorarlo para todas las personas. Nuestra
misión es liderar la excelencia tecnológica y
revolucionar las TI. En soporte de esta misión,
creamos y compartimos el Radar Tecnológico de
ThoughtWorks. La Junta Asesora de Tecnología
de ThoughtWorks, un grupo de líderes senior
en la tecnología dentro de ThoughtWorks, son
quienes crean el Radar. Se reunen regularmente
para discutir la estrategia tecnológica global de
ThoughtWorks y las tendencias tecnológicas que
impactan significantemente nuestra industria.

El Radar captura los resultados de las


discusiones de la Junta Asesora de Tecnología
en un formato que provee valor a un amplio
rango de personas interesadas, desde gente
desarrolladora hasta CTOs. El contenido
pretende ser un resumen consiso.

Te alentamos a explorar estas tecnologías. El


Radar es gráfico por naturaleza, agrupando
items en técnicas, herramientas, plataformas
y lenguajes & frameworks. Cuando items del
Radar llegan a aparecer en múltiples cuadrantes,
elegimos el que parezca más apropiado.
Después agrupamos estos items en cuatro
anillos para reflejar nuestra opinión
actual sobre ellos.

Para más información del Radar, entra en


thoughtworks.com/radar/faq.

TECHNOLOGY RADAR | 3
© ThoughtWorks, Inc. All Rights Reserved.
Nuevo

Un vistazo Desplazado adentro/afuera

al Radar
Ningún cambio

Nuestro Radar tiene una visión hacia


el futuro. Para hacer espacio a nuevos
items, hemos retirado los items que no
han sufrido cambios recientes, lo cual
El Radar trata de rastrear cosas no es un reflejo de su valor sino más
interesantes, a las que nos referimos como bien del espacio limitado disponible en
blips. Organizamos los blips en el radar nuestro Radar.
usando dos elementos de categorización:
cuadrantes y anillos. Los cuadrantes
representan diferentes tipos de blips. Los
anillos indican en qué etapa del ciclo de vida
de adopción creemos que deberían estar. Resistir Evaluar Probar Adoptar Adoptar Probar Evaluar Resistir

Un blip es la tecnología o técnica que juega Adoptar


un rol en el desarollo de software. Los
blips son cosas que están en constante Estamos convencidos de que la industria
”movimiento” — es decir, su posición en debería adoptar estos ítems. Nosotros
el Radar está cambiando — generalmente los utilizamos cuando es apropiado en
indicando que estamos encontrando una nuestros proyectos.
creciente confianza en ellos a medida que Probar
avanzan por los anillos.
Vale la pena probarlos. Es importante entender
cómo desarrollar estas capacidades. Las empresas
deberían probar esta tecnología en proyectos en
que se puede manejar el riesgo.

Evaluar
Vale la pena explorar, con la comprensión de
cómo podría afectar a su empresa.

Resistir
Proceder con precuación.

TECHNOLOGY RADAR | 4
© ThoughtWorks, Inc. All Rights Reserved.
Temas de esta edición
Equipos de plataforma herramientas y patrones de integración “Muy complejo para ser un Discernir el contexto para el
impulsan la velocidad de para equipos y tecnologías, lo que permite blip”, lo perenne del radar acoplamiento de arquitectura
un particionamiento más efectivo entre
salida al mercado ambas.
En la nomenclatura del Radar, el estado Una discusión que se repite prácticamente
Con más frecuencia, las organizaciones Comodidades consolidadas final luego de discutir sobre varios temas en todas nuestras reuniones (revisa el tema
están adoptando el concepto de equipos complejos es “muy complejo para ser un denominado “Muy complejo para ser un blip”,
frente a lo mejor de su clase blip” o “TCTB” (del inglés “too complex lo perenne del radar”) tiene que ver con el nivel
de plataforma: armar un grupo dedicado
que crea y da soporte a las capacidades to blip”): son elementos que desafían adecuado de acoplamiento en la arquitectura
internas de la plataforma (nativa a la nube, A medida que las prácticas de ingeniería nuestros parámetros de clasificación de software entre microservicios, componentes,
entrega continua, observabilidad moderna, que ofrecen automatización, escala y porque ofrecen una serie de pros y API gateways, centros de integración
patrones de autenticación/authorización, otros objetivos modernos se vuelven más contras, una gran cantidad de matices en (integration hubs), front-ends, etc.; las personas
mallas de servicio, etc), para luego comunes en los equipos de desarrollo, cuanto a la aplicabilidad del consejo o la de arquitectura y de desarrollo luchan por
aprovecharlas para acelerar el desarrollo vemos la correspondiente integración de herramienta, o por otros motivos que nos encontar el nivel correcto de acoplamiento
de aplicaciones, reducir la complejidad herramientas de desarrollo en muchas impiden resumir nuestras opiniones en prácticamente en todos los lugares donde se
operacional y mejorar los tiempos de plataformas, particularmente en el espacio pocas frases. Con frecuencia, estos temas pueden conectar dos elementos de software,
salida al mercado. Esta madurez creciente de la nube. Por ejemplo, los repositorios se tratarán como artículos, podcasts, y en considerando que muchos consejos comunes
es bienvenida y presentamos esta de artefactos, el control de código fuente, otros medios que no son el Radar. Algunas fomentan el desacoplamiento extremo, aunque
técnica een el Radar en 2017. Pero con los pipelines de CI/CD, las wikis y demás de nuestras mejores conversaciones se eso dificulta la creación de flujos de trabajo.
el incremento de la madurez, también herramientas similares eran escogidas a centran en estos temas: son importantes El acoplamiento en la arquitectura pasa por
hemos descubierto antipatrones que las mano e individualmente por los equipos pero complejas, e impiden llegar a un único, muchas consideraciones importantes: la forma
organizaciones deben evitar. Por ejemplo, de desarrollo y ensambladas a la carta. y resumido, punto de vista. Numerosos en que se conectan las cosas, comprender el
“una plataforma para gobernar a todas” Ahora, plataformas de entrega como Azure temas se repiten reunión tras reunión acoplamiento semántico inherente dentro de
puede no ser óptima, una “plataforma DevOps y ecosistemas como GitHub han (además de que los vemos frecuentemente cada dominio del problema, cómo se invocan
grande desde el inicio” puede tomar integrado muchas de estas categorías de con nuestros clientes) que terminan las cosas entre sí o el funcionamiento de la
años para entregar valor y “constrúyela y herramientas. Si bien el nivel de madurez siendo catalogados como TCTB, como los transaccionalidad (a veces en combinación
ellos vendrán” puede terminar como un varía según las ofertas de cada plataforma, monorepos, pautas de orquestación para con otras características complicadas como
esfuerzo desperdiciado. En cambio, usar el atractivo de tener “todo en un mismo arquitecturas distribuidas y modelos de la escalabilidad). El software no puede existir
un enfoque con orientación al producto lugar” con respecto a las herramientas ramificación, entre otros. Si alguien se sin algún nivel de acoplamiento por fuera de
puede ayudar a esclarecer qué deben de entrega es innegable. En general, pregunta por qué estos temas importantes los sistemas monolíticos singulares; encontrar
proveer cada una de las plataformas parece que el equilibrio radica en tener un no aparecen en el Radar, no es por falta el balance correcto para determinar los tipos
internas, dependiendo de sus clientes. conjunto de herramientas consolidadas de conciencia o deseo de nuestra parte. y niveles de acoplamiento se convierte en
Las compañías que arman sus equipos que ofrecen una mayor comodidad para Como muchos temas en el desarrollo de una habilidad crítica con las arquitecturas
de plataforma utilizando un sistema de el desarrollador y menos rotación, a software, existen demasiados aspectos modernas. Vemos malas prácticas específicas
tickets como silos de operaciones a la vieja pesar que estas herramientas rara vez que equilibrar para poder emitir consejos como la generación de código para bibliotecas
usanza, encuentran las mismas desventajas representan lo mejor posible. claros e inequívocos. A veces encontramos cliente, y buenas prácticas como el uso juicioso
de una priorización mal alineada: lentitud elementos más pequeños de los temas de los patrones BFF. Sin embargo, brindar
en la retroalimentación y en las respuestas, más importantes sobre los que si podemos consejos generales en este ámbito es inútil y
contención en la asignación de recursos ofrecer consejo, y llegan a estar en el Radar; tampoco existen soluciones mágicas. Se debe
y otros problemas bien conocidos por pero los temas más importantes siguen invertir tiempo y esfuerzo en comprender los
el uso de silos. También hemos visto perpetuamente inestables, con demasiados factores en juego al tomar estas decisiones
aparecer un gran número de nuevas matices, para el Radar. caso por caso, en lugar de buscar una solución
genérica pero inadecuada.

TECHNOLOGY RADAR | 5
© ThoughtWorks, Inc. All Rights Reserved.
El Radar
Técnicas Herramientas
Adoptar Adoptar
1. Expansión-contracción de APIs 52. Sentry
2. Entrega continua para aprendizaje automático
(CD4ML) Probar
3. Sistemas de diseño 53. axe-core
4. Equipos de producto de ingeniería de plataforma 54. dbt
5. Estrategia de rotación de cuentas de servicios 55. esbuild
56. Flipper
Probar 57. Great Expectations
6. Sandboxes en la nube 58. k6
7. Contextual bandits 59. MLflow
8. Imágenes Docker sin distribución 60. OR-Tools
33
9. Ethical Explorer 61. Playwright
10. Renovación de legados guiada por hipótesis 62. Prowler
32
11. Enfoque ligero respecto a las RFCs 63. Pyright
31 12. Aprendizaje automático más simple posible 64. Redash
25 68 65. Terratest
24
26 13. Inyección de SPA
69 70 71 66. Tuple
80 14. Carga cognitiva del equipo
23
15. Xcodeproj administrado por herramientas 67. Why Did You Render
30
72 16. Tipos compartidos entre la UI y el BFF
73 Evaluar
22
16 Evaluar 68. Buildah y Podman
54 74
29 21 15 57 17. Plataformas delimitadas de poco código 69. GitHub Actions
12 13 53 56
58
18. Identidad descentralizada 70. Imagen nativa de Graal
75 19. Radiador del desfase de los despliegues 71. HashiCorp Boundary
20 11 55 72. imgcook
14
59 60 76
20. Cifrado homomórfico
28
61 21. Hotwire 73. Longhorn
10
19 77 22. Importmaps para micro frontends 74. Operator Framework
5
62
63 23. Modelo Abierto de Aplicaciones (OAM) 75. Recommender
9 4 24. Analítica web centrada en la privacidad 76. Remote - WSL
78
27
18
3
64
25. Programación en grupo remota 77. Spectral
7 8 66 26. Computación segura entre múltiples partes 78. Yelp detect-secrets
65
17 2
52 79 79. Zally
6 1 67
Resistir
27. GitOps Resistir
Resistir Evaluar Probar Adoptar Adoptar Probar Evaluar Resistir 28. Equipos de plataforma en capas 80. AWS CodePipeline
29. Requisitos ingenuos de complejidad de contraseñas
30. Revisión por pares equivalente a pull request
Lenguajes & Frameworks
94
40 34 93
104 31. SAFe™
82
81 32. Propiedad separada del código y del pipeline
92
33. Modelos operativos de plataforma basados en Adoptar
41 81. Combine
35 103 tickets
88 90 91
82. LeakCanary
36
42 87

86 89
102
Plataformas Probar
83. Angular Testing Library
43 101
Adoptar 84. AWS Data Wrangler
50
37
38 85 85. Blazor
44 83 86. FastAPI
Probar
45 84 34. Kit de desarrollo en la nube de AWS 87. io-ts
100
39
35. Backstage 88. Kotlin Flow
99 36. Delta Lake 89. LitElement
46 98
37. Materialize 90. Next.js
47
48 96 97 38. Snowflake 91. Módulos bajo demanda
39. Fuentes variables 92. Streamlit
49 95 93. SWR
51 Evaluar 94. TrustKit
40. Apache Pinot
41. Bit.dev Evaluar
42. DataHub 95. .NET 5
43. Feature Store 96. bUnit
44. JuiceFS 97. Dagster
45. API de Kafka sin Kafka 98. Flutter para Web
46. NATS 99. Jotai y Zustand
47. Opstrace 100. Kotlin Multiplatform Mobile
48. Pulumi 101. LVGL
49. Redpanda 102. React Hook Form
103. River
Resistir 104. Federación de Módulos de Webpack
Nuevo Desplazado adentro/afuera Ningún cambio 50. Azure Machine Learning
51. Productos hechos en casa para infraestructura
como código
TECHNOLOGY RADAR

Técnicas
Adoptar
1. Expansión-contracción de APIs
2. Entrega continua para aprendizaje

Técnicas
automático (CD4ML)
3. Sistemas de diseño
4. Equipos de producto de ingeniería
33 de plataforma
5. Estrategia de rotación de cuentas de
32 servicios
Expansión-contracción de APIs
31 Probar
Adoptar 25 68
26
24 69 6. Sandboxes en la nube
71
70
El patrón de expansión-contracción de 7. Contextual bandits
80
23
APIs , a veces llamado cambios en paralelo 30 8. Imágenes Docker sin distribución
(parallel change), será familiar para muchas 9. 72 Ethical
73
Explorer
personas, especialmente en relación a su uso 22 10. Renovación de legados guiada por
con bases de datos o código; sin embargo, 16 54 hipótesis
74
29 21 15 57
sólo vemos niveles bajos de adopción en 5811. Enfoque ligero respecto a las RFCs
12 53
las APIs. Específicamente, vemos el uso 13 56 12. Aprendizaje automático más simple
75
esquemas complejos de versionamiento y 20 11 55 posible
14 60 13. Inyección de
la introducción de cambios disruptivos en 28 59 76 SPA
escenarios donde la simple expansión y 10 14.
61 Carga cognitiva del equipo
19 77
posterior contracción del API sería suficiente. 15. 63
Xcodeproj administrado por
5
Por ejemplo, primero se añadiría un nuevo 62 herramientas
9
elemento a un API, para luego descontinuar 18
4 16. 64
Tipos compartidos
78 entre la UI y el
27
un elemento existente, y posteriormente 3 BFF
7 8 66
remover los elementos descontinuados, 52 65 79
17 6 2 Evaluar
una vez que los consumidores se hayan 1 67
cambiado al esquema más nuevo. Este 17. Plataformas delimitadas de poco
enfoque requiere cierta coordinación y Resistir Evaluar Probar Adoptar Adoptar
código
Probar Evaluar Resistir
visibilidad de los consumidores del API, tal 18. Identidad descentralizada
vez a través de técnicas como las pruebas de 19. Radiador del desfase de los
94
contratos dirigidos por consumidores. 40 34 despliegues
93
20. Cifrado homomórfico104
(CD) a las soluciones de aprendizaje digitales consistentes. Basados en las 82
automático. guías de estilo corporativas del pasado, 81los 21. Hotwire
92
Entrega continua para 41 sistemas de diseño ofrecen bibliotecas y 22. Importmaps para micro frontends
35 103
aprendizaje automático (CD4ML) documentos compartidos que son fáciles 88
23. Modelo Abierto de Aplicaciones
90
Adoptar Sistemas de diseño de encontrar
36 y usar. Generalmente la guía (OAM)91
42 87
Adoptar se escribe como código y se mantiene bajo 24. Analítica web centrada
102 en la
control de versiones para que sea menos 86 89 privacidad
Vemos a la entrega continua para 43 101
aprendizaje automático (CD4ML) como A medida que el desarrollo de aplicaciones ambigua y más fácil de mantener que los 25. Programación en grupo remota
un buen punto de inicio predeterminado 50
se hace cada vez más dinámico y complejo, documentos simples.
38 Los sistemas de 85 26. Computación segura entre múltiples
37
para cualquier solución de aprendizaje es un desafío ofrecer productos accesibles44 diseño se han convertido en un 83
enfoque partes
automático que se despliegue en y utilizables con un estilo coherente. Esto es 45
estándar cuando se trabaja entre equipos84
39 Resistir 100
producción. Muchas organizaciones particularmente cierto en las organizaciones y disciplinas en el desarrollo de productos
dependen cada vez más de soluciones más grandes con varios equipos que porque permiten que los equipos se 27. GitOps
99
de aprendizaje automático tanto para trabajan en diferentes productos. Los concentren.
46 Pueden abordar desafíos 28.
98 Equipos de plataforma en capas

las ofertas a sus clientes como para sistemas de diseño definen una colección estratégicos en 48
torno al producto en sí sin 96 97 29. Requisitos ingenuos de complejidad
47
operaciones internas, así que tiene sentido de patrones de diseño, bibliotecas de reinventar la rueda cada vez que se necesita de contraseñas
comercial aplicar las lecciones y las buenas componentes y buenas prácticas de diseño un nuevo componente49visual. 95 30. Revisión por pares equivalente a pull
practicas capturadas por la entrega continua e ingeniería que garantizan productos 51 request
31. SAFe™
32. Propiedad separada del código y del
pipeline
8 | TECHNOLOGY RADAR 33. Modelos operativos de plataforma
© ThoughtWorks, Inc. All Rights Reserved. basados en tickets
Técnicas Equipos de producto de
ingeniería de plataforma
amplios que se mantienen en uso por largos
periodos de tiempo, además de la falta de
Contextual bandits
Probar
Adoptar planificación sobre como reemplazarlas
o rotarlas. El aplicar regularmente Contextual bandits es un tipo de
Como se mencionó en uno de los temas una estrategia de rotación de cuentas aprendizaje por refuerzo muy adecuado
Con un nombre que hace de esta edición, la industria está ganando de servicios en la nube también da la para problemas que requieren un
honor a las máquinas cada vez más experiencia con los equipos oportunidad de practicar el principio del equilibrio entre exploración y explotación
tragamonedas de los de producto de ingeniería de plataforma menor privilegio. (“Exploration-Exploitation Trade-off”).
casinos (en inglés, que crean y dan soporte a plataformas Con un nombre que hace honor a las
“bandits” o “one-armed internas. Estas son utilizadas por los máquinas tragamonedas de los casinos (en
bandits”), el algoritmo equipos de toda la organización y aceleran Sandboxes en la nube inglés, “bandits” o “one-armed bandits”),
el desarrollo de aplicaciones, reducen la Probar el algoritmo explora diferentes opciones
explora diferentes complejidad operativa y mejoran el tiempo para aprender más sobre los resultados
opciones para aprender de comercialización. Con una adopción cada Dado que la nube se está convirtiendo cada esperados y los equilibra explotando
más sobre los resultados vez mayor, también tenemos más claros los vez más en un producto básico y que la aquellas que se desempeñan bien. Hemos
esperados y los equilibra patrones buenos y malos de este enfoque. posibilidad de crear sandboxes en la nube usado esta técnica exitosamente en
explotando aquellas que Al crear una plataforma, es fundamental es mucho más sencillo y está disponible escenarios donde se ha tenido muy poca
se desempeñan bien. tener clientes y productos claramente a gran escala, nuestros equipos prefieren información para entrenar y desplegar
definidos que se beneficiarán de ella en entornos de desarrollo en la nube (en lugar otros modelos de aprendizaje automático.
lugar de construir en el vacío. Advertimos de locales) para reducir la complejidad del El hecho de que es posible agregar
(Contextual bandits)
en contra de los equipos de plataforma en mantenimiento. Estamos viendo que las contexto a este equilibrio entre exploración
capas, que conservan los silos de tecnología herramientas para hacer una simulación local y explotación lo hace apropiado para
existentes pero se aplican la etiqueta de de los servicios nativos de la nube limitan una amplia variedad de casos de uso,
“equipo de plataforma”, y también contra los la confianza en los ciclos de construcción y como pruebas A/B, recomendaciones y
modelos operativos de plataforma basados prueba de los desarrolladores; por lo tanto, optimizaciones de diseño, etc.
en tickets. Todavía somos partidarios de estamos buscando centrarnos en estandarizar
utilizar los conceptos de Team Topologies los ambientes sandbox en la nube, en lugar
mientras pensamos en cómo organizar de ejecutar los componentes nativos de la Imágenes Docker sin
mejor a los equipos de plataforma. nube en una máquina del desarrollador. distribución
Consideramos que los equipos de producto Esto impulsará las buenas prácticas de Probar
de ingeniería de plataforma son un enfoque infraestructura como código como medida
estándar y un habilitador significativo para obligatoria y los buenos procesos de Cuando se construyen imágenes Docker
lograr TI de alto rendimiento. incorporación para proveer de ambientes para las aplicaciones, usualmente nos
sandboxes a los nuevos desarrolladores. preocupan dos cosas: la seguridad y su
Existen riesgos asociados a esta transición, tamaño. Tradicionalmente hemos usado
Estrategia de rotación de ya que supone que los desarrolladores herramientas de escaneo de seguridad
cuentas de servicios tendrán una dependencia absoluta de la en contenedores para detectar y corregir
Adoptar disponibilidad del entorno en la nube, y vulnerabilidades y riesgos comunes, y
puede ralentizar el ciclo de retroalimentación. distribuciones pequeñas como Alpine Linux
Recomendamos encarecidamente a las Recomendamos encarecidamente adoptar para resolver el tema del tamaño de la
organizaciones que, cuando realmente se algunas prácticas de gobernanza lean en imagen y del rendimiento de la distribución.
necesite usar cuentas de servicios en la relación con la estandarización de estos Pero con el aumento de las amenazas
nube, roten las credenciales. La rotación es entornos de sandboxes, especialmente en lo de seguridad, eliminar todos los posibles
una de las tres R de la seguridad. Es muy que respecta a la seguridad, la administración vectores de ataque es más importante que
fácil para las organizaciones perder de de identidades (IAM por sus siglas en inglés) y nunca. Es por esto que las imágenes Docker
vista a estas cuentas hasta que ocurre un los despliegues regionales. sin distribución se están convirtiendo en la
incidente. Esto da lugar a la existencia de opción predeterminada para contenedores
cuentas con permisos innecesariamente para despliegue. Este tipo de imágenes

TECHNOLOGY RADAR | 9
© ThoughtWorks, Inc. All Rights Reserved.
Técnicas
reducen el tamaño y las dependencias para varias “zonas de riesgo” técnicas, conjunto de hipótesis sobre el problema.
suprimiendo las distribuciones de sistemas incluida la vigilancia (“¿puede alguien Luego llevan a cabo experimentos en
operativos completos. Esta técnica reduce utilizar nuestro producto o servicio para iteraciones de tiempo establecidas para
el ruido en los escaneos de seguridad y rastrear o identificar a otros usuarios?”), verificar o refutar cada hipótesis en
la superficie de ataque a la aplicación: la desinformación, la exclusión, el sesgo orden de prioridad. El flujo de trabajo
hay menos vulnerabilidades que corregir algorítmico, la adicción, el control de resultante está optimizado para reducir la Cuando necesitamos
y, como extra, estas imágenes son más datos, los malos actores y el poder incertidumbre en lugar de seguir un plan modernizar sistemas
eficientes. Google ha publicado un conjunto desmesurado. La guía que se incluye hacia un resultado predecible.. heredados con
de imágenes de contenedor sin distribución tiene actividades y talleres, ideas para aplicaciones de página
para diferentes lenguajes. Se pueden crear iniciar conversaciones y consejos para única (en inglés single-
imágenes para aplicación sin distribución lograr la aceptación de la organización. Enfoque ligero respecto a las page applications o SPA),
usando la herramienta de construcción Si bien tenemos un largo camino por RFCs
Bazel de Google o simplemente usando recorrer como industria para representar en lugar de envolver
Probar
Dockerfiles multistage. Hay que tener mejor los factores externos éticos de el sistema heredado,
en cuenta que los contenedores sin nuestra sociedad digital, hemos tenido A medida que las organizaciones se incorporamos el
distribución no tienen un intérprete de algunas conversaciones fructíferas sobre mueven hacia arquitecturas evolutivas, comienzo de la nueva
comandos (shell) para depurar. Sin embargo productos utilizando Ethical Explorer y es importante llevar un registro de las SPA en el documento
es fácil encontrar en línea versiones de nos alienta la creciente conciencia de la decisiones de diseño, arquitectura, técnicas HTML que contiene el
contenedores sin distribución habilitados importancia de las decisiones sobre los y formas de trabajar de los equipos. El
anterior y dejamos que se
para la depuración que incluyen a BusyBox productos para abordar los problemas proceso de recolectar y consolidar la
como intérprete de comandos. Google ha sociales. retroalimentación que conduce a esas
expanda lentamente en
sido pionero en esta técnica y, en nuestra decisiones comienza con las Solicitudes de funcionalidad.
experiencia, sigue limitada en gran medida Comentarios (Request for Comments, RFCs).
a las imágenes generadas por ellos. Nos Renovación de legados guiada Las RFCs son una técnica para recoger (Inyección de SPA)
sentiríamos mejor si existiera más de un por hipótesis contexto, ideas de diseño y de arquitectura
proveedor para elegir. Además, se debe Probar y colaborar con los equipos para finalmente
tener precaución al correr Trivy o escáneres llegar a tomar decisiones junto con su
de vulnerabilidades similares, ya que A menudo nos piden que renovemos, contexto y consecuencias. Nosotros
solamente sus versiones más recientes son actualicemos o reparemos sistemas recomendamos que las organizaciones
compatibles con este tipo de contenedores.. legados que originalmente no hemos tomen un enfoque ligero respecto a las
construido. En ocasiones, debemos RFCs, usando una plantilla estandarizada
atender problemas técnicos como mejorar entre los equipos además de control de
Ethical Explorer el desempeño y la fiabilidad del sistema. versiones para recoger las RFCs.
Probar Un enfoque común para abordar estos Es importante agregar estas decisiones en
asuntos es crear “historias técnicas” un registro de auditoría, para beneficiar
El grupo que está detrás de Ethical usando el mismo formato que una historia a los miembros futuros de los equipos
OS (Omidyar Network, una empresa de usuario, pero con un resultado técnico y así documentar la evolución técnica
autodenominada de cambio social creada en vez de uno de negocio. Sin embargo, y de negocio de una organización. Las
por el fundador de eBay, Pierre Omidyar) estas tareas técnicas a menudo son difíciles organizaciones maduras han usado
ha liberado una nueva iteración llamada de estimar, llevan más tiempo del que se los RFCs en equipos autónomos para
Ethical Explorer. Este nuevo paquete anticipa, o no terminan produciendo el impulsar mejoras en la comunicación y la
se basa en las lecciones aprendidas resultado deseado. Un método alternativo colaboración, especialmente cuando se
con el uso de Ethical OS y agrega más y más exitoso es aplicar la renovación trata de tomar decisiones importantes entre
preguntas para que los equipos de de legados guiada por hipótesis. En equipos.
producto las tengan en cuenta. El kit, que lugar de trabajar con un banco (backlog)
puede descargarse de forma gratuita estándar de historias de usuario, el
y doblarse en tarjetas para iniciar una equipo se apropia de un resultado técnico
conversación, tiene preguntas abiertas cuantificable y establece colectivamente un

10 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Técnicas Aprendizaje automático más y dado que estas aplicaciones se están los equipos construir, probar y mantener
simple posible volviendo sistemas legados en sí, notamos sus servicios. Midiendo la carga cognitiva
Probar que el enfoque opuesto, “de adentro hacia del equipo , podríamos aconsejar mejor a
afuera”, se está usando para reemplazarlas. nuestros clientes sobre cómo cambiar la
Todos los proveedores grandes de la En vez de envolver al sistema legado, se estructura de sus equipos y evolucionar sus
La interacción dentro agrega las bases de la nueva SPA en el interacciones.
nube ofrecen una gama deslumbrante
del equipo es una de de soluciones de aprendizaje automático. documento HTML que contiene a la anterior
las variables que define Estas poderosas herramientas pueden y dejamos que se expanda lentamente en
la facilidad con la que proveer mucho valor, aunque tienen funcionalidad. Los marcos de trabajo de Xcodeproj administrado por
los equipos pueden los costos asociados. Existe el costo puro por SPA ni siquiera necesitan ser los mismos, herramientas
siempre que los usuarios puedan tolerar
equipos entregar valor a la ejecución de estos servicios, cobrado Probar
por el proveedor de la nube. Además, hay el impacto causado al rendimiento por
sus clientes. Las autoras el aumento del tamaño de la página (por Muchas de nuestras personas que
una especie de impuesto a su operación.
de las topologías de ejemplo, al incrustar una nueva aplicación desarrollan para iOS con Xcode a menudo
Estas herramientas complejas necesitan
equipos desarrollaron ser entendidas y operadas, y con cada React dentro de una antigua en AngularJS). sufren por culpa de los cambios en el
una evaluación para nueva herramienta que se agrega a la La inyección de SPA permite eliminar archivo Xcodeproj cada vez que cambia
medir estas interacciones arquitectura, esta carga impositiva se iterativamente la aplicación antigua el proyecto. El formato de este archivo
las cuales nosotros incrementa. En nuestra experiencia, muchas hasta que la nueva tome su lugar por no es legible para las personas, por
completo. Mientras que la metáfora del lo que intentar manejar conflictos es
llamamos carga cognitiva veces los equipos eligen herramientas
complejas porque menosprecian el poder árbol estrangulador puede verse como bastante complicado y puede conducir
del equipo un tipo de parásito que usa la superficie a una pérdida de productividad con el
de herramientas más sencillas como la
regresión lineal. Muchos de los problemas externa, estable, del árbol huésped para riesgo de estropear el proyecto entero
(Carga cognitiva del equipo) sostenerse hasta echar raíces, mientras el (si algo malo pasa con el archivo, Xcode
de aprendizaje automático no necesitan
de una GPU ni de redes neuronales. Por huésped muere; este enfoque es más como no funcionará bien y las desarrolladoras
esta razón recomendamos utilizar el inyectar un agente externo en el huésped, quedarán bloqueadas). En lugar
aprendizaje automático más simple posible apoyándose en la funcionalidad de la SPA de intentar fusionar los cambios y
, aprovechando herramientas y modelos original hasta poder reemplazarla por arreglar el archivo manualmente o
sencillos, algunos cientos de líneas de completo. versionarlo, recomendamos un enfoque
código Python, en la plataforma de cómputo llamado Xcodeproj administrado por
que esté más a la mano. Se debe dejar las herramientas : la configuración del
herramientas complejas solo para cuando se Carga cognitiva del equipo proyecto Xcode se define en YAML
pueda demostrar su necesidad. Probar (XcodeGen, Struct), Ruby (Xcake) o Swift
(Tuist) y estas herramientas generan el
La arquitectura de un sistema replica archivo Xcodeproj a partir del archivo de
Inyección de SPA la estructura de la organización y sus configuración y la estructura del proyecto.
Probar patrones de comunicación. No es nada Como resultado, los conflictos al fusionar
nuevo que debamos ser intencionales cambios en el archivo Xcodeproj serán
El patrón de estrangulamiento es a menudo sobre cómo interactúan los equipos una cosa del pasado y, cuando ocurran en
la primera estrategia que viene a la mente (véase, por ejemplo, la Maniobra Invertida el archivo de configuración, son mucho
para modernizar sistemas legados, donde de Conway). La interacción de un equipo más fáciles de resolver.
el nuevo código envuelve al antiguo y es una de las variables que definen cuán
absorbe lentamente la capacidad de rápido y cuán fácil les resulta entregar
manejar toda la funcionalidad necesaria. valor a sus clientes. Estamos contentos Tipos compartidos entre la UI y
Este tipo de enfoque “de afuera hacia de haber encontrado una forma de medir el BFF
adentro” funciona bien para algunos esas interacciones: usamos la evaluación Probar
sistemas legados, sin embargo, ahora que proponen las autoras de Team
que hemos tenido suficiente experiencia Topologies, que proporciona una forma Con TypeScript convirtiéndose en un
con aplicaciones de página única (SPA), de entender cuán fácil o difícil le resulta a lenguaje común para el desarrollo de

TECHNOLOGY RADAR | 11
© ThoughtWorks, Inc. All Rights Reserved.
Técnicas
front-end, y Node.js siendo una de las plataformas de poco o ningún código, descentralizadas está ganando impulso y
tecnologías preferidas para el desarrollo es decir, plataformas que resuelven convirtiéndose en algo asequible. Vemos
de BFFs, percibimos un incremento en el problemas muy específicos en dominios que se está adoptando en aplicaciones
uso de tipos compartidos entre la UI y el bastante limitados. Muchos proveedores médicas, infraestructura sanitaria pública
BFF. En esta técnica, un único conjunto de están presionando agresivamente hacia e identidad empresarial legal que respetan
definiciones de tipos de datos es utilizado este espacio. Los problemas que vemos la privacidad. Si quieres comenzar pronto Las organizaciones que
para definir tanto los objetos de datos con estas plataformas se relacionan con la identidad descentralizada, puedes utilizan despliegues
devueltos por las consultas del front- típicamente con la imposibilidad de aplicar evaluar proyectos de código abierto como automatizados algunas
end, como los datos entregados desde buenas prácticas de ingeniería como el Sovrin Network, Hyperledger Aries e Indy, veces requieren
el servidor de back-end para satisfacer versionamiento. Además, realizar pruebas así como los estándares de identificadores aprobaciones manuales
esas consultas. Normalmente, seríamos es generalmente muy difícil. Sin embargo, descentralizados y de credenciales
para ambientes parecidos
cautelosos con esta práctica debido al hemos notados la existencia de algunos verificables. Estamos muy pendientes de
acoplamiento innecesario que crea a nuevos e interesantes participantes en lo que sucede en este campo mientras a producción, provocando
través de los límites de los procesos; pero, el mercado, como Amazon Honeycode ayudamos a nuestros clientes con su que el código de este
muchos equipos están encontrando que que facilita la creación de aplicaciones posicionamiento estratégico en la nueva ambiente esté retrasado
los beneficios de este enfoque superan simples de gestión de tareas o eventos era de confianza digital. con respecto al código
cualquier riesgo de alto acoplamiento. y Parabola para flujos de trabajo en la actual. Un Visor de
Dado que el patrón BFF funciona mejor nube similares a los de IFTTT, por lo que desviación de despliegues
cuando el código de la interfaz de usuario y estamos incluyendo a las plataformas Radiador del desfase de los logra hacer visible este
el del BFF son propiedad del mismo equipo, delimitadas de poco código en esta despliegues
y considerando que ambos componentes edición del Radar. No obstante, seguimos retraso a través de un
Evaluar
conviven en el mismo repositorio con siendo profundamente escépticos acerca tablero de comandos
frecuencia, el par UI-BFF puede verse como de su mayor aplicabilidad, ya que estas Un radiador del desfase de los despliegues simple.
un único sistema cohesionado. Cuando el herramientas tienen el poder de escapar hace visible las discrepancias entre las
BFF ofrece consultas de datos fuertemente de sus límites y enredarlo todo, como lo versiones del software desplegado en (Visor de desviación de
tipados, los resultados se pueden adaptar hace la maleza. Es por eso que seguimos múltiples ambientes. Las organizaciones despliegues)
a las necesidades específicas del front- aconsejando tener mucho cuidado en su que utilizan despliegues automáticos suelen
end, en lugar de utilizar una única entidad adopción. tener flujos de aprobación manual para los
de propósito general que deba satisfacer ambientes cercanos a producción, y con
las necesidades de muchos consumidores frecuencia, el código en estos ambientes
y contener más campos de los que Identidad descentralizada está varias versiones por detrás del código
realmente son necesarios. Esto reduce el Evaluar en desarrollo actual. Esta técnica muestra
riesgo de exponer accidentalmente datos esta diferencia entre las versiones de cada
que el usuario no debería ver, previene En 2016, Christopher Allen, uno de los componente en cada ambiente mediante
la interpretación incorrecta del objeto contribuyentes principales a SSL/TLS, un tablero simple. Esto ayuda a destacar el
de datos devuelto y hace que la consulta nos inspiró con una introducción de 10 costo de oportunidad del código terminado
sea más expresiva. Esta práctica es principios que apuntaban a una nueva que aún no está en producción y puede
particularmente útil cuando se implementa forma de identidad digital así como una señalar posibles riesgos, como parches de
con io-ts para hacer cumplir la seguridad forma de llegar a ella: el camino hacia seguridad aún no liberados.
de los tipos en tiempo de ejecución. la auto-identidad soberana. La auto-
identidad soberana, también conocida
Plataformas delimitadas de como la identidad descentralizada , es una Cifrado homomórfico
poco código “identidad portable y para toda la vida de Evaluar
Evaluar una persona, organización o cosa que no
depende de una autoridad centralizada El cifrado homomórfico (homomorphic
Una de las decisiones más complejas y que nunca se puede confiscar”, de encryption, HE) total se refiere a una clase
a las que se enfrentan las compañías acuerdo al estandar Trust over IP. La de métodos de cifrado que permiten
en este momento es la adopción de adopción e implementación de identidades que los cálculos (como la búsqueda y

12 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Técnicas
la aritmética) se realicen directamente diversas razones esta técnica nunca ganó especifica de dónde hay que importar
sobre datos cifrados. El resultado de los mucha fama. el front-end. Ese HTML está generado
cálculos permanece encriptado, y se puede En la actualidad, Hotwire utiliza tanto las obviamente en el lado servidor, lo que
desencriptar y revelar posteriormente. capacidades modernas de los navegadores hace posible usar alguna configuración
Aunque el problema de la HE se propuso web como las capacidades de HTTP para dinámica durante la renderización. En
La computación segura por primera vez en 1978, no se construyó lograr la velocidad, capacidad de respuesta muchos casos esta técnica nos recuerda
de múltiples partes una solución sino hasta 2009. Con los y la naturaleza dinámica de las aplicaciones a las rutas del enlazador/cargador (linker/
soluciona el problema de avances en el poder computacional y la de una sola página (SPA, por sus siglas en loader) para bibliotecas dinámicas Unix.
computación colaborativa disponibilidad de bibliotecas de código inglés). Esta técnica adopta un diseño de Por ahora los importmaps solo están
que protege la privacidad abierto fáciles de usar, como SEAL, Lattigo, aplicación web más sencillo, localizando la soportados por Chrome, pero con el
HElib y el cifrado homomórfico parcial en lógica en el servidor y manteniendo simple polyfill SystemJS están listos para un uso
entre partes que no
Python, HE se está volviendo factible en el código del lado del cliente. El equipo más amplio.
confían entre las mismas, aplicaciones del mundo real. Los escenarios de Basecamp ha lanzado algunos marcos
sin involucrar a una motivadores incluyen casos de uso con de trabajo de Hotwire que potencian su
tercera parte. preservación de la privacidad, donde la propia aplicación, incluyendo Turbo y Modelo Abierto de Aplicaciones
computación se puede subcontratar a un Stimulus. Turbo incluye un conjunto de (OAM)
(Computación segura de grupo que no es de confianza, por ejemplo, técnicas y marcos de trabajo para acelerar Evaluar
múltiples partes) para ejecutar cálculos sobre datos cifrados la capacidad de respuesta de la aplicación
en la nube, o para permitir que un tercero evitando la recarga de la página completa, El Open Application Model (OAM) es un
agregue resultados intermedios cifrados la previsualización de la página desde la intento para crear algunos estándares
homomórficamente de aprendizaje caché y la descomposición de la página en alrededor del modelamiento de
automático federado. Además, la mayoría fragmentos con mejoras progresivas bajo plataformas de infraestructura como
de los esquemas de HE se consideran demanda. Stimulus está diseñado para productos. Usando abstracciones para
seguros frente a las computadoras mejorar el HTML estático en el navegador los componentes, las configuraciones
cuánticas y se están realizando esfuerzos conectando objetos JavaScript a los de aplicaciones, sus ámbitos (scopes) y
para estandarizar la HE. A pesar de sus elementos de la página en el HTML. atributos (traits), los equipos de desarrollo
limitaciones actuales, rendimiento y pueden describir sus aplicaciones de forma
viabilidad de los tipos de cálculos, HE es agnóstica a la plataforma; mientras que el
digno de atención. Importmaps para micro equipo que la implemente, lo puede hacer
frontends en términos de carga de trabajo, atributos y
Evaluar ámbitos. Desde la última vez que hablamos
Hotwire sobre OAM, hemos seguido con interés
Evaluar Cuando se compone una aplicación con una de sus primeras implementaciones:
varios micro frontends, algunas partes KubeVela. KubeVela está cerca de publicar
Hotwire (HTML over the wire) es una técnica del sistema necesitan decidir qué micro su versión 1.0 y tenemos curiosidad de ver
para construir aplicaciones web. Las páginas frontend cargar y de dónde hacerlo. si este tipo de implementaciones pueden
se construyen a partir de componentes, Hasta ahora, o bien construíamos una sustentar la promesa de la idea de OAM.
pero a diferencia de las SPA modernas, el solución a medida, o bien dependiamos
HTML de los componentes se genera en de un marco de trabajo más amplio
el lado del servidor y luego se envía por como single-spa. Ahora existe un nuevo Analítica web centrada en la
el cable “over the wire” al navegador. La estándar denominado import-maps privacidad
aplicación sólo tiene una pequeña cantidad que ayuda en ambos casos. Nuestras Evaluar
de código JavaScript en el navegador para primeras experiencias muestran que
unir los fragmentos de HTML. Nuestros usar importmaps para micro frontends La analítica web centrada en la privacidad
equipos, y sin duda otros también, utilizaron permite conseguir una separación limpia es una técnica para recopilar datos
esta técnica después de que las peticiones de responsabilidades. El código JavaScript analíticos web sin comprometer la
web asíncronas fueran soportadas por los indica qué importar y una etiqueta script privacidad del usuario final, manteniéndolos
navegadores, allá por el año 2005, pero por al inicio de la respuesta HTML inicial verdaderamente anónimos. Una

TECHNOLOGY RADAR | 13
© ThoughtWorks, Inc. All Rights Reserved.
Técnicas
consecuencia inesperada del cumplimiento requerido de formar parte del cálculo de vuelven problemáticas o se dejan de hacer.
de la Regulación General de Protección un resultado, que no puede ser obtenido Esto es muy similar a lo que advertimos
de Datos (RGPD o, GDPR en inglés) es la por las otras entidades. Un ejemplo simple en el pasado respecto a las ramas de larga
decisión tomada por varias organizaciones de MCP es el problema de los millonarios: duración con GitFlow.
de degradar la experiencia del usuario con dos millonarios quieren conocer quién
complejos procesos para aceptar cookies, es más rico, pero ninguno quiere revelar Ciertas organizaciones
especialmente cuando el usuario no acepta el valor de su patrimonio al otro ni Equipos de plataforma en capas consideran que la revisión
inmediatamente la configuración por tampoco a un tercero. Los enfoques Resistir por pares es equivalente
defecto de “todas las cookies”. La analítica de implementación de MPC varían: los a un pull request. Hemos
web centrada en la privacidad tiene el escenarios pueden incluir el intercambio La explosión de interés en torno a las
visto que este enfoque
doble beneficio de respetar el espíritu de secretos, transferencia inconsciente, plataformas de software ha creado mucho
valor para las organizaciones, pero el camino
crea importantes
y la letra de la RGPD a la vez que evita circuitos confusos o cifrado homomórfico.
la necesidad de introducir formularios Algunas soluciones comerciales de hacia la construcción de un modelo de embotellamientos en el
intrusivos de consentimiento de cookies. Una MPC que han aparecido recientemente, entrega basado en plataformas está plagado equipo y además degrada
implementación de esta técnica es Plausible. como Antchain Morse, afirman que de posibles callejones sin salida. Por la significativamente
ayudan a resolver los problemas del emoción que traen los nuevos paradigmas, la calidad de la
intercambio de secretos y el aprendizaje es común ver un resurgimiento de técnicas retroalimentación.
Programación en grupo remota automático seguro en escenarios como antiguas marcadas con la nueva lengua
Evaluar la investigación crediticia conformada vernácula, lo que hace que sea fácil perder de
(Revisión por pares
por múltiples partes y el intercambio de vista las razones por las que superamos esas
equivalente a pull request)
La programación en grupo (mob datos de registros médicos. Aunque estas técnicas en primer lugar. Para ver un ejemplo
programming) es una de esas técnicas plataformas son atractivas desde una de este cambio de marca, revisa nuestro
que nuestros equipos han visto que son perspectiva de mercadotecnia, todavía blip sobre los ESBs disfrazados de API
capaces de ejecutar más fácilmente de tenemos que ver si son realmente útiles. Gateways en la edición anterior del Radar.
forma remota. La programación en grupo Otro ejemplo que estamos viendo es repetir
remota permite a los equipos agruparse el enfoque de dividir a los equipos por capa
alrededor de una tarea o una sección de GitOps de tecnología, pero llamándolos plataformas.
código sin las limitantes físicas de solo Resistir En el contexto de la construcción de una
poder ubicar un número limitado de aplicación, era común tener un equipo
personas en una estación de trabajo. Los Sugerimos usar GitOps con cierto grado de front-end separado del equipo que se
equipos pueden colaborar rápidamente de cuidado, especialmente con lo que encarga de la lógica empresarial, separado
sin tener que conectar una gran pantalla, respecta a las estrategias de ramificación del equipo de datos, y vemos análogos
reservar una sala de reuniones física o en repositorios de código. GitOps se puede a ese modelo cuando las organizaciones
encontrar una pizarra. ver como una forma de implementar segregan las capacidades de la plataforma
infrastructura como código que implica entre los equipos dedicados a una capa
la sincronización y aplicación continua de de negocio o de datos. Gracias a la Ley de
Computación segura entre código de infraestructura desde Git en varios Conway, sabemos que organizar equipos
múltiples partes ambientes. Cuando se usa con una estrategia de capacidades de plataforma en torno a
Evaluar de “rama por ambiente”, los cambios se capacidades comerciales es un modelo más
promueven de un ambiente al siguiente eficaz, que permite al equipo empoderarse
La computación segura entre múltiples mediante la combinación (merge) del código. de la capacidad completamente, incluyendo
partes (secure multiparty computing, MPC) Si bien tratar el código como única fuente de los datos. Esto ayuda a evitar los dolores
soluciona el problema de computación la verdad es un enfoque sólido, vemos que la de cabeza de la gestión de dependencias
colaborativa protegiendo la privacidad estrategia de “rama por entorno” típicamente de equipos de plataforma en capas , con el
entre partes que no confían entre sí. Su da pie a que aparezcan diferencias entre equipo de front-end esperando al equipo de
objetivo es calcular de forma segura un ambientes y que configuraciones específicas la lógica de negocio, esperando al equipo de
problema acordado sin un tercero de se propaguen a medida que las operaciones datos para hacer cualquier cosa.
confianza, mientras cada participante es de combinación del código (merge) se

14 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Requisitos ingenuos de administrar el flujo de trabajo de revisión de Propiedad separada del código y
complejidad de contraseñas código por lo que instamos a las personas a del pipeline
Resistir considerar otros enfoques, especialmente Resistir
cuando es necesario capacitar y transmitir
En la actualidad, las políticas de retroalimentación con cuidado. Idealmente, el pipeline de despliegue
contraseñas son un estándar por defecto y el código que se despliega deben ser
para muchas organizaciones. Sin embargo, propiedad del mismo equipo, especialmente
seguimos viendo que hay organizaciones SAFe™ cuando los equipos practican DevOps.
que solicitan que las contraseñas incluyan Resistir Desafortunadamente, todavía vemos
una variedad de símbolos, números, organizaciones donde existe una propiedad
letras mayúsculas y minúsculas, e incluso Nuestro posicionamiento respecto a separada del código y del pipeline ,
caracteres especiales. Estos son requisitos “ser ágil antes de hacer ágil” y nuestras donde este último pertenece al equipo de
ingenuos de complejidad de contraseñas opiniones sobre este tema no deberían infraestructura. Esto se traduce en lentitud
y provocan una falsa sensación de causar sorpresa; pero desde que SAFe™ para aplicar cambios, en la existencia de
seguridad, ya que los usuarios optarán (Scaled Agile Framework®), según el barreras para las mejoras y en una falta
por contraseñas más inseguras porque informe de Gartner de Mayo de 2019, es de apropiación por parte del equipo de
cualquier otra cosa es difícil de recordar y el marco de referencia ágil empresarial desarrollo, con menor involucramiento en
escribir. De acuerdo a las recomendaciones más considerado y utilizado, y dado que los despliegues. Una causa de esto puede ser
del NIST, el factor principal en la fuerza vemos a más y más empresas emprender claramente el tener equipos separados; otra
de una contraseña es su longitud, y por lo cambios organizacionales, hemos pensado puede ser el deseo de conservar procesos
tanto, los usuarios deberían elegir frases que es el momento de volver a crear y roles que funcionen como controladores
de contraseña largas con un requisito conciencia sobre este tema. Nos hemos y guardianes. Aunque puede haber razones
máximo de 64 caracteres (incluyendo encontrado con organizaciones luchando legítimas para usar este enfoque (por
espacios). Estas frases de contraseña son con los procesos sobre-estandarizados ejemplo, por control regulatorio), en general
más seguras y fáciles de recordar. y de fases que tiene SAFe. Esos encontramos que es doloroso e inútil.
procesos crean fricción en la estructura
organizacional y su modelo operativo.
Revisión por pares equivalente a También, puede promover la creación
de silos en la organización, impidiendo
pull request
que las plataformas se conviertan en
Resistir
auténticas habilitadoras de las capacidades
Parece que ciertas organizaciones consideran del negocio. El control “de arriba hacia
que la revisión por pares es equivalente a abajo” genera desperdicio en la cadena
un pull request : creen que la única manera de valor y desalienta la creatividad del
de lograr una revisión por pares del código talento de ingeniería, al tiempo que limita
es a través de un pull request. Hemos la autonomía y la experimentación en los
visto que este enfoque crea importantes equipos. En vez de medir el esfuerzo y
embotellamientos en el equipo y además focalizarse en ceremonias estandarizadas,
degrada significativamente la calidad de recomendamos una aproximación y
la retroalimentación cuando los revisores, gobernanza más ligeras y enfocadas en la
sobrecargados, comienzan a rechazar las entrega de valor, para así ayudar a eliminar
solicitudes casi sin mirar. Aunque se podría la fricción organizativa, como EDGE, y
argumentar que esta es una forma de evaluar la carga cognitiva de los equipos
demostrar el “cumplimiento normativo” de para identificar sus tipos y determinar
la revisión de código, en uno de nuestros como deben interactuar mejor entre sí.
clientes se dijo que esto era inválido, ya que
no había evidencia de que el código había Scaled Agile Framework® y SAFe™ son marcas
sido leído por alguien antes de su aceptación. registradas de Scaled Agile, Inc.
Los pull requests son solo una forma de

TECHNOLOGY RADAR | 15
© ThoughtWorks, Inc. All Rights Reserved.
Modelos operativos de
plataforma basados en tickets
Resistir

Uno de los objetivos finales de una


plataforma debe ser reducir los procesos
basados en tickets a un mínimo absoluto
ya que crean colas en el flujo de valor.
Lamentablemente, todavía vemos
organizaciones que no presionan con la
suficiente fuerza para conseguir esa meta,
lo que resulta en modelos operativos de
plataforma basados en tickets. Esto es
particularmente frustrante cuando los
procesos basados en tickets se colocan en
frente de plataformas de los proveedores
de la nube que tienen características
de autoservicio y orientadas a las APIs.
Es difícil pero no necesario lograr el
autoservicio con muy pocos tickets desde
el comienzo, pero debe ser el objetivo.

La dependencia excesiva en la burocracia


y la falta de confianza son las causas de
esta resistencia a alejarse de los procesos
basados en tickets. Incorporar más
verificaciones y alertas automáticas dentro
de la plataforma ayuda a cortar el cordón
de los procesos de aprobación con tickets.
Por ejemplo, se puede dar visibilidad de
los costos de ejecución a los equipos y
colocar límites automáticos para evitar
una explosión accidental de los costos.
Recomendamos implementar políticas de
seguridad como código y utilizar escáneres
de configuración o analizadores como
Recommender para ayudar a los equipos a
hacer lo correcto.

16 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
TECHNOLOGY RADAR

Plataformas
5 63
62
9 4
18 64 78
27 3
7 8 66
52 65 79
17 6 2 1 67

Plataformas
Adoptar
Resistir Evaluar Probar Adoptar Adoptar Probar Evaluar Resistir
Probrar
94
40 34 34.
93
Kit de desarrollo en la
82 nube de AWS 104
81 35.
92 Backstage
Kit de desarrollo en la nube de 41 36. Delta Lake
AWS 35 37. Materialize 103
88 90 91
Probar 36 38. Snowflake
42 87 39. Fuentes variables
102
Muchos de nuestros equipos que ya están 86 89
43 101
en AWS han encontrado que el kit de Evaluar
desarrollo en la nube de AWS (CDK de AWS) 50 38 40. Apache Pinot
37 85
es una elección razonable predeterminada 44 83 41. Bit.dev
para permitir el aprovisionamiento de la 42. DataHub
45 84
infraestructura. En concreto, a los equipos les 39 100
43. Feature Store
gusta el uso de lenguajes de programación 44. 99 JuiceFS
de primera clase en lugar de archivos de 46 98 45. API de Kafka sin Kafka
configuración, lo que les permite utilizar 48 46. NATS
47 96 97
herramientas, habilidades y enfoques de 47. Opstrace
pruebas ya existentes. Al igual que otras 49 48. Pulumi
95
herramientas similares, se debe tener 49. Redpanda
51
cuidado para garantizar que los despliegues
continúan siendo fáciles de entender y Resistir
mantener. El CDK es actualmente compatible 50. Azure Machine Learning
con TypeScript, JavaScript, Python, Java, 51. Productos hechos
C# y .NET. Se están añadiendo nuevos en casa para
proveedores al núcleo del CDK. Hemos infraestructura como
utilizado con éxito tanto el CDK de AWS como código.
el kit de desarrollo en la nube para Terraform
de HashiCorp para generar configuraciones
de Terraform y permitir el aprovisionamiento
exitoso en esta plataforma.
Delta Lake
algo de consistencia, de forma que los Probar
Backstage equipos de desarrollo puedan concentrarse
Probar en la innovación y el desarrollo de los Delta Lake es una capa de
productos en lugar de reinventar la almacenamiento de código abierto
Seguimos viendo interés en Backstage rueda. Backstage es una plataforma de implementada por Databricks, que
y crecimiento en su uso, además código abierto para levantar portales para intenta llevar transacciones ACID al
de la adopción de portales para desarrolladoras creada por Spotify; se procesamiento de big data. En proyectos
desarrolladoras, dada por la necesidad basa en plantillas de software, y permite de lago de datos o de malla de datos
de las organizaciones de brindar soporte unificar las herramientas de infraestructura con soporte de Databricks, nuestros
y optimizar sus ambientes de desarrollo. con documentación técnica consistente equipos siguen prefiriendo usar el
A medida que crece el número de y centralizada. Su arquitectura para almacenamiento Delta Lake en lugar
herramientas y tecnologías, también complementos permite extenderla y del uso directo de mecanismos de
aumenta la importancia de lograr alguna adaptarla a las necesidades del ecosistema almacenamiento de archivos como S3 o
forma de estandarización para conseguir de infraestructura de una organización. ADLS. Por supuesto que esto se limita

18 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Plataformas a proyectos que usan plataformas de
almacenamiento que soportan Delta Lake
más de experiencia con él, así como con
las mallas de datos como alternativa a los
Apache Pinot
Evaluar
cuando usan formatos de archivo Parquet. almacenes de datos (data warehouses)
Delta Lake facilita casos de uso de lectura/ y lagos de datos. Snowflake continua Apache Pinot es un almacén de datos
escritura de datos concurrentes donde impresionándonos con funcionalidades distribuidos OLAP creado para ofrecer
LinkedIn ha se requiere transaccionalidad a nivel como viajes en el tiempo, clonación analíticas en tiempo real y con baja
evolucionado de archivo. Encontramos de gran ayuda de copia cero, intercambio de datos y latencia. Puede alimentarse de fuentes
WhereHows en DataHub, a la integración transparente de Delta con su tienda (marketplace). No hemos de datos por lotes (como Hadoop HDFS,
la plataforma de Lake con las APIs de procesamiento en encontrado nada que no nos guste, lo Amazon S3, Azure ADLS o Google Cloud
nueva generación que lotes o en micro lotes de Apache Spark, que ha llevado a los equipos a preferirlo Storage), así como de orígenes de datos
y particularmente, a funcionalidades por sobre otras alternativas. Redshift en streams (como Apache Kafka). Si se
aborda la capacidad de
como los viajes en el tiempo (acceder a se está enfocando en la separación del necesita ofrecer al usuario análiticas de
descubrimiento de datos los datos de un momento determinado o almacenamiento y del procesamiento, baja latencia, las soluciones de SQL-en-
a través de un sistema en la reversión de un commit) así como que ha sido un punto fuerte de Snowflake, Hadoop no ofrecen la latencia que se
extensible de metadatos. el soporte de evolución de esquema pero, incluso con Redshift Spectrum, no es necesita. Los motores OLAP modernos,
al momento de escritura, aunque tan fácil y ni flexible de usar, en parte por como Apache Pinot (o Apache Druid
(DataHub) hay algunas limitaciones en estas sus lazos previos con Postgres (por cierto, y Clickhouse, entre otros), pueden
características. todavía nos gusta Postgres). Las consultas lograr una latencia mucho menor y
federadas pueden ser una razón para son particularmente adecuados en
usar Redshift, pero, cuando se trata de contextos donde se necesitan analíticas
Materialize operaciones, Snowflake es mucho más fácil rápidas en tiempo real y con datos
Probar de usar. BigQuery, que es otra alternativa, inmutables, como las agregaciones.
es muy fácil de operar pero Snowflake lo Originalmente construido por LinkedIn,
Materialize es una base de datos en supera en ambientes de múltiples nubes Apache Pinot ingresó a la incubadora
streaming que permite realizar cálculos (multi-cloud). También podemos decir que de Apache a finales de 2018 y desde
incrementales sin necesidad de pipelines hemos usado Snowflake con éxito en GCP, entonces ha obtenido una arquitectura
de datos complicados. Se debe describir AWS y Azure. de complementos y compatibilidad
los cálculos mediante vistas SQL estándar con SQL, entre otras capacidades
y conectar Materialize al stream de datos. clave. Apache Pinot puede ser bastante
El motor de flujo de datos diferencial Fuentes variables complejo de operar y tiene muchas
subyacente realiza cálculos incrementales Probar partes móviles, pero recomendamos
para proporcionar resultados consistentes y evaluarlo si los volúmenes de datos son lo
correctos con mínima latencia. A diferencia Las fuentes variables son una forma de suficientemente grandes y se necesita una
de las bases de datos tradicionales, no evitar la necesidad de buscar e incluir capacidad de consulta de baja latencia.
hay restricciones para definir estas vistas archivos de fuentes distintos para
y los cálculos se ejecutan en tiempo real. diferentes pesos y estilos. Todo está en un
Nosotros hemos utilizado Materialize junto solo archivo y puedes utilizar propiedades Bit.dev
con Spring Cloud Stream y Kafka en un para seleccionar el tipo de estilo y el peso Evaluar
sistema de eventos distribuidos para hacer que se necesita. Si bien no es nuevo, aún
consultas sobre streams de eventos, y nos vemos sitios y proyectos que se podrían Bit.dev es una plataforma colaborativa
gustó esta configuración. beneficiar de este enfoque tan simple. Si alojada en la nube para componentes de
tienes páginas que incluyen diferentes interfaz de usuario extraídos, modularizados
variaciones de la misma fuente, te y reutilizados con Bit. Los componentes
Snowflake sugerimos que pruebes fuentes variables. web han existido ya por un tiempo, pero
Probar nunca ha sido sencillo construir aplicaciones
frontend modernas ensamblando
Desde la última vez que presentamos a componentes independientes y pequeños,
Snowflake en el Radar, hemos ganado algo extraídos de otros proyectos. Bit fue

TECHNOLOGY RADAR | 19
© ThoughtWorks, Inc. All Rights Reserved.
Plataformas
diseñada para hacer exactamente eso: visibilidad y colaboración entre modelos; empresarial industrial. Debido a la
extraer un componente de una biblioteca y (3) consistentemente provee datos de alta barrera de entrada que presenta
o proyecto existente. Tu puedes construir características durante el entrenamiento y la el ecosistema completo de Kafka, nos
tu servicio propio para la colaboración de interferencia. complace la reciente explosión de
componentes o usar Bit.dev. Desde que Uber reveló su plataforma plataformas que ofrecen el API de Kafka
Michelangelo, muchas organizaciones sin Kafka. Entradas recientes como A medida que mayor
y startups han construido sus propias Kafka en Pulsar y Redpanda ofrecen número de negocios
DataHub versiones de almacenes de características, arquitecturas alternativas y Azure recurren a los eventos
Evaluar como Hopsworks, Feast y Tecton. Vemos Event Hubs para Kafka proporciona como una forma de
potencial en Feature Store y recomendamos cierta compatibilidad con las APIs de compartir datos entre
Desde que mencionamos al descubrimiento realizar un análisis cuidadoso. producción y consumo de Kafka. Algunas
microservicios, recopilar
de datos por primera vez en el Radar, características de Kafka, como la biblioteca
LinkedIn ha evolucionado WhereHows cliente de streams, no son compatibles análisis o alimentar
en DataHub, la plataforma de nueva JuiceFS con estos brokers alternativos, por lo que data lakes, Apache Kafka
generación que aborda la capacidad de Evaluar todavía hay razones para elegir Kafka en se ha convertido en la
descubrimiento de datos a través de un su lugar. Sin embargo, queda por ver si plataforma favorita.
sistema extensible de metadatos. En lugar JuiceFS es un sistema de archivos POSIX las desarrolladoras realmente adoptan Debido a la alta barrera
de rastrear y extraer metadatos, DataHub distribuido, de código abierto, basado esta estrategia o si es simplemente un de entrada que presenta
adopta un modelo basado en push en en Redis y, al mismo tiempo, un almacén intento de los competidores para alejar a
el ecosistema completo
el que los componentes individuales del de objetos. A la hora de crear nuevas los usuarios de Kafka. En última instancia,
ecosistema de datos publican metadatos aplicaciones, normalmente recomendamos quizás el impacto más duradero de Kafka de Kafka, damos la
mediante un API o un stream hacia la interactuar directamente con el almacén de podría ser su conveniente protocolo y el bienvenida a la reciente
plataforma central. Este modelo de objetos, sin utilizar una capa de abstracción API que se brinda a los clientes. explosión de plataformas
integración traslada la propiedad de la adicional. Sin embargo, JuiceFS podría ser que ofrecen la API de
entidad central a los equipos individuales, una opción si se necesita migrar a la nube Kafka sin Kafka.
haciéndolos responsables de sus a aplicaciones legadas que dependen de NATS
metadatos. A medida que más y más sistemas de archivos POSIX tradicionales. Evaluar (Kafka API sin Kafka)
empresas intentan orientarse a los datos,
es fundamental tener un sistema que ayude NATS es un sistema de cola de mensajería
con el descubrimiento y la comprensión de API de Kafka sin Kafka rápido y seguro con una gama inusualmente
la calidad y el linaje de los datos, por lo que Evaluar amplia de características y potenciales
recomendamos evaluar a DataHub en esa sistemas objeto de despliegue. En principio,
capacidad. A medida que más empresas recurren a pasaremos por alto el que uno se pregunte
los eventos como medio para compartir por qué el mundo necesita otro sistema
datos entre microservicios, recopilar de colas de mensajería. Estas han estado
Feature Store analíticas o alimentar lagos de datos, presentes en varias formas casi todo el
Evaluar Apache Kafka se ha convertido en la tiempo desde que las empresas han usado
plataforma favorita para sostener una computadoras y han experimentado
Feature Store es una plataforma de datos arquitectura basada en eventos. Aunque años de refinamiento y optimización para
específica para aprendizaje automático Kafka fue un concepto revolucionario diversas tareas. Sin embargo, NATS tiene
que resuelve algunos de los principales en mensajería persistente y escalable, características interesantes y es único
retos que encontramos hoy en la ingeniería se requieren muchas partes móviles por su capacidad para escalar desde
de características con tres capacidades para que funcione, como ZooKeeper, controladores integrados hasta super
fundamentales: (1) usa pipelines de datos brokers, particiones y réplicas. Si bien clusters globales alojados en la nube. Nos
gestionados para eliminar conflictos estos pueden ser particularmente difíciles intriga particularmente la intención de
con los pipelines cuando llegan nuevos de implementar y operar, ofrecen una NATS de soportar flujos continuos de datos
datos; (2) cataloga y almacena datos gran flexibilidad y potencia cuando desde dispositivos móviles e IoT, y a través
de las características para fomentar su es necesario, especialmente a escala de una red de sistemas interconectados.

20 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Plataformas Redpanda
Sin embargo, es necesario abordar algunos Opstrace se encuentra un clúster de Cortex
problemas delicados, uno de los cuales para proporcionar el API escalable de Evaluar
es garantizar que los consumidores solo Prometheus, así como un cluster de Loki
vean los mensajes y tópicos a los que para los logs. Como es una herramienta Redpanda es una plataforma de
se les permite acceder, especialmente relativamente nueva, aún carece de streaming de datos que proporciona un
De vez en cuando las cuando la red atraviesa los límites de ciertas funcionalidades si se compara con API compatible con Kafka, lo que permite
organizaciones tienden la organización. NATS 2.0 introdujo un soluciones como Datadog o SignalFX. No aprovechar el ecosistema de Kafka sin
a construir frameworks esquema de seguridad y control de acceso obstante, es una opción prometedora que tener que lidiar con las complejidades de su
o abstracciones encima que soporta clusters para múltiples contribuye a este espacio y vale la pena instalación. Por ejemplo, operar Redpanda
de productos externos propietarios (multitenant) donde las cuentas tomarla en cuenta. es sencillo porque se distribuye como un
restringen el acceso de un usuario a las archivo ejecutable solo y no requiere de
existentes para cubrir
colas y a los tópicos. Escrito en Go, NATS una dependencia externa como ZooKeeper.
necesidades muy ha sido adoptado principalmente por Pulumi En su lugar, implementa el protocolo Raft
específicas, pensando la comunidad de este lenguaje. Aunque Evaluar y realiza pruebas integrales para validar
que la adaptación existen clientes para casi todos los lenguajes si ha sido implementado correctamente.
conlleva más beneficios. de programación más comunes, el cliente Hemos visto un creciente pero lento Una de las capacidades de RedPanda
Sin embargo, estas Go es el más popular. Sin embargo, interés en Pulumi. Esta utilidad llena una (solo para clientes empresariales) son las
organizaciones algunas de nuestras desarrolladoras han brecha en el mundo de la infraestructura transformaciones WASM en línea, utilizando
descubierto que todas las bibliotecas cliente como código, donde Terraform está su motor WebAssembly (WASM) integrado.
subestiman el esfuerzo
tienden a reflejar sus orígenes en Go. El muy afianzado. Si bien Terraform ha Esto permite a las desarrolladoras crear
necesario para seguir aumento del ancho de banda y la potencia sido ampliamente usado y probado, transformadores de eventos en su lenguaje
evolucionando dichas de procesamiento de los dispositivos su naturaleza declarativa presenta preferido y compilarlos a WASM. También
soluciones al ritmo de sus inalámbricos pequeños significa que el capacidades inadecuadas de abstracción ofrece latencias de cola muy reducidas
necesidades, y tras un volumen de datos que las empresas deben y carece de la capacidad de ser probado. y mayor rendimiento debido a una serie
breve periodo de tiempo, consumir en tiempo real solo aumentará. Terraform es adecuado cuando la de optimizaciones. Redpanda es una
se dan cuenta de que la Se puede evaluar a NATS como una posible infraestructura es completamente estática, alternativa fascinante a Kafka y vale la pena
plataforma para transmitir esos datos pero para la definición de infraestructuras probarla.
versión original está en
dentro y entre las empresas. dinámicas se necesita un lenguaje de
mucho mejor condición programación real. Pulumi se distingue
que la suya. por permitir que las configuraciones Azure Machine Learning
Opstrace se escriban en TypeScript o JavaScript, Resistir
(Productos de infraestructura Evaluar Python y Go, sin ser necesario un lenguaje
como código caseros) de marcado o de plantillas. Pulumi está Ya hemos visto antes que los proveedores
Opstrace es una plataforma de código altamente enfocado en arquitecturas de la nube publican cada vez más y más
abierto de observabilidad, destinada para nativas a la nube, incluyendo contenedores, servicios al mercado. También hemos
ser desplegada en la propia red del usuario. funciones serverless y servicios de datos, documentado nuestras preocupaciones de
Si no usamos soluciones comerciales proporcionando buen soporte para que en ocasiones los servicios liberados
como Datadog (por temas de costo o de Kubernetes. Recientemente, el CDK de al público no están del todo listos.
almacenamiento de datos, por ejemplo), AWS se ha posicionado como contendor, Lamentablemente, en base a nuestra
la solución que nos queda sería construir pero Pulumi se mantiene como la única experiencia, Azure Machine Learning
nuestra propia plataforma compuesta herramienta neutral del área, en lo que entra en esta última categoría. Como uno
de herramientas de código abierto. Esto respecta a los proveedores. Anticipamos de los participantes más recientes en el
puede suponer mucho esfuerzo, así que una amplia adopción de Pulumi en el campo de las plataformas delimitadas
Opstrace está diseñado para cubrir esta futuro y esperamos la aparición de de poco código, Azure ML promete más
brecha. Utiliza APIs e interfaces de código herramientas viables y de ecosistemas de facilidades para los científicos de datos.
abierto, como Prometheus y Grafana, y conocimiento que le den soporte. Sin embargo no cumple su promesa y, de
agrega funcionalidades adicionales como hecho, nuestras científicas de datos sienten
TLS y autenticación. En el corazón de que sigue siendo más sencillo trabajar

TECHNOLOGY RADAR | 21
© ThoughtWorks, Inc. All Rights Reserved.
en Python. A pesar de algunos esfuerzos
significativos, tuvimos dificultades para
hacer escalar la solución y la falta de
documentación adecuada demostró
ser otro problema. Por estas razones la
movemos al anillo “Resistir”.

Productos hechos en casa para


infraestructura como código
Resistir

Los productos respaldados por compañías


o comunidades están en constante
evolución, al menos aquellos que ganan
tracción en la industria. De vez en cuando
las organizaciones tienden a construir
marcos de trabajo o abstracciones encima
de productos externos existentes para
cubrir necesidades muy específicas,
pensando que sus adaptaciones traerán
más beneficios que los productos
por sí solos. Vemos a organizaciones
intentando crear productos hechos en
casa para infraestructura como código
sobre tecnologías ya establecidas. Estas
organizaciones subestiman el esfuerzo
necesario para seguir evolucionando dichas
soluciones al ritmo de sus necesidades, y
tras un breve periodo de tiempo, se dan
cuenta de que la versión original está en
mucho mejor condición que la suya propia;
incluso hay casos donde la abstracción
encima del producto externo limita las
funcionalidades originales. Aunque hemos
visto casos de éxito de organizaciones
construyendo soluciones hechas en casa,
queremos advertir en contra de esta
estrategia, ya que el esfuerzo que se
requiere no es despreciable, y es necesario
tener una visión de producto a largo plazo
para conseguir las metas deseadas.

22 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
TECHNOLOGY RADAR

Herramientas
Herramientas
Adoptar
52. Sentry

33 Probar
53. axe-core
32 54. dbt
Sentry 31
55. esbuild
Adoptar 25
26 68 56. Flipper
24 69 70 71 57. Great Expectations
80 58. k6
Sentry se ha convertido en la elección 23
30 59. MLflow
predeterminada para muchos de nuestros 72
equipos a la hora de reportar errores de 73 60. OR-Tools
frontend. La utilidad de características22 61. Playwright
16 54 74 62. Prowler
como la agrupación 29de errores 21o poder 15 57
definir patrones para descartar errores 12 53 58 63. Pyright
13 56
con ciertos parámetros ayuda a gestionar 75 64. Redash
20
la avalancha de errores que llegan de 11 14 55 65. Terratest
59 60 76
28
muchos dispositivos de usuarios finales. 66. Tuple
10 61
La integración de Sentry en 19 el pipeline 67. Why Did You Render
77
de despliegue continuo permite cargar 5 63
62
mapas de orígenes para una depuración 9 Evaluar
4 78
de errores 18
27más eficiente. Aunque Sentry 64 68. Buildah y Podman
3
se ofrece principalmente como un SaaS, 8 69. GitHub Actions
7 65 66
también valoramos que 17su código fuente 52 79 70. Imagen nativa de Graal
6 2
está disponible públicamente y se puede 1 67 71. HashiCorp Boundary
usar gratis en casos de uso más pequeños 72. imgcook
y en Resistir
instalacionesEvaluar
auto-hospedadas. Probar Adoptar Adoptar Probar Evaluar Resistir 73. Longhorn
74. Operator Framework
94 75. Recommender
40 76. Remote - WSL
axe-core 34 93
104
82 77. Spectral
Adoptar 81 92 78. Yelp detect-secrets
41 79. Zally
Hacer que la web sea inclusiva requiere
35
a proporcionar una retroalimentación dbt 103
de mucha atención para asegurar que la temprana a los miembros del equipo sobre 88 Adoptar
90 91
36 Resistir
accesibilidad sea considerada
42 y validada la adherencia a las reglas de accesibilidad,
87
incluso durante las primeras adiciones 102 80. AWS CodePipeline
durante todas las fases de la entrega de Desde la última vez que escribimos
86 89
software. Muchas de las herramientas
43 incrementales de funcionalidad. Sin sobre dbt, lo101
hemos utilizado en algunos
populares para pruebas de accesibilidad embargo, no todos los problemas pueden proyectos y nos gusta lo que hemos visto.
50 38
ser encontrados 85
mediante la inspección
son diseñadas para efectuar sus 37 83 Por ejemplo, dbt hace que la parte de
44 automatizada. Para extender a axe-core,
validaciones una vez que la aplicación está transformación de los pipelines ETL sea
completa; como resultado, los problemas 45 existe la herramienta comercial84 axe más accesible
100 para los consumidores de los
39
se detectan tarde y a menudo se dificulta DevTools, que incluye características que datos en vez de solo para los ingenieros de
su corrección, por lo que se acumulan guían a los miembros del equipo en la 99 los construyen. Al mismo tiempo,
datos que
46 98
como deuda. En nuestro reciente trabajo realización de pruebas exploratorias para fomenta la aplicación de buenas prácticas
48 de problemas de accesibilidad.
la mayoría 96 97
interno en los sitios web de ThoughtWorks, 47 de ingeniería, como el versionamiento, las
hemos incluido como parte del pipeline pruebas automatizadas y los despliegues.
49 95
a axe-core, un motor de pruebas de SQL sigue siendo la lengua franca del
accesibilidad de software libre. Empezó 51 mundo de los datos (incluyendo bases de

24 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Herramientas datos, almacenes de datos, motores de
consulta, lagos de datos y plataformas de
Flipper
Adoptar
destaca por su facilidad de integración en
un ecosistema de desarrollo. Por ejemplo,
analítica) y la mayoría de estos sistemas lo utilizando el adaptador Datadog, un equipo
soportan en cierta medida. Esto permite Flipper es un depurador extensible pudo visualizar rápidamente el rendimiento
que dbt sea utilizado frente a estos sistemas para aplicaciones móviles. De manera en un sistema distribuido e identificar
Las herramientas OR (en para realizar transformaciones con la sola predeterminada, soporta la elaboración de importantes problemas antes de lanzar
inglés, OR Tools) son un construcción de adaptadores. El número perfiles, inspeccion interactiva del diseño, el sistema a producción. Otro equipo, con
paquete de software de de conectores nativos ha crecido e incluyen visor de registros y un inspector de red para la versión comercial de k6, pudo usar la
código abierto para resolver aquellos para Snowflake, BigQuery, aplicaciones iOS, Android y React Native. extensión de Azure pipelines marketplace
problemas de optimización Redshift y Postgres, al igual que la gama de En comparación a otras herramientas de para realizar pruebas de rendimiento en su
complementos de la comunidad. Vemos depuración para aplicaciones móviles, pipeline de integración continua y obtener
combinatoria. Estos
que las herramientas como dbt ayudan a encontramos que Flipper es ligero, tiene informes de Azure DevOps con poco
problemas de optimización que las plataformas de datos brinden más esfuerzo. Dado que k6 admite umbrales
valiosas características y es de fácil
tienen un gran conjunto capacidades de auto-servicio. configuración. que permiten tener verificaciones de
de soluciones posibles y pruebas automatizadas listas para usar,
herramientas como esta son es relativamente fácil agregar una etapa
de gran ayuda al buscar la esbuild Great Expectations al pipeline que detecte la degradación
mejor solución. Adoptar Adoptar del rendimiento de los nuevos cambios,
agregando un poderoso mecanismo
Siempre nos ha llamado la atención Habíamos escrito sobre Great Expectations de retroalimentación para el equipo de
(Herramientas OR)
encontrar herramientas que puedan acortar en la edición anterior del Radar. Nos encanta desarrollo.
el ciclo de retroalimentación en el desarrollo y hemos decidido moverlo al anillo “Probar”
de software, y esbuild es un buen ejemplo. en esta edición. Great Expectations es un
A medida que la base de código de una marco de trabajo que permite crear controles MLflow
aplicación de front-end crece más y más, que etiquetan anomalías o problemas de Adoptar
generalmente experimentamos tiempos de calidad en los pipelines de datos. Igual que
empaquetado que se cuentan en minutos. la ejecución de una prueba unitaria en un MLflow es una herramienta de
esbuild, como un empaquetador de pipeline de compilación, Great Expectations código abierto para el seguimiento
JavaScript optimizado para proveer mayor realiza verificaciones durante la ejecución del de experimentos de aprendizaje
velocidad, puede reducir estos tiempos pipeline de datos. Nos gusta su simplicidad automático y la gestión del ciclo de vida.
en factores de 10 a 100. Está escrito en y facilidad de uso: las reglas almacenadas en El flujo de trabajo para desarrollar y
Golang y utiliza un enfoque más eficiente formato JSON pueden ser modificadas por evolucionar continuamente un modelo
en los procesos de análisis sintáctico, nuestros expertos del dominio de datos sin de aprendizaje automático incluye una
escritura y generación de mapas de código necesidad de tener habilidades de ingeniería serie de experimentos (una colección de
fuente, que superan significativamente de datos. ejecuciones), el seguimiento del rendimiento
a los de herramientas como Webpack y de estos experimentos (una colección
Parcel. Puede ser que esbuild no sea tan de métricas) y el seguimiento y ajuste de
completa como esas herramientas para la k6 modelos (proyectos). MLflow facilita este
transformación de sintaxis de JavaScript, sin Adoptar flujo de trabajo muy bien al apoyar los
embargo esto no impide que muchos de estándares abiertos existentes y se integra
nuestros equipos se cambien a esbuild y la Hemos trabajado un poco más en pruebas bien con muchas otras herramientas en
usen como su herramienta preferida. de rendimiento con k6 desde que lo el ecosistema. MLflow, como servicio
cubrimos por primera vez en el Radar, y gestionado por Databricks en la nube,
hemos conseguido buenos resultados. disponible en AWS y Azure, está madurando
Nuestros equipos han apreciado el enfoque rápidamente y lo hemos utilizado con éxito
en la experiencia para las desarrolladoras y en nuestros proyectos. Consideramos que
la flexibilidad de la herramienta. Aunque es MLflow es una gran herramienta para la
fácil comenzar con k6 por sí solo, realmente gestión y el seguimiento de modelos, que

TECHNOLOGY RADAR | 25
© ThoughtWorks, Inc. All Rights Reserved.
Prowler
Herramientas
soporta tanto modelos de interacción suceden incrementalmente a medida
basados ​​en UI como en API. Nuestra única Adoptar que los archivos cambian para disminuir
y creciente preocupación es que MLflow aún más los ciclos de retroalimentación.
está tratando de entregar respuestas Nos complace ver que la disponibilidad y Pyright puede usarse directamente en
a demasiados temas vinculados, como madurez de herramientas para el análisis la línea de comandos y también existen
una sola plataforma, como el servicio de de la configuración de la infraestructura integraciones disponibles para VS Code, Tuple es una herramienta
modelos y la puntuación. ha aumentado: Prowler ayuda a los Emacs, vim, Sublime y posiblemente otros relativamente nueva
equipos a escanear sus configuraciones editores. En nuestra experiencia, Pyright optimizada para la
de infraestructura de AWS y a mejorar la es mejor que alternativas como mypy. programación en pareja
OR-Tools seguridad en función de los resultados. en remoto, diseñada para
Adoptar Aunque Prowler ha estado presente llenar el vacío que dejó Slack
por un tiempo, ha evolucionado mucho Redash
OR-Tools es una suite de software de Adoptar
en el mercado después de
en los últimos años, y encontramos
código abierto para resolver problemas de muy valioso que permite a los equipos abandonar Screenhero..
optimización combinatoria. Estos problemas asumir responsabilidades para alcanzar Adoptar una filosofía de DevOps del estilo
de optimización tienen un conjunto niveles apropiados de seguridad con “tú lo construyes, tú lo ejecutas” significa (Tuple)
muy grande de posibles soluciones y las ciclos cortos de retroalimentación. que los equipos deben prestar más
herramientas como OR-Tools son de gran Prowler clasifica a las verificaciones del atención a las métricas técnicas como a las
ayuda para buscar la mejor solución. Se AWS CIS benchmarking en diferentes de negocio, las cuales pueden ser tomadas
puede modelar el problema en cualquiera grupos (Identity and Access Management, de los sistemas que despliegan. A menudo
de los lenguajes soportados (Python, Java, Logging, Monitoring, Networking, CIS vemos que las herramientas para analíticas
C# o C++) y elegir el solucionador de entre Level 1, CIS Level 2, EKS-CIS) e incluye son difíciles de usar para la mayoría de
los muchos solucionadores soportados, numerosas validaciones que permiten las desarrolladoras, así que la tarea de
tanto de código abierto como comerciales. comprender mejor aspectos sobre el capturar y presentar métricas queda para
Hemos usado con éxito OR-Tools en cumplimiento de las normativas PCI DSS otros equipos, incluso tiempo después
muchos proyectos de optimización con y GDPR. de que las funcionalidades han sido
programación de enteros y de enteros entregadas a los usuarios finales. Nuestros
mixta. equipos encontraron que Redash es muy
Pyright útil para consultar métricas del producto
Adoptar y para crear paneles y tableros, en formas
Playwright que pueden ser autogestionadas por la
Adoptar Aunque duck typing es visto como mayoría de las desarrolladoras, acortando
una ventaja por muchas personas los ciclos de retroalimentación y enfocando
Con Playwright es posible escribir pruebas programadoras de Python, algunas veces, al equipo en los resultados del negocio.
de interfaz de usuario web para Chromium, especialmente en grandes repositorios de
Firefox y Webkit, todas a través de la código, la verificación de tipado también
misma API. Esta herramienta ha obtenido puede ser útil. Por esa razón, algunas Terratest
notoriedad gracias a su compatibilidad con anotaciones de tipos han sido incluidas Adoptar
los principales motores de navegación, que en las Propuestas de Mejora de Python
consigue por incluir versiones adaptadas (Python Enhancement Proposals, PEP) Terratest nos llamó la atención en el
de Firefox y Webkit. Seguimos recibiendo y Pyright es un verificador para dichas pasado como una opción interesante para
informes de experiencias positivas, sobre anotaciones. Además, proporciona algun pruebas de infraestructura. Desde entonces,
todo en cuanto a su estabilidad. Además, nivel de inferencia de tipos y protecciones nuestros equipos lo han utilizado y están
algunos equipos han podido migrar que son capaces de entender código muy entusiasmados por su estabilidad y la
fácilmente de Puppeteer, que presenta una con estructuras condicionales. Diseñado experiencia que proporciona. Terratest es
API muy similar. pensando en grandes repositorios una biblioteca de Golang que hace más fácil
de código, Pyright es rápido y sus escribir pruebas automáticas para el código
verificaciones en modo observador de infraestructura. Utilizando herramientas

26 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Herramientas Why Did You Render
de infraestructura como código, como algunos de los elementos más antiguos
Terraform, es posible crear componentes Adoptar y más usados de nuestro kit. Cubren
de infraestructura reales (como servidores, toda la gama, desde simples servicios
firewalls o balanceadores de carga) para Al trabajar con React, a menudo nos alojados en la nube hasta complejos
desplegar aplicaciones en ellos y después encontramos con situaciones en las cuales servidores de pipelines definidos
imgcook es un producto validar el comportamiento esperado una página se ralentiza debido a que por código soportados por flotas de
SaaS de Alibaba que permite utilizando Terratest. Al finalizar las pruebas, ciertos componentes se están volviendo agentes de compilación. Dada nuestra
transformar varios archivos de Terratest puede retirar las aplicaciones y a renderizar cuando no deberían. Why experiencia y la amplia gama de opciones
diseño (Sketch, PSD, imágenes limpiar los recursos. Esto lo hace muy útil Did You Render es una libería que ayuda disponibles, inicialmente estábamos
estáticas) a código front-end de para pruebas de infraestructura de extremo a detectar por qué un componente se escépticos cuando GitHub Actions fue
a extremo en un entorno real. está volviendo a renderizar; lo consigue al presentado como otro mecanismo para
manera inteligente.
modificar el comportamiento del código administrar los procesos de compilación
en tiempo de ejecución mediante monkey e integración. Pero la oportunidad para
(imgcook)
Tuple patching React. Nosotros lo hemos utilizado que las desarrolladoras comiencen con
Adoptar con gran efectividad en algunos de nuestros algo pequeño y personalicen fácilmente
proyectos para investigar problemas de el comportamiento significa que GitHub
Tuple es una herramienta relativamente rendimiento. Actions se está volviendo la opción
nueva optimizada para la programación en predeterminada para los proyectos
pareja en remoto, diseñada para llenar el más pequeños. Es difícil discutir la
vacío que dejó Slack en el mercado después Buildah y Podman conveniencia de tener la herramienta
de abandonar a Screenhero. Aunque Evaluar de compilación integrada directamente
todavía presenta algunos problemas por su en el repositorio de código fuente. Ha
crecimiento (por ejemplo, su disponibilidad A pesar de que Docker se ha convertido en surgido una comunidad entusiasta en
está limitada a macOS por ahora, con una elección razonable predeterminada torno a esta función y eso significa que
el soporte para Linux próximamente, y para contenerización, vemos que existe una amplia gama de herramientas
tiene algunas anomalías por resolver en hay nuevos actores en este espacio y flujos de trabajo aportados por los
su interfaz de usuario), hemos tenido llamando la atención. Ese es el caso de usuarios para comenzar. Los proveedores
una buena experiencia usándola dentro Buildah y Podman, que son proyectos de herramientas también se están
de esas restricciones. A diferencia de las complementarios para construir imágenes incorporando a través del GitHub
herramientas de videoconferencia de (Buildah) y correr contenedores (Podman) Marketplace. Sin embargo, recomendamos
propósito más general con capacidades sin privilegios de usuario root en multiples proceder con cautela. Aunque el código
para compartir pantallas, como Zoom, distribuciones de Linux. Podman presenta y el historial de Git se pueden exportar
Tuple permite el control dual mediante un motor sin procesos demonios para a servicios alternos, no se puede hacer
dos cursores de ratón y, a diferencia de manejar y correr los contenedores, lo que es lo mismo con un flujo de trabajo de
opciones como Visual Studio Live Share, una propuesta interesante en comparación desarrollo basado en GitHub Actions.
no está vinculado a un IDE. Tuple admite a lo que hace Docker. El hecho de que Además, es necesario usar el mejor
llamadas de voz y video, uso compartido Podman puede usar ya sea imágenes criterio para determinar cuándo un
de portapapeles y menor latencia que las de tipo Open Container Initiative (OCI) proyecto es lo suficientemente grande
herramientas comunes. La capacidad de construidas por Buildah o imágenes Docker, o complejo como para justificar una
Tuple para permitir dibujar y borrar con hacen de esta herramienta atractiva y fácil herramienta de pipelines con soporte
facilidad en la pantalla de la pareja hace de usar. independiente. Sin embargo, para
sea una herramienta muy intuitiva y de fácil comenzar a trabajar rápidamente en
manejo para las personas desarrolladoras. proyectos más pequeños, vale la pena
considerar GitHub Actions y el ecosistema
GitHub Actions
que está creciendo a su alrededor.
Evaluar

Los servidores de integración contínua


(CI) y las herramientas de compilación son

TECHNOLOGY RADAR | 27
© ThoughtWorks, Inc. All Rights Reserved.
Imagen nativa de Graal
Herramientas
y servicios en un solo lugar y en una procesamiento de imágenes se realiza en el
Evaluar combinación de nube y recursos locales si lado del servidor y la interfaz principal está
es necesario. La administración de claves en la web, imgcook provee herramientas
La Imagen Nativa de Graal es una tecnología se puede realizar integrando cualquier que se pueden integrar en el ciclo de diseño
que compila código Java en un binario servicio de administración de claves, y desarrollo, además, puede generar código
nativo de un sistema operativo, en la forma ya sea de un proveedor en la nube o estático y también código de enlace a Recommender es un servicio
de un ejecutable enlazado estáticamente o algo como HashiCorp Vault. HashiCorp datos si se define un DSL. Esta tecnología de Google Cloud que analiza
de una biblioteca compartida. Una imagen Boundary admite un número creciente no es perfecta aún, las diseñadoras deben los recursos que usas y ofrece
nativa está optimizada para reducir la de proveedores de identidad que pueden sujetarse a ciertas especificaciones para recomendaciones de cómo
huella de memoria y el tiempo de inicio integrarse con partes de su entorno mejorar la precisión de la generación del optimizarlos en base al uso
de una aplicación. Nuestros equipos han de servicios para ayudar a definir los código (que de todas maneras deberá ser
actual.
usado con éxito las imágenes nativas de permisos, no solo en el host sino también ajustado por las desarrolladoras después).
Graal, ejecutándolas como pequeños a nivel de servicio. Por ejemplo, permite Siempre hemos sido cautelosos con la
controlar el acceso detallado a un clúster generación “mágica” de código, porque (Recommender)
contenedores Docker, en la arquitectura
sin servidor (serverless architecture) donde de Kubernetes y la obtención de catálogos generalmente suele ser un código difícil
reducir el tiempo de inicio es importante. de servicios de forma dinámica de diversas de mantener a largo plazo e imgcook no
Aunque se diseñó para utilizarse con fuentes es algo que está en el radar. es la excepción. Pero si se limita su uso a
lenguajes de programación como Go o Rust Todo esto queda fuera del camino de los un contexto específico, como páginas de
que se compilan nativamente y requieren de usuarios finales de ingeniería que obtienen campañas de un solo uso, vale la pena
tamaños pequeños de binarios y de tiempos la experiencia de línea de comandos a la probarlo.
de inicio cortos, la imagen nativa de Graal que están acostumbrados, conectados
puede ser igualmente útil para equipos que de forma segura a través de la capa de
tienen otros requerimientos y que quieren administración de red del Boundary. Longhorn
usar lenguajes basados en la JVM. Evaluar
El generador de imágenes nativas de Graal,
native-image, soporta lenguajes basados en imgcook Longhorn es un sistema distribuido
la JVM, como Java, Scala, Clojure y Kotlin, y Evaluar de almacenamiento en bloques para
genera ejecutables para múltiples sistemas Kubernetes. Hay muchas opciones para
operativos como macOS, Windows y varias ¿Recuerdan el proyecto pix2code el almacenamiento persistente para
distribuciones de Linux. Ya que se trabaja en que mostraba cómo generar código Kubernetes, pero a diferencia de la mayoría,
un “mundo” que se asume “cerrado”, donde automáticamente a partir de las capturas Longhorn está construido desde cero para
todo el código se conoce en tiempo de de pantallas de una interfaz gráfica? Ahora proveer instantáneas y copias de seguridad
compilación, se necesitan configuraciones existe una versión en forma de producto de incrementales, reduciendo las molestias
adicionales para que características como esta técnica llamada imgcook, un producto de poner en marcha un almacenamiento
la reflexión o la carga dinámica de clases SaaS de Alibaba que permite transformar replicado para instancias de Kubernetes
funcionen, ya que no se pueden deducir los archivos de diseño (Sketch, PSD, imágenes que no están alojadas en la nube. Con
tipos en tiempo de compilación a partir del estáticas) a código front-end de manera el reciente soporte experimental para
código mismo. inteligente. Alibaba necesita personalizar ReadWriteMany (RWX) incluso se puede
muchas páginas de campañas durante montar un mismo volumen para lectura y
su festival de compras llamado 11:11. para escritura a través de distintos nodos.
HashiCorp Boundary Generalmente, son pantallas de un solo uso Escoger el sistema de almacenamiento
Evaluar que deben ser construidas rápidamente. correcto para Kubernetes no es tarea fácil
A través de un método de aprendizaje y recomendamos evaluar Longhorn en
HashiCorp Boundary combines the profundo, el diseño de la experiencia de función de tus necesidades.
secure HashiCorp Boundary combina usuario es primero procesado a código
las capacidades de gestión de identidad front-end y luego es ajustado por alguna
y redes seguras necesarias para la desarrolladora. Nuestro equipo está
intermediación del acceso a sus hosts evaluando esta tecnología: aunque el

28 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Herramientas Operator Framework menor privilegio señalando los permisos es Spectral, un linter para YAML y JSON.
Evaluar que nunca se han usado y que son Aunque Spectral es una herramienta
potencialmente muy amplios. genérica para estos formatos, su principal
Operator Framework es un conjunto objetivo es OpenAPI (la evolución de
de herramientas de código abierto que Swagger) y AsyncAPI. Spectral viene con
Zally es un linter minimalista simplifica la construcción y la administración Remote - WSL un conjunto completo de reglas listas
de OpenAPI que ayuda a del ciclo de vida de Kubernetes operators. Evaluar para usar para estas especificaciones
garantizar que una API se El patrón operador de Kubernetes, que pueden ahorrarle dolores de
ajuste a la guía de estilo originalmente introducido por CoreOS, es En los últimos años, el Windows Subsystem cabeza a las personas desarrolladoras
utilizada por el equipo. un enfoque para encapsular el conocimiento for Linux (WSL) ha sido mencionado al diseñar e implementar APIs o
de operar una aplicación utilizando las algunas veces en nuestras discusiones. colaboración basada en eventos. Estas
capacidades nativas de Kubernetes; incluye Aunque nos gustó lo que vimos, incluyendo reglas verifican las especificaciones
(Zally)
resources para gestionar y controller code las mejoras que introdujo WSL 2, no ha adecuadas de los parámetros de la API
que garantiza que los recursos coincidan logrado entrar en el Radar. En esta edición o la existencia de una declaración de
con el estado esperado. Este enfoque ha queremos destacar una extensión para licencia en la especificación, entre otras
sido usado para ampliar Kubernetes y Visual Studio Code que ha mejorado en cosas. Si bien esta herramienta es una
administrar varias aplicaciones de forma gran medida la experiencia de trabajo adición bienvenida al flujo de trabajo de
nativa, particularmente, las que manejan con WSL. Si bien los editores basados desarrollo de APIs, plantea la pregunta
estado . Operator Framework cuenta con tres en Windows siempre podían acceder a de si una especificación no ejecutable
componentes: Operator SDK, que simplifica los archivos del sistema de archivos de debe ser tan compleja como para requerir
la construcción, pruebas y empaquetamiento WSL, no sabían de la existencia de este una técnica de verificación de errores
de operadores Kubernetes; Operator entorno Linux aislado. Con la extensión diseñada para lenguajes de programación.
lifecycle manager para instalar, administrar y Remote - WSL, Visual Studio Code se ¿Quizás las personas desarrolladoras
actualizar los operadores; y un catalog para vuelve consciente de WSL, permitiendo deberían escribir código en lugar de
publicar y compartir operadores de terceros. a las personas desarrolladoras ejecutar especificaciones?
Nuestros equipos han descubierto que un shell de Linux. Esta extensión también
Operator SDK es particularmente poderoso permite depurar binarios que se ejecutan
para desarrollar rápidamente aplicaciones dentro de WSL desde Windows. IntelliJ, de Yelp detect-secrets
nativas de Kubernetes. JetBrains, también ha trabajado en mejorar Evaluar
notablemente su soporte para WSL.
Yelp detect-secrets es un módulo de Python
Recommender para detectar secretos dentro de una base
Evaluar Spectral de código fuente: analiza los archivos
Evaluar dentro de un directorio en búsqueda de
El número de servicios ofrecidos por los secretos. Se puede utilizar con Git mediante
proveedores grandes de la nube continúa Uno de los patrones que hemos visto un hook de pre-commit o como parte
creciendo, y también lo hace la conveniencia repetirse en esta publicación es que las de un pipeline de CI/CD para realizar un
y la madurez de las herramientas que herramientas estáticas de comprobación escaneo en múltiples ubicaciones. Viene
ayudan a usarlos de manera segura y de errores y estilo surgen rápidamente con una configuración predeterminada
eficiente. Recommender es un servicio después de que un nuevo lenguaje gana que simplifica su uso, y también puede
de Google Cloud que analiza los recursos popularidad. Estas herramientas se ser modificada para adaptarse a diversas
que usas y ofrece recomendaciones conocen genéricamente como linters, en necesidades. También se pueden
de cómo optimizarlos en base al uso honor a la clásica y querida utilidad lint instalar complementos personalizados
actual. El servicio consiste de una serie de Unix, que analiza estáticamente el y añadirlos a sus búsquedas heurísticas
de “recomendadores” en áreas como código C. Nos gustan estas herramientas predeterminadas. En comparación con
seguridad, uso de cómputo o ahorro de porque detectan errores tempranamente, ofertas similares, descubrimos que esta
costos. Por ejemplo, el IAM Recommender incluso antes de que se compile el código. herramienta detecta más tipos de secretos
ayuda a implementar mejor el principio de La instancia más nueva de este patrón con sus configuraciones predeterminadas.

TECHNOLOGY RADAR | 29
© ThoughtWorks, Inc. All Rights Reserved.
Zally AWS CodePipeline
Evaluar Resisitir

A medida que madura el ecosistema para En base a la experiencia de múltiples


la especificación de APIs, estamos viendo equipos de ThoughtWorks, sugerimos
que aparecen más herramientas para tener cuidado al considerar el uso de AWS
automatizar la validación de estilos. Zally CodePipeline. Específicamente, hemos
es un linter minimalista para OpenAPI que notado que una vez que los equipos
ayuda a garantizar que un API se ajusta a evolucionan y necesitan pipelines algo
la guía de estilo utilizada por el equipo. De más complejos, esta herramienta puede
manera predeterminada, esta herramienta empezar a ser difícil de usar. A pesar de
validará usando las reglas desarrolladas que su uso podría parecer como una
para la guía de estilos de Zalando, pero victoria rápida al comenzar con AWS, les
también soporta un mecanismo de aconsejamos dar un paso atrás y revisar
extensión basado en Kotlin para la creación con detenimiento si AWS CodePipeline
de reglas personalizadas. Zally incluye una ayudará a solventar algunas necesidades
interfaz de usuario web muy intuitiva para que podrían aparecer a largo plazo, como
comprender las violaciones a las reglas de por ejemplo, flujos con tareas paralelas
estilos e incluye una interfaz de línea de (pipeline fan-out & fan-in) o escenarios más
comando (CLI) que hace fácil su integración complejos de despliegues y de ejecución de
a los pipelines de CD. pruebas, que hacen uso de dependencias y
activadores (triggers) no triviales..

30 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
TECHNOLOGY RADAR

Lenguajes &
Frameworks
5 63
62
9 4
18 64 78
27 3
7 8 66
52 65 79
17 6 2 1 67

Lenguajes &
Adoptar
Resistir Evaluar Probar Adoptar Adoptar Probar Evaluar Resistir
81. Combine
82. LeakCanary

Frameworks
94
40 34 93
104 Probar
82
81 92 83. Angular Testing Library
41 84. AWS Data Wrangler
103
35 85. Blazor
88 90 91
36 86. FastAPI
42 87 87. io-ts
102
Combine 86 89 88. Kotlin Flow
43 101
Adoptar 89. LitElement
50 38 85
90. Next.js
Hace bastante tiempo posicionamos 37
44 83 91. Módulos bajo demanda
a ReactiveX, una familia de marcos 92. Streamlit
45 84
de trabajo de código abierto para la 39 100 93. SWR
programación reactiva, dentro del 94. TrustKit
99
anillo “Adoptar” del Radar. En 2017 46 98
mencionamos la adición de RxSwift, 48 97 Evaluar
47 96
que trajo la programación reactiva al 95. .NET 5
desarrollo para iOS utilizando Swift. Desde 49 96. bUnit
95
entonces, Apple ha introducido su propia 97. Dagster
51
solución de programación reactiva en la 98. Flutter for Web
forma del marco de trabajo Combine. Este 99. Jotai and Zustand
se ha convertido en nuestra elección por 100. Kotlin Multiplatform Mobile
defecto para aplicaciones que soportan 101. LVGL
iOS 13 como entorno de despliegue. Es 102. React Hook Form
más fácil de aprender que RxSwift y se 103. River
integra muy bien con SwiftUI. Si se está 104. Federación de Módulos de
planificando convertir una aplicación Webpack 5
existente con RxSwift a Combine o
hacerlos coexistir, se debería evaluar a de “memoria insuficiente” en Testing Library trae todos los beneficios Resistir
RxCombine. múltiples dispositivos. Es por esto que de su familia cuando se prueban
recomendamos añadirla en el juego componentes de interfaz de usuario
de herramientas. de una manera centrada en el usuario,
LeakCanary en favor de pruebas más fáciles de
Adoptar mantener enfocadas principalmente en
Angular Testing Library el comportamiento, en vez de probar los
Nuestros equipos de desarrollo móvil ven Probar detalles de implementación de la interfaz
que LeakCanary es una buena elección de usuario. Aunque su documentación
predeterminada para el desarrollo Como estamos permanentemente es limitada, Angular Testing Library
en Android. Esta utilidad detecta las desarrollando aplicaciones web en proporciona buenas pruebas de muestra
molestas fugas de memoria en Android, JavaScript, seguimos apreciando que nos ayudaron a comenzar más
es extremadamente simple de integrar el enfoque de Testing Library para rápido en varias ocasiones. Hemos tenido
y proporciona notificaciones con trazas probar aplicaciones; continuamos un gran éxito con esta biblioteca en
claras hacia las causas de las fugas. explorando y ganando experiencia nuestros proyectos Angular y aconsejamos
LeakCanary puede ahorrar horas de con sus paquetes, más allá de experimentar con este sólido enfoque de
trabajo tedioso para solucionar problemas React Testing Library. Angular pruebas.

32 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Lenguajes & AWS Data Wrangler
Probar
FastAPI
Probar
Kotlin Flow
Probar
Frameworks AWS Data Wrangler es una biblioteca de Estamos viendo que más equipos adoptan La introducción de las co-rutinas de Kotlin
código abierto que amplía las capacidades Python como el lenguaje de preferencia abrió la puerta a varias innovaciones;
de Pandas a AWS al conectar marcos para el desarrollo de soluciones, no sólo Kotlin Flow es una de ellas, directamente
de datos a los servicios de datos de para ciencia de datos, sino de servicios integrada en la biblioteca de co-rutinas. Es
FastAPI un framework AWS. Además de Pandas, esta biblioteca de back-end también. En estos casos, una implementación de Reactive Streams
web moderno, rápido aprovecha las capacidades de Apache estamos teniendo buenas experiencias basada en co-rutinas. A diferencia de RxJava,
Arrow y Boto3 para exponer varias APIs con FastAPI, un marco de trabajo web los flujos son un API nativa de Kotlin, similar
(alto rendimiento) para la para cargar, transformar y guardar datos moderno y rápido (de alto rendimiento) a la familiar API de secuencias con métodos
construcción de APIs con provenientes de lagos y almacenes de para la construcción de APIs con Python que incluyen map y filter. De manera similar
Python 3.6 o mayor. datos. Una limitación importante de esta 3.6 o superior. Además, este marco a las secuencias, los flujos son “fríos”, lo que
biblioteca es que no permite realizar de trabajo y su ecosistema incluyen significa que los valores de las secuencias
(FastAPI) pipelines distribuidos para grandes funcionalidades como la documentación se construyen únicamente cuando se
volúmenes de datos. Sin embargo, es capaz del API a través de OpenAPI, que permite necesitan. Todo esto hace que el código con
de aprovechar servicios de datos nativos, que los equipos puedan centrar su múltiples hilos de ejecución sea más fácil de
como Athena, Redshift y Timestream, para atención en las funcionalidades de escribir y entender que con otros enfoques.
hacer el trabajo pesado y extraer datos y negocio y crear APIs REST rápidamente. El método toList convierte un flujo en una
así expresar transformaciones complejas Esto convierte a FastAPI en una buena lista de forma predecible, lo cual es un
que se adapten bien a los marcos de alternativa frente a las soluciones ya patrón recurrente en las pruebas.
datos. Hemos utilizado AWS Data Wrangler existentes.
en producción y como tal, permite
concentrarse en escribir transformaciones LitElement
sin perder demasiado tiempo en la io-ts Probar
conectividad a los servicios de datos de Probar
AWS. Se ha producido un progreso constante
Hemos disfrutado mucho de usar desde que escribimos por primera
TypeScript desde hace ya un buen tiempo vez sobre Web Components en 2014.
Blazor y nos encanta la seguridad que el tipado LitElement, parte del Proyecto Polymer,
Probar fuerte proprociona. Sin embargo, introducir es una biblioteca simple que se puede
datos dentro de los límites del sistema de usar para crear componentes web ligeros.
A pesar de que JavaScript y su ecosistema tipos (por ejemplo, a partir de la respuesta Realmente es solo una clase base que
dominan el espacio de desarrollo de de una llamada a un servicio de back- elimina la necesidad de un montón de
interfaces de usuario para la web, están end) puede provocar errores en tiempo código repetitivo, haciendo que escribir
surgiendo nuevas oportunidades tras de ejecución. Una biblioteca que ayuda componentes web sea mucho más
la aparición de WebAssembly. Blazor a resolver este problemas es io-ts: cierra fácil. Hemos tenido éxito con el uso de
continúa llamando nuestra atención. Está la brecha entre la revisión de tipos en LitElement en proyectos y la estamos
produciendo buenos resultados para tiempo de compilación y el consumo de usando con más frecuencia en nuestros
aquellos equipos que construyen interfaces datos externos en tiempo de ejecución, proyectos basados en Web Components,
de usuario sofisticadas en C# con proporcionando funciones de codificación ya que vemos que la tecnología sigue
WebAssembly. El hecho de que nuestros y decodificación. También se puede usar madurando y la biblioteca está siendo bien
equipos también puedan utilizar C# en el como un verificador personalizado del apreciada.
front-end les permite compartir el código y tipado. A medida que adquirimos más
reutilizar bibliotecas existentes. Eso, junto a experiencia con io-ts en nuestro trabajo,
las herramientas actuales para depuración nuestras impresiones iniciales positivas
y la ejecución de pruebas, como bUnit, se confirman y nos sigue gustando la
hacen que esta tecnología de código elegancia de su enfoque.
abierto merezca ser probada.

TECHNOLOGY RADAR | 33
© ThoughtWorks, Inc. All Rights Reserved.
Next.js
Probar
Streamlit
Probar
TrustKit
Probar Lenguajes &
Pudimos obtener un poco más de Streamlit es un marco de trabajo de código La asignación de claves SSH públicas es un
Frameworks
experiencia usando Next.js para bases abierto para Python usado por científicas tema delicado. Si para una aplicación se
de código React desde la última vez que de datos para construir aplicaciones selecciona una política incorrecta o si no
escribimos sobre él. Next.js es un marco de interactivas de datos. La personalización se dispone de una asignación de reserva,
trabajo de configuración cero que incluye de los modelos de aprendizaje automático esta podría dejar de funcionar de forma Streamlit es un marco de
enrutamiento simplificado, compilación requiere de tiempo; en vez de tener que inesperada. Estos son los escenarios trabajo de código abierto
automática y empaquetado con Webpack lidiar con la aplicación principal (la que usa donde TrustKit es útil. Este es un marco
para Python usado por
y Babel, recarga en caliente rápida para los modelos), hemos visto que es valioso de trabajo de código abierto que facilita
conseguir un flujo de trabajo de desarrollo crear rápidamente prototipos autónomos la asignación de claves SSH públicas para
científicos de datos para
conveniente, entre otras características. en Streamlit y obtener retroalimentación aplicaciones iOS. También existe un marco construir aplicaciones
Proporciona renderizado del lado del durante los ciclos de experimentación. de trabajo equivalente para Android. interactivas de datos.
servidor de forma predeterminada, mejora Streamlit se destaca de competidores como Elegir la estrategia de asignación idónea
las optimizaciones para motores de Dash por su foco en el prototipado rápido es cuestión de matices, y en esta guía (Streamlit)
búsqueda y los tiempos de carga inicial y y por el soporte a una amplia variedad de de primeros pasos es posible encontrar
soporta la generación estática incremental. bibliotecas de visualización, como Plotly más información al respecto. En cuanto
Hemos tenido informes de experiencias y Bokeh. Lo estamos usando en algunos a nuestra experiencia, podemos decir
positivas de los equipos que utilizan Next. proyectos y nos gusta cómo podemos crear que hemos utilizado TrustKit en varios
js y, dada su gran comunidad, seguimos visualizaciones interactivas con muy poco proyectos de producción con éxito.
entusiasmados con la evolución de este esfuerzo.
marco de trabajo.
.NET 5
SWR Evaluar
Módulos bajo demanda Probar
Probar Nos acostumbramos a presentar cada
Nuestros equipos han descubierto que la nueva versión de .NET en el Radar, pero
Los módulos bajo demanda para Android biblioteca SWR para React Hooks permite .NET 5 representa un paso significativo
son un marco de trabajo que permite, obtener un código más limpio y con para unir .NET Core y .NET Framework en
en apps debidamente estructuradas, mejor desempeño cuando se la utiliza en una sola plataforma. Las organizaciones
descargar e instalar APKs personalizados circunstancias apropiadas. SWR implementa deben empezar a desarrollar una
que contienen solo las funcionalidades la estrategia para el almacenamiento de estrategia de migración de sus ambientes
requeridas. Podría ser buena idea evaluar datos en caché de HTTP denominada stale- de desarrollo (una combinación
esta estrategia para apps muy grandes, while-revalidate, primero retornando datos fragmentada de marcos de trabajo
donde la velocidad de descarga puede desde la caché (obsoletos), luego enviando dependiendo del objetivo de despliegue)
ser un problema, o si es probable que el la petición para obtener nueva información a una sola versión de .NET 5 (o 6, cuando
usuario solo requiera usar partes específicas (revalidar) y finalmente refrescando los esté disponible). La ventaja de este
de la funcionalidad en la instalación inicial. valores a partir de la respuesta recibida. enfoque será la de tener una plataforma
También puede ayudar a simplificar el Advertimos a los equipos a solo usar de desarrollo común sin importar el
soporte de múltiples dispositivos sin la estrategia de almacenamiento en ambiente deseado: Windows, Linux,
necesidad de diferentes APKs. Un marco de caché SWR cuando se espera que una dispositivos móviles multiplataforma
trabajo similar también existe para iOS. aplicación devuelva datos obsoletos. (vía Xamarin) o navegadores (utilizando
Además, nótese que HTTP requiere que Blazor). Si bien el desarrollo políglota se
los cachés respondan a una petición con la mantendrá como el enfoque preferido en
respuesta más actualizada, y que solamente compañías que cuenten con una cultura
en circunstancias cuidadosamente de ingeniería que pueda soportarlo, otras
consideradas se permite devolver encontrarán más eficiente estandarizarse
respuestas obsoletas.

34 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Lenguajes & en una sola plataforma para el desarrollo
en .NET. Por ahora, queremos mantenerlo
Flutter for Web
Evaluar
para React. Su objetivo es ser pequeñas y
fáciles de usar; y (tal vez por casualidad)

Frameworks en el anillo “Evaluar” para ver qué tan


bien el marco de trabajo unificado final se Hasta ahora, Flutter ha brindado
sus nombres son las traducciones de la
palabra “estado” en japonés y alemán
desempeña en .NET 6. principalmente soporte para construir respectivamente. Mas allá de estas
aplicaciones nativas en iOS y Android. Sin similitudes, hay diferencias en su diseño: el
embargo, la visión del equipo de Flutter es de Jotai se acerca más a Recoil, por cuanto el
Estas bibliotecas de manejo bUnit soportar la construcción de aplicaciones estado consiste de átomos que se almacenan
de estado para React Evaluar en todas las plataformas. Flutter para la dentro del árbol de componentes de React,
Web es un paso en esa dirección: permite mientras que Zustand almacena el estado
apuntan a ser pequeñas
bUnit es una biblioteca para Blazor construir aplicaciones para iOS, Android y fuera de React en un solo objeto de estado,
y fáciles de usar. Tal vez, muy parecido a como lo hace Redux. Los
que facilita la creación de pruebas para navegadores utilizando la misma base de
casi por coincidencia, componentes Blazor en los marcos de código. Ha estado disponible por alrededor autores de Jotai proveen una lista muy útil
ambos nombres son trabajo existentes de pruebas unitarias de un año en el canal “Beta” y recientemente para decidir cuándo usar cuál
traducciones de la palabra como NUnit, xUnit o MSTest. Proporciona ha alcanzado su forma estable con el
estado a Japonés y Alemán una fachada alrededor del componente lanzamiendo de Flutter 2.0. En esta versión
respectivamente. que permite ejecutarlo y probarlo del soporte para la web, el equipo de Kotlin Multiplatform Mobile
siguiendo el paradigma familiar de Flutter se ha enfocado en las aplicaciones Evaluar
(Jotai y Zustand) pruebas unitarias: esto permite obtener web progresivas, aplicaciones de página
retroalimentación muy rápidamente y única (single page apps) y en expandir las Siguiendo la tendencia del desarrollo
además probar los componentes de forma aplicaciones móviles ya existentes hacia la multiplataforma para móviles, Kotlin
aislada. Si desarrollas utilizando Blazor, web. La aplicación y el código del marco de Multiplatform Mobile (KMM) es una nueva
recomendamos agregar bUnit a tu juego de trabajo (que se escriben ambos en Dart) entrada en este espacio. KMM es un SDK
herramientas. son compilados a JavaScript, en vez de a proporcionado por JetBrains que potencia
código de maquina ARM, que es utilizado las capacidades multiplataforma de Kotlin
en las aplicaciones móviles. El motor y que incluye herramientas y características
Dagster web de Flutter permite elegir entre dos diseñadas para hacer que la experiencia
Evaluar renderizadores: HTML (que utiliza HTML, completa de construcción de aplicaciones
CSS, Canvas y SVG) y CanvasKit (que usa multiplataforma para dispositivos móviles
Dagster es un marco de trabajo de código WebAssembly y WebGL para renderizar sea más agradable y eficiente. Con KMM
abierto para la orquestación de datos comandos “paint” de Skia al canvas del escribes por una sola vez el código de la
para aprendizaje automático, analíticas navegador). Algunos de nuestros equipos lógica del negocio y de la aplicación base y
y pipelines de datos simples de tipo ETL. han empezado a usar Flutter para la Web y puedes compartirlo con aplicaciones Android
A diferencia de otros marcos de trabajo gustan de los resultados iniciales. e iOS. La escritura de código específico para
basados en tareas, Dagster tiene en cuenta una plataforma queda solo para cuando es
a los datos que fluyen por el pipeline y estrictamente necesario (por ejemplo, para
puede proporcionar seguridad de tipos. Jotai y Zustand aprovechar elementos nativos de la interfaz de
Con la vista unificada de pipelines y activos Evaluar usuario) y el código específico se mantiene en
producidos, Dagster puede programar y vistas diferentes para cada plataforma. Aunque
orquestar a Pandas, Spark, SQL, o cualquier En la edición anterior del Radar, está aún en estado Alpha, Kotlin Multiplatform
otra cosa que Python pueda invocar. comentamos sobre el inicio de una etapa de Mobile está evolucionando rápidamente.
Dagster es relativamente nuevo por lo que experimentación con el manejo de estado Por supuesto, no lo perderemos de vista y
recomendamos evaluar sus capacidades en aplicaciones React. Movimos a Redux esperamos que tu tampoco lo hagas.
para tus pipelines de datos. de vuelta al anillo “Probar”, indicamos que
ya no es nuestra elección por defecto,
y mencionamos a Recoil, de Facebook.
Ahora queremos destacar a Jotai y Zustand,
otras bibliotecas para el manejo de estado

TECHNOLOGY RADAR | 35
© ThoughtWorks, Inc. All Rights Reserved.
LVGL
Evaluar
como un componente de primera clase:
el marco de trabajo registra y monitorea
característica introduce una forma más
estandarizada de optimizar la carga y la Lenguajes &
Con la creciente popularidad de las casas
los elementos del formulario como
componentes no controlados mediante
administración de las dependencias de
los módulos y el código compartido. La Frameworks
inteligentes y dispositivos para llevar un hook, reduciendo significativamente la federación de módulos permite especificar
puesto (wearable devices), la demanda necesidad de volver a renderizar. También aquellos que son compartidos, lo que ayuda
de interfaces de usuario intuitivas está es bastante ligero en tamaño y en la a eliminar dependencias duplicadas entre
aumentando. Sin embargo, para quien cantidad de código de relleno requerida múltiples micro-frontends al cargar una sola Los modelos de
está involucrado en el desarrollo de para utilizarlo. vez el código utilizado por varios módulos.
aprendizaje necesitan
dispositivos integrados, en lugar de También permite distinguir entre módulos
locales y remotos: los remotos se cargan
ser modificados a
Android o iOS, el desarrollo de interfaces
de usuario puede requerir de mucho River de forma asíncrona y no son parte del medida que se hacen
esfuerzo. Como una biblioteca de gráficos Evaluar resultado compilado en sí. A diferencia de disponibles nuevos
integrados de código abierto, LVGL se ha las dependencias de tiempo de compilación datos. El aprendizaje
vuelto cada vez más popular. LVGL se ha La creación de modelos a partir de un (como los paquetes npm) esto puede incremental hace posible
adaptado a las plataformas integradas conjunto de datos de entrenamiento simplificar significativamente el despliegue aprender de flujos de datos
convencionales como NXP, STM32, PIC, se encuentra en el corazón de muchos de una actualización de un módulo con
incrementalmente para
Arduino y ESP32. Requiere de muy poca métodos de aprendizaje automático. Una varias dependencias. Hay que tener en
cuenta que esto requiere empacar todos
reaccionar más rápido
memoria para operar: 64 kB de memoria vez que el modelo ha sido creado, se puede
flash y 8 kB de RAM son suficientes y se utilizar muchas veces. Sin embargo, el los micro-frontends con Webpack, en vez ante los cambios. En
puede ejecutar sin problemas en varios mundo no es estacionario y con frecuencia de aplicar técnicas como los import maps, nuestras implementaciones
MCUs de tipo Cortex-M0 de bajo consumo. los modelos necesitan ser modificados a que podrían llegar a convertirse en parte del hemos tenido buenas
LVGL soporta medios de entrada como la medida que se hacen disponibles nuevos estándar W3C. experiencias con el marco
pantalla táctil, ratón y botones, y contiene datos. Solamente volver a ejecutar el paso de trabajo denominado
más de 30 controles, incluido TileView, de creación del modelo puede ser lento River, una librería
adecuado para relojes inteligentes. La y costoso. El aprendizaje incremental
basada en Python para
licencia MIT seleccionada no restringe su soluciona este problema, haciendo
uso empresarial o comercial. Las opiniones posible aprender de flujos de datos
aprendizaje automático en
de nuestros equipos respecto a esta incrementalmente para reaccionar más línea.
herramienta han sido positivas y uno de rápido ante los cambios. Como punto
nuestros proyectos que utiliza LVGL ya se adicional, los requerimientos tanto de (River)
encuentra en producción, específicamente, cómputo como de memoria son menores y
en la manufactura de lotes pequeños. predecibles. En nuestras implementaciones
hemos tenido buenas experiencias con
el marco de trabajo denominado River,
React Hook Form aunque hemos añadido verificaciones,
Evaluar a veces manuales, luego de actualizar el
modelo.
La creación de formularios para la web
continúa siendo uno de los desafíos
perpetuos del desarrollo de front-ends, en Federación de Módulos de
particular con React. Varios de nuestros Webpack 5
equipos han utilizado Formik para facilitar Evaluar
la creación de formularios, sin embargo,
algunos están ahora evaluando React Hook El lanzamiento de la funcionalidad para la
Form como una potencial alternativa. React federación de módulos de Webpack 5 ha
Hooks ya existía cuando React Hook Form sido muy esperado por las desarrolladoras
fue creado, por lo que se lo puede utlizar de arquitecturas micro-frontend. Esta

36 | TECHNOLOGY RADAR
© ThoughtWorks, Inc. All Rights Reserved.
Somos una consultora de software
¿Quieres estár al tanto con toda las
global y una comunidad de individuos
apasionados guiados por propósitos,
noticias e insights relacionados al Radar?
Síguenos en tu red social favorita o
8,000+ personas en 48 oficinas en 17
conviértete en un suscriptor/a.
países. A lo largo de nuestros más de
27+ años de historia, hemos ayudado a
nuestros clientes a resolver problemas
suscríbete ahora
comerciales complejos donde la
tecnología es el diferenciador. Cuando
la única constante es el cambio, te
preparamos para lo impredecible.

Coordinadoras de traducción: Magdalena Grondona, María José Lalama Paredes y Elizabeth Parra

Traductores: Abel Guillen, Aldemaro Díaz, Alejandro Batanero, Alexander López Lapo, Alexandra Granda,
Andrés Negrete, Araceli Correa, Bárbara Deluchi, Cecilia Barudi, Cintya Aguirre, Daniel Santibañez, Diego
Llerena, Eduard Maura i Puig, Eduardo Winpenny Tejedor, Fernanda Pérez, Francisco Trujillo, Giovanny
Sayas, Gonzalo Rodríguez, Inigo Crespo, Ivonne Burgos, Javier Paez, Jesús Cardenal Escribano, Johanna
Cabrera, Jorge Agudo, Juan Pablo Blanco, Kelly Landázuri, Lorena Campos, Magda Sbant, Manu Escudero,
Marcelo Cartgena, Marco Montilla, María Cordova, Marianela Ortiz, Milber Champutiz, Nicol Rafalowski,
Paola Cajilema, Paolo Arrata, Paula Marín, Pedro Grijalva, Raymi Salcedo, René Pérez, Reynier Pupo,
Ricardo Rodríguez, Rosa Palli, Rubén Trujillo, Sol Alonso y Zully Arellano.

Editores técnicos: Carlos Oquendo y Fausto De La Torre


thoughtworks.com/radar
#TWTechRadar

También podría gustarte