Blog

Los 3 pilares de un software

Los 3 pilares de un software 1
Cortesía de Manu Cornet y http://bonkersworld.net/

Cuando desarrollamos un producto software intervienen diferentes roles y personas, cada uno es distinto y tiene distintas habilidades. Básicamente hay 3 pilares donde reposa un software.

Las tres patas son igual de importantes y generalmente son lideradas por un rol distinto, ninguna debería ser superior o inferior a las demás y todas deben “negociar” para que la fuerza de una cosa no hunda las demás.

En general los productos los hacemos personas y la relación de las personas es lo que al final se refleja en el producto. Esto nos lo dice muy bien la ley de Conway:

“Las organizaciones que diseñan sistemas están limitadas a producir diseños que son copias de las estructuras de comunicación de estas organizaciones.”

Es decir, si tenemos grandes diseñadores y están dirigiendo la estructura de una empresa, todos los productos serán una copia de dicha organización.

Si tenemos un gran arquitecto que dirige con mano de hierro el desarrollo, el producto resultante será un reflejo de esa situación

Si tenemos un buen equipo de negocio que conoce bien las necesidades de los clientes, el producto tendrá elementos que cubren las necesidades de los clientes.

Lo malo de estas organizaciones que si una pata pesa mucho, tendremos:

¿Y cómo conseguimos equilibrarlo?

Pues con personas, diálogo y empatía. Tenemos que entender que los 3 roles (PO, Arquitecto, Diseñador) tienen intereses diferentes, cada uno tiene un objetivo en la vida y en algunos puntos contrarios a los demás. La única forma es que se vean como iguales y entiendan las necesidades unos de otros.

2 thoughts on “Los 3 pilares de un software

  1. Felicidades por la claridad y lo mucho que se muestra en pocas lineas. Creo que nadie puede estar en desacuerdo con lo que dices. Otra lectura es que no es posible fabricar software en solitario. Aún teniendo capacidad para resolver las tres patas siempre cojeamos de alguna. Y si fuéramos igual de bonísimos en las tres, nos faltaría tiempo para hacer algo ‘tangible’. A no ser que encontremos un mecenas 🙂

  2. Me alegro que te guste.
    Claro que es posible fabricar buen software en solitario, debemos ser conscientes que tenemos que ponernos en las tres situaciones. Como bien dices, siempre somos mejores en una cosa que en otra, el tema es saber compensarnos.
    Trabajar en equipo tiene un coste añadido de dialogar, negociar y entender a los demás.
    Conozco grandes equipos que se mueven lentos y pesados desarrollando software y programadores individuales que son flechas para implementar desarrollos.

    En el punto medio está la virtud 😉

Dejar un comentario