Entrevista con Eoin Woods: Insights sobre arquitectura de software

Compartir esta publicación

Share on facebook
Share on linkedin
Share on twitter
Share on email

Tabla de contenidos

Este mes equipo de Apiumhub ha entrevistado a Eoin Woods – ponente en GSAS y CTO de Endava, donde dirige la estrategia técnica de la empresa, orienta el desarrollo de capacidades y dirige la inversión en tecnologías  emergentes. Eoin es un autor de numerosas publicaciones tanto en el campo de investigación como en el industrial y un ponente habitual en conferencias. Sus principales intereses técnicos son la arquitectura de software, los sistemas distribuidos y la seguridad informática. Ha recibido el Premio Linda Northrup 2018 de Arquitectura de Software, del Instituto de Ingeniería de Software de la CMU. Hoy Eoin comparta sus insights sobre arquitectura de software.

Entrevista con Eoin Woods: Insights sobre arquitectura de software

¿Qué es para ti la arquitectura de software?

Defino la arquitectura de software como las decisiones de diseño que son difíciles de cambiar en un sistema de software, lo que normalmente significa negociar entre las diferentes necesidades de las partes interesadas y asegurarse de que el sistema logra un conjunto aceptable de atributos de calidad – es decir, un conjunto de compensaciones.

¿Cuáles son las tres principales habilidades sociales que crees que necesitan los arquitectos de software?

Diplomacia, liderazgo, comunicación y saber escuchar. (¡Lo siento, son cuatro!)

¿Cuáles son las 3 principales responsabilidades de un arquitecto de software dentro de la empresa?

La gente interpreta el rol de forma diferente, pero en mi opinión son comprender las necesidades de las partes interesadas, asumir la responsabilidad de lograr los atributos de calidad del sistema y proporcionar liderazgo técnico.

¿Cuáles son los principales atributos de la arquitectura de software?

La arquitectura de software debe ser adecuada a su finalidad (es decir, resolver el problema adecuado),del modo más sencillo posible y ampliamente comprendido.

¿Cuáles son las métricas clave de la arquitectura de software?

Sinceramente, no creo que tengamos muchas métricas buenas. Las obvias son la complejidad, el acoplamiento, la cohesión y otras métricas estructurales. Están bien y son fáciles de medir, por eso las utilizamos. Pero sólo miden una pequeña parte del problema. Todos los atributos de calidad, incluyendo atributos como el coste de construcción, miden la eficacia de la arquitectura, y son medidas de la propia arquitectura.

Pensamiento crítico frente a pensamiento sistémico en la arquitectura de software, ¿qué significa para ti?

Se trata de dos modelos diferentes sobre cómo pensar en los sistemas. Son complementarios y no se oponen. El pensamiento crítico nos lleva a cuestionar nuestras suposiciones y reacciones iniciales al considerar una situación. El pensamiento sistémico nos lleva a considerar todo el sistema que estamos diseñando, incluido su entorno, lo que a menudo es un problema sociotécnico de sistema de sistemas más que un simple problema de estructuración de software.

¿Qué opinas de la innovación frente al pragmatismo?

El pragmatismo es lo que permite que la innovación sea eficaz y prospere. Si no se piensa en las ventajas y desventajas de una idea innovadora, probablemente se la esté condenando al fracaso. Por muy emocionante que sea una idea, tiene que ser práctica y útil.

¿Qué opinas del control intelectual?

Lograr el control intelectual de un sistema es probablemente la responsabilidad más importante de un arquitecto de software, porque es probable que nadie más lo tenga.

¿Qué opinas sobre el rendimiento y la capacidad de respuesta?

Se puede escribir mucho sobre el rendimiento del sistema, y mucha gente (incluido yo) lo ha hecho. Resumiendolo en un par de puntos, creo que reducir la cantidad de trabajo que tiene que hacer el sistema, evitar la contención entre los componentes del sistema y mantener el sistema lo más simple posible son algunas tácticas genéricas que son valiosas para lograr un buen rendimiento.

¿Cuáles son tus expectativas con respecto a los acontecimientos de la arquitectura del software, crees que en 2021 todo será online?

Lamentablemente, creo que todo será online al menos hasta el verano de 2021. De todos modos, eso es lo que estamos planeando en Endava. Tengo la esperanza de que para otoño podamos volver a los eventos presenciales.

¿Qué tendencias de arquitectura de software has observado este año?

Más énfasis en los sistemas nativos cloud y en el uso de servicios cloud (como los servicios cognitivos o los servicios de base de datos PaaS). Parece que vuelve el interés por el modelado. La arquitectura basada en eventos parece estar resurgiendo en algunos lugares, pero en una forma bastante «anémica» en la que no es mucho más que un procesamiento basado en mensajes.

¿Crees que las balas de plata existen en la arquitectura de software?

No, lamentablemente no.

¿Cuál es tu opinión sobre la elasticidad versus a la escalabilidad?

No creo que sea «versus», creo que la elasticidad es un mecanismo muy valioso para lograr la escalabilidad.

¿Podrías compartir tus  insights sobre arquitectura de software ? A nivel de patrones?

Los estilos y patrones de arquitectura son una forma muy valiosa de codificar los conocimientos y de mantener debates claros sobre las opciones de diseño. Siempre que veo un sistema, o pienso en cómo diseñar uno, una de mis primeras preguntas es «¿qué estilo es ese?» o «¿qué estilo funcionaría aquí?».

¿Qué recomendación darías a las grandes empresas internacionales en materia de arquitectura de software?

No intentar hacer arquitectura (o ingeniería de software en general) a gran escala internacional. Acordar algunos fundamentos básicos para permitir la interoperabilidad y luego dejar que los equipos que trabajan en cada pieza de la arquitectura empresarial elijan su propio enfoque. Así, un modelado de datos compartido es útil para permitir la interoperabilidad, pero no lo es diciendo a todos los equipos que utilicen las mismas herramientas de CI.

¿Qué recomendación darías a las startups en términos de arquitectura de software?

Hacer lo suficiente para conocer las compensaciones de la arquitectura. Asegurarte de saber qué decisiones se han tomado y hacerlo intencionadamente. Esto te permite saber lo que es posible y lo que no es posible cuando llegues a pivotar comercialmente en busca del éxito.

¿Cuáles son los principales problemas de la arquitectura de software?

El principal problema es que la gente no lo hace y piensa que (por ejemplo) el Domain Driven Design es «arquitectura». Me encanta el DDD y creo que es una técnica de diseño muy eficaz para el código de las aplicaciones. Pero no resuelve la mayoría de los problemas de arquitectura. La arquitectura del software es mucho más que la estructura del código.

Tu viaje de arquitectura: ¿lecciones aprendidas?

Conoce a tus interlocutores, sigue aprendiendo, cuestiona tus suposiciones, sé respetuoso, evita el exceso de confianza en tus propias capacidades, utiliza la herramienta adecuada para el trabajo, no la última que hayas utilizado, obsesionate con los atributos de calidad porque nadie más lo hará.

BIO + Contacto

Eoin Woods es CTO de Endava, donde dirige la estrategia técnica de la empresa, orienta el desarrollo de capacidades y dirige la inversión en tecnologías emergentes. Eoin es un autor de numerosas publicaciones tanto en el campo de investigación como en el industrial y un ponente habitual en conferencias. Sus principales intereses técnicos son la arquitectura de software, los sistemas distribuidos y la seguridad informática. Ha recibido el Premio Linda Northrup 2018 de Arquitectura de Software, del Instituto de Ingeniería de Software de la CMU.

Eoin Woods
www.eoinwoods.info
[email protected] / [email protected]
linkedin.com/in/eoinwoods
@eoinwoodz

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

Acerca de Apiumhub

Apiumhub reúne a una comunidad de desarrolladores y arquitectos de software para ayudarte a transformar tu idea en un producto potente y escalable. Nuestro Tech Hub se especializa en Arquitectura de Software, Desarrollo Web & Desarrollo de Aplicaciones Móviles. Aquí compartimos con usted consejos de la industria & mejores prácticas, basadas en nuestra experiencia.

Posts populares

¿Tienes un proyecto desafiante?

Podemos trabajar juntos