Un arquitecto de software debería programar

¿Un arquitecto revisa code?

¿El arquitecto solo esquematiza documentos y ya no programa?

Estas fueron algunas de las preguntas que surgieron en mi webinar introductorio a la arquitectura de software. Es un tema que genera mucha confusión en la comunidad. Por eso, grabé un video compartiendo mi opinión al respecto. Debajo del video encontrarás la transcripción.

¿Tú qué opinas? Déjame tu opinión en los comentarios.

Link al video en YouTube. | Suscríbete a mi canal


Imagínate un día en la oficina.

Es lunes en la mañana. Está todo el equipo de trabajo reunido, y tú eres uno de los desarrolladores. Están a punto de iniciar un nuevo proyecto, y de repente llega una persona.

Una persona misteriosa, que rara vez está en la oficina. Esta no es una persona cualquiera. Es el arquitecto de software. Sin embargo, este no es un arquitecto cualquiera.

Es un ARQUITECTO POWERPOINT.

¿Cómo reconoces un arquitecto PowerPoint?

  1. Habla con una jerga muy técnica. Utiliza las últimas siglas que hay por ahí.
  2. Es una persona que le encanta hacer diagramas. Hace dibujos, cajas y líneas todo el tiempo.
  3. Le da asco el código.

En síntesis, hace muchos diagramas, especificaciones, y se va antes de que empiece la implementación del proyecto.

¿Es un problema que el arquitecto no esté involucrado en la implementación?

Por supuesto que sí.

Piénsalo bien.

¿Cómo puede saber un arquitecto si está haciendo bien su trabajo, cuando no está viviendo las consecuencias de lo que diseñó?

¿Cómo puede saber si lo está haciendo bien, cuando no sabe si el diseño que los programadores están implementando es el correcto, y no les está generando muchos más problemas?

También hay que considerar que las arquitecturas evolucionan, en la medida que evoluciona el entendimiento del proyecto. Cuando arrancamos, hay una idea inicial. Esa idea del proyecto y los requerimientos va madurando en la medida que se va implementando, y el cliente brinda retroalimentación.

La respuesta  a la pregunta inicial es SÍ. Los arquitectos de software SÍ deberían programar.

Es más, si le preguntas al tío Bob….

Tío Bob Martin

… él te diría que el arquitecto es un programador. El tío Bob te diría que los arquitectos son los mejores programadores del equipo. Ellos deberían seguir involucrados con el equipo de desarrollo, a pesar de que tengan otro rol. Es más, un arquitecto debería molestarse si no lo tienen en cuenta, así sea para una tarea de programación pequeña.

Es difícil que un arquitecto tenga tiempo completo para programar

El arquitecto tiene otras responsabilidades, como:

  • Ser un guía y mentor para el equipo.
  • Reunirse con clientes.
  • Apoyar la gerencia del proyecto.

Por lo anterior, la programación no puede ser la principal ocupación del arquitecto.

¿Cómo puede un arquitecto involucrarse con el código?

Hay 3 maneras que recomiendo:

  1. Tomar una funcionalidad que no haga parte de la ruta crítica del proyecto. Es decir, que tome un módulo pequeño o de baja prioridad, que lo pueda realizar cuando tenga algo de tiempo.
  2. Hacer programación en parejas (pair programming). Puede sentarse con los desarrolladores del proyecto, y ayudarlos con algún reto o problema.
  3. Hacer revisiones de código (code reviews). La idea es que cuando el arquitecto tenga cierto tiempo libre, revise el código en el repositorio. El objetivo es que revise que tanto patrones de diseño, la arquitectura y estándarse se estén cumpliendo.

De esta forma, el arquitecto puede estar más al pendiente del equipo de desarrollo sin tener que hacerlo de tiempo completo.

Eso era todo lo que tenía para compartirte hoy.

Happy coding!

Únete a mi lista de correo.
Te avisaré de nuevo material que te ayude a ser un mejor desarrollador o arquitecto.

¿Un arquitecto de software debería programar?

Educador, desarrollador y arquitecto de software. Ha enseñado distintas tecnologías a profesionales en varias partes del mundo. Ingeniero y geek apasionado por el trabajo remoto.