Skip to content

Parte II: La caja de herramientas del Software Architect

Descubre las herramientas y técnicas esenciales para arquitectos de software para abordar desafíos organizacionales, desde entrevistas con stakeholders hasta foros de arquitectura y registros de decisiones.

En la primera parte de esta serie, Navegando los primeros días como Software Architect, describí la importancia de identificar a tus stakeholders, hablar con ellos y recopilar tanta información como sea posible. Es hora de procesar esa información y determinar qué herramientas pueden ayudarte a enfrentar los desafíos.

Procesando el resultado de las entrevistas

Software Architect Stakeholders Template
Un ejemplo del resultado de las entrevistas con tus stakeholders

Tendrás un buen conjunto de notas adhesivas con información valiosa si usas la plantilla Miro que compartí en el primer artículo o cualquier otra herramienta de tu (o de tu organización) preferencia. Luego, puedes identificar y extraer algunos de los desafíos que tienes por delante usando esta información.

Supongamos que las entrevistas fueron bien y pudiste resumir ideas genéricas. Esos desafíos probablemente estén en las primeras dos filas: “Sus expectativas y tu responsabilidad” y “Resultado tangible para corto y largo plazo.” En mi ejemplo (ver la imagen arriba o la plantilla), estos desafíos son elementos como:

  • Ayudar a descubrir soluciones para nuevas funcionalidades o desafíos
  • Cambiar el sistema técnicamente para habilitar nuevas ofertas de casos de negocio
  • Construir puentes entre departamentos
  • Deshacerse de la deuda técnica
  • Comunicar las necesidades técnicas de la plataforma en un lenguaje que todos entiendan
  • Entrenar, influenciar y guiar a los ingenieros para que podamos lograr los objetivos de nuestra organización
  • etc.

Si las notas no son suficientes para destilar los desafíos, puedes crear nuevas notas que los resuman en one-liners y colocarlas junto a las originales.

Reformular ideas para hacerlas más generales
Puedes reformular ideas para que se vuelvan más generales

Abordando los desafíos: La caja de herramientas del Architect

Las herramientas son formas poderosas de mejorar y facilitar cualquier tarea: taladros percutores, licuadoras, lavadoras a presión, etc. En el desarrollo de software, hay muchas herramientas disponibles: IDEs, frameworks y soluciones de CI/CD, repositorios de código, co-pilotos impulsados por IA, etc. Para la gestión de productos o proyectos, también hay muchas de ellas: Basecamp, Airfocus, Asana, MS Project, etc. Muchas de estas herramientas de producto y desarrollo de software tienen formas integradas de seguir metodologías o procesos específicos: Agile (por ejemplo, Scrum/Kanban), MVP, DevOps…

La gente usa estas herramientas diariamente, y les dan estructura y guía sobre cómo hacer sus trabajos. Usando su caja de herramientas, pueden enfocarse en crear valor.

Pero ¿qué pasa con la arquitectura de software? ¿Qué herramientas ayudan a la gente a mapear ideas de producto y negocio en una solución de software? Nota: No podré explicar en este artículo por qué necesitas esas herramientas y la arquitectura de software como una preocupación diferente de tu organización; eso es para una publicación de blog separada. Asumo que ya entendiste que necesitas un paso entre definir los requisitos del producto y saltar a codificar, sin importar quién haga eso en la organización.

Déjame resumir lo que descubrí en el mundo salvaje de la arquitectura de software.

Herramientas orientadas a soluciones

Estas son palabras de moda como Domain-Driven Design, Microservice Architecture, Event-Driven Architecture, Hexagonal Architecture, Clean Architecture, Blockchain Architecture, Service Mesh, ServiceBus (¡qué!), etc.

Seamos claros: estas no son herramientas para estructurar y guiar tu trabajo sino más bien formas de resolver un problema. Puede que ya sepas cuán valiosas son estas herramientas, así que te diré cómo pueden dañarte:

  • No te ayudarán a entender el problema que necesitas resolver
  • Asumen que las necesitas, pero a veces no es así (por ejemplo, “los microservicios son el camino a seguir”)
  • A veces se comercializan como la única solución (“podemos movernos a la nube usando X”)
  • También son una solución buscando un problema (“¿deberíamos considerar Blockchain, quizás?”)

Herramientas orientadas a documentación

La más popular en esta categoría es el modelo C4. Otras en esta categoría incluyen ArchiMate, Architectural Decision Records (ADRs), UML (diagramas de Clase, Secuencia, Componente, Despliegue, etc.), etc.

Estas son herramientas para capturar conocimiento y decisiones arquitectónicas. Están destinadas a proporcionar una estructura para documentar software, desde alto nivel hasta detalle. Por naturaleza, son estáticas y mayormente orientadas a resultados. Algunas personas pueden encontrarlas valiosas para diseñar nuevas funcionalidades, pero se basan en la suposición de que tienes toda la información y claridad necesarias para describir esa solución de software que ya tienes.

De nuevo, estas no son herramientas que te ayuden a construir arquitectura de software; solo están destinadas a capturar el resultado.

Frameworks pesados de Enterprise

Estos funcionan bien para organizaciones que los usan y los consultores que van con ellos. TOGAF, Zachman Framework, FEA, y muchos más son los nombres de algunos de estos frameworks de Enterprise Architecture.

Será mejor que tengas un departamento de arquitectura central que defina todo el plan de antemano si quieres trabajar con estos, o puedes contratar a los grandes tiburones consultores para que lo hagan por ti.

La VERDADERA caja de herramientas del Software Architect

Después de diez años de experiencia, puedo compartir con confianza mi caja de herramientas como arquitecto de software. Hay 14 herramientas aquí. Aunque hay toneladas de artículos sobre algunas de ellas, compartiré mi punto de vista, considerando esos desafíos que queremos abordar:

  1. Stakeholder Interview - Tu canal principal para entender expectativas y crear relaciones
  2. Exploring Organization’s Goals - Entender el contexto y prioridades del negocio
  3. System Overview - Vista de alto nivel de la arquitectura actual del sistema
  4. Creating Architecture Vision - Definir dónde queremos ir arquitectónicamente
  5. Architecture Roadmap - Planificar la evolución del sistema a lo largo del tiempo
  6. Architecture Kanban - Rastrear trabajo e iniciativas de arquitectura
  7. Architecture Forum - Reuniones regulares para discutir temas de arquitectura
  8. Decision Records - Documentar decisiones arquitectónicas importantes (ADRs)
  9. Update Channels - Canales de comunicación para compartir actualizaciones de arquitectura
  10. Regular Syncs - Reuniones uno a uno con stakeholders clave
  11. Design Sessions - Talleres colaborativos para resolver problemas específicos
  12. Documentation Structure - Forma organizada de mantener documentación de arquitectura
  13. Decentralizing Architecture - Empoderar a los equipos para tomar decisiones de arquitectura
  14. Architecture Community - Construir una comunidad de práctica alrededor de la arquitectura

Cada una de estas herramientas sirve para un propósito específico en el trabajo diario del arquitecto, desde entender el espacio del problema hasta facilitar soluciones y asegurar alineación a través de la organización.

El valor de la arquitectura colaborativa

La clave es que la arquitectura de software no se trata de imponer soluciones desde una torre de marfil. Se trata de:

  • Facilitar conversaciones entre equipos de negocio y técnicos
  • Crear entendimiento compartido de capacidades y restricciones del sistema
  • Empoderar equipos para tomar decisiones informadas
  • Construir puentes a través de silos organizacionales
  • Documentar decisiones para referencia futura

Estas herramientas te ayudan a lograr estos objetivos mientras mantienes la transparencia y construyes confianza con tus stakeholders.

Comenzando con tu caja de herramientas

No necesitas implementar las 14 herramientas de una vez. Comienza con:

  1. Entrevistas con stakeholders para entender el panorama
  2. Visión general del sistema para documentar el estado actual
  3. Foro de arquitectura para crear un punto de contacto regular
  4. Registros de decisiones para capturar elecciones importantes

A medida que construyas confianza y demuestres valor, puedes introducir gradualmente más herramientas basadas en las necesidades específicas de tu organización.

Conclusión

La caja de herramientas del Software Architect no se trata de soluciones técnicas o formatos de documentación. Se trata de crear estructuras y procesos que permitan un trabajo de arquitectura efectivo. Estas herramientas te ayudan a:

  • Entender problemas antes de saltar a soluciones
  • Facilitar conversaciones productivas
  • Construir consenso y alineación
  • Documentar decisiones de forma transparente
  • Empoderar a los equipos para contribuir

En la siguiente parte de esta serie, profundizaremos en entender los objetivos de tu organización y cómo alinear el trabajo de arquitectura con los objetivos de negocio.

Recuerda: la mejor arquitectura emerge de la colaboración, no del aislamiento. Usa estas herramientas para construir puentes, no muros.

The Practical Software Architect

Bridge the gap between theory and real-world implementation

Learn More

Get More Architecture Insights

Join hundreds of software architects and engineers getting practical insights delivered to their inbox.

Volver al Blog