Diferenciación entre espacio del problema y espacio de solución

Clase 6 de 24Curso de Fundamentos de Arquitectura de Software

Resumen

Manejar efectivamente las expectativas en la arquitectura de software implica entender claramente la diferencia entre el espacio del problema y el espacio de la solución. El espacio del problema abarca todas aquellas necesidades, intenciones y requisitos que surgen al interactuar con tu cliente. Para identificarlo claramente, puedes apoyarte en preguntas fundamentales como: ¿qué problema queremos resolver?, ¿por qué se necesita solucionarlo?, y ¿cuál es la causa del problema?

¿Qué es la ley de Conway y cómo influye en la comunicación?

Melvin Conway señaló que las organizaciones construyen sistemas que reflejan su tipo de comunicación interna, idea conocida como Ley de Conway. Esto significa que tu tarea como arquitecto de software incluye entender y adaptarte a la cultura de comunicación organizacional. Al identificar estos patrones, puedes anticipar cómo estos mismos van a influir en el sistema que estarás diseñando, asegurando que tu propuesta sea entendida y apoyada de manera consistente.

¿Cómo diferenciar claramente entre espacio del problema y espacio de solución?

La clave está en ajustar nuestras preguntas:

  • El espacio del problema se explora con preguntas como: ¿por qué?, ¿para qué?, y ¿qué es lo que queremos lograr o resolver?
  • El espacio de solución surge naturalmente cuando ya sabemos claramente qué y por qué queremos resolver algo, y aquí las preguntas indispensables son del tipo ¿cómo?

Por ejemplo, ante la solicitud "necesitamos un microservicio de detección de fraude", un arquitecto experimentado realizará una pregunta previa: ¿qué consideramos fraude? Esto permitirá descubrir aspectos subyacentes que influirán en el diseño de la solución.

¿Qué herramientas te ayudan a comunicar efectivamente tu arquitectura?

Una parte crucial de tu trabajo como arquitecto de software es comunicar tu diseño claramente. Dos herramientas principales para esto son:

  • El hipertexto y la hipermedia: El hipertexto permite vincular información relacionada fácilmente. La hipermedia añade medios adicionales como imágenes, video o audio, facilitando la compresión.
  • Diagramas estandarizados: Puedes utilizar modelos como el C4 Model, diagramas de secuencia o estándares como UML. Estos diagramas contribuyen mostrando claramente desde abstracciones de problemas hasta detalles específicos sobre procesos o secuencias.

Sesiones con retroalimentación directa de los stakeholders, utilizar plantillas claras que permitan revisiones históricas y establecer fechas claras para la revisión documental te ayudará a evitar situaciones como el parálisis por análisis y mejorará notablemente la comprensión colectiva sobre tu propuesta de diseño.

¿Tienes clara ya la diferenciación entre ambos espacios en tu proyecto o tienes consultas adicionales al respecto? ¡Espero puedas compartir tus experiencias o dudas en los comentarios!