Una guía con opiniones sobre las tecnologías de vanguardia - Volumen 24 #TWTechRadar thoughtworks.com/radar

Página creada Raul Pérez
 
SEGUIR LEYENDO
Una guía con opiniones sobre las tecnologías de vanguardia - Volumen 24 #TWTechRadar thoughtworks.com/radar
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 reúnen regularmente
para discutir la estrategia tecnológica global de
Thoughtworks y las tendencias tecnológicas que
impactan significativamente en 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 conciso.

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 precaució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         encontrar 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 en 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
                                                                                                                                                                                                                          Probar                                                  86. FastAPI
                                                           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.
                                                                                                                                                                                              71    Sandboxes en la nube
                                                                                                                                                                                     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. 63Xcodeproj 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. 64Tipos 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 las       de soluciones de aprendizaje automático.     documento HTML que contiene a la anterior
variables que define la        Estas poderosas herramientas pueden          y dejamos que se expanda lentamente en
facilidad con la que los       proveer mucho valor, aunque tienen           funcionalidad. Los marcos de trabajo de         Xcodeproj administrado por
equipos pueden entregar        costos asociados. Existe el costo puro por   SPA ni siquiera necesitan ser los mismos,       herramientas
                                                                            siempre que los usuarios puedan tolerar
valor a sus clientes. Las      la ejecución de estos servicios, cobrado                                                     Probar
                               por el proveedor de la nube. Además, hay     el impacto causado al rendimiento por
autoras de las topologías                                                   el aumento del tamaño de la página (por         Muchas de nuestras personas que
                               una especie de impuesto a su operación.
de equipos desarrollaron                                                    ejemplo, al incrustar una nueva aplicación      desarrollan para iOS con Xcode a menudo
                               Estas herramientas complejas necesitan
una evaluación para            ser entendidas y operadas, y con cada        React dentro de una antigua en AngularJS).      sufren por culpa de los cambios en el
medir estas interacciones      nueva herramienta que se agrega a la         La inyección de SPA permite eliminar            archivo Xcodeproj cada vez que cambia
las cuales nosotros            arquitectura, esta carga impositiva se       iterativamente la aplicación antigua            el proyecto. El formato de este archivo
llamamos carga cognitiva       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
del equipo                     veces los equipos eligen herramientas
                               complejas porque menosprecian el poder       árbol estrangulador puede verse como            bastante complicado y puede conducir
                               de herramientas más sencillas como la        un tipo de parásito que usa la superficie       a una pérdida de productividad con el
(Carga cognitiva del equipo)                                                externa, estable, del árbol huésped para
                               regresión lineal. Muchos de los problemas                                                    riesgo de estropear el proyecto entero
                               de aprendizaje automático no necesitan       sostenerse hasta echar raíces, mientras el      (si algo malo pasa con el archivo, Xcode
                               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 estándar 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 dependíamos
                            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                         Aunque se podría argumentar que esta es        talento de ingeniería, al tiempo que limita
complejidad de contraseñas                     una forma de demostrar el “cumplimiento        la autonomía y la experimentación en los
Resistir                                       normativo” de la revisión de código, en uno    equipos. En vez de medir el esfuerzo y
                                               de nuestros clientes se dijo que esto era      focalizarse en ceremonias estandarizadas,
En la actualidad, las políticas de             inválido, ya que no había evidencia de que     recomendamos una aproximación y
contraseñas son un estándar por defecto        el código había sido leído por alguien antes   gobernanza más ligeras y enfocadas en la
para muchas organizaciones. Sin embargo,       de su aceptación. Los pull requests son solo   entrega de valor, para así ayudar a eliminar
seguimos viendo que hay organizaciones         una forma de administrar el flujo de trabajo   la fricción organizativa, como EDGE, y
que solicitan que las contraseñas incluyan     de revisión de código por lo que instamos a    evaluar la carga cognitiva de los equipos
una variedad de símbolos, números,             las personas a considerar otros enfoques,      para identificar sus tipos y determinar
letras mayúsculas y minúsculas, e incluso      especialmente cuando es necesario              como deben interactuar mejor entre sí.
caracteres especiales. Estos son requisitos    capacitar y transmitir retroalimentación con
ingenuos de complejidad de contraseñas         cuidado.                                       Scaled Agile Framework® y SAFe™ son marcas
y provocan una falsa sensación de                                                             registradas de Scaled Agile, Inc.
seguridad, ya que los usuarios optarán
por contraseñas más inseguras porque           SAFe™
cualquier otra cosa es difícil de recordar y   Resistir                                       Propiedad separada del código y
escribir. De acuerdo a las recomendaciones                                                    del pipeline
del NIST, el factor principal en la fuerza     Nuestro posicionamiento respecto a             Resistir
de una contraseña es su longitud, y por lo     “ser ágil antes de hacer ágil” y nuestras
tanto, los usuarios deberían elegir frases     opiniones sobre este tema no deberían          Idealmente, el pipeline de despliegue
de contraseña largas con un requisito          causar sorpresa; pero desde que SAFe™          y el código que se despliega deben ser
máximo de 64 caracteres (incluyendo            (Scaled Agile Framework®), según el            propiedad del mismo equipo, especialmente
espacios). Estas frases de contraseña son      informe de Gartner de Mayo de 2019, es         cuando los equipos practican DevOps.
más seguras y fáciles de recordar.             el marco de referencia ágil empresarial        Desafortunadamente, todavía vemos
                                               más considerado y utilizado, y dado que        organizaciones donde existe una propiedad
                                               vemos a más y más empresas emprender           separada del código y del pipeline ,
Revisión por pares equivalente a               cambios organizacionales, hemos pensado        donde este último pertenece al equipo de
                                               que es el momento de volver a crear            infraestructura. Esto se traduce en lentitud
pull request
                                               conciencia sobre este tema. Nos hemos          para aplicar cambios, en la existencia de
Resistir
                                               encontrado con organizaciones luchando         barreras para las mejoras y en una falta
Parece que ciertas organizaciones              con los procesos sobre-estandarizados          de apropiación por parte del equipo de
consideran que la revisión por pares es        y de fases que tiene SAFe. Esos                desarrollo, con menor involucramiento en
equivalente a un pull request : creen que      procesos crean fricción en la estructura       los despliegues. Una causa de esto puede ser
la única manera de lograr una revisión         organizacional y su modelo operativo.          claramente el tener equipos separados; otra
por pares del código es a través de un pull    También, puede promover la creación            puede ser el deseo de conservar procesos
request. Hemos visto que este enfoque crea     de silos en la organización, impidiendo        y roles que funcionen como controladores
importantes embotellamientos en el equipo      que las plataformas se conviertan en           y guardianes. Aunque puede haber razones
y además degrada significativamente la         auténticas habilitadoras de las capacidades    legítimas para usar este enfoque (por
calidad de la retroalimentación cuando         del negocio. El control “de arriba hacia       ejemplo, por control regulatorio), en general
los revisores, sobrecargados, comienzan        abajo” genera desperdicio en la cadena         encontramos que es doloroso e inútil.
a rechazar las solicitudes casi sin mirar.     de valor y desalienta la creatividad del

                                                                                                                   TECHNOLOGY RADAR | 15
                                                                                                            © Thoughtworks, Inc. All Rights Reserved.
También puede leer