# data[].attributes.body
Involucra 4 aspectos importantes:

Diferenciar entre la arquitectura y el diseño, y saber como colaborar en un equipo para hacer que la arquitectura funcione.

Tener un amplio conocimiento tecnológico, manteniendo una cierta profundidad en la misma.

Entender, analizar y conciliar trade-offs entre varias soluciones y tecnologías.

Entender la importancia del negocio y como se traducen a intereses arquitectónicos

# data[].attributes.body
Hay varias desventajas de aplicar una visión tradicional, ya que el arquitecto y los desarrolladores están separados y las decisiones tomadas por el arquitecto pueden no llegar al equipo de desarrollo y las deciciones tomadas por los desarrolladores nunca regresan al arquitecto.

# data[].attributes.body
Hacer que la comunicación sea bidireccional para que el arquitecto dé consejos y mentoría a los desarrolladores y se pueda desarrollar en una manera conjunta.

# data[].attributes.body
Un arquitecto de software debe tener un amplio conocimiento técnico y no tan en profundidad como un desarrollador.

# data[].attributes.body
Cosas que sabes

El desarrollador mantiene esta área como la más grande

Cosas que sabes que no sabes

El arquitecto de software tiene más de esta parte de la pirámide

Cosas que no sabes que no sabes

Los desarrolladores que transicionan a arquitectos deberían cambiar la manera en que ven la adquisición de conocimiento.

# data[].attributes.body
Todo en la arquitectura es un trade off, comúnmente la respuesta es "depende", depende de cuál es tu objetivo, cuál es tu ambiente y muchos otros factores que pueden cambiar las decisiones y respuestas que necesitas.

# data[].attributes.body
Se produce cuando un arquitecto toma el rol de desarrollador de tiempo completo y desatiende sus actividades normales.

Una solución es delegar las tareas que tengan que ver con código.