Desarrollo de software. Gerald Marvin Weinberg. Imprescindibles

Ya he escrito algunos artículos sobre la problemática de considerar imprescindibles a determinadas personas en una organización o que efectivamente puedan llegar a ser difíciles de sustituir sin un impacto importante.

Llegar a ese punto es fomentar el individualismo, la creación de cotos privados, de parcelas de «poder», cuando el desarrollo de software es un trabajo en equipo o por lo menos debería serlo para intentar conseguir unos resultados mejores (es cierto que se habla demasiado de las bondades del trabajo en equipo en el desarrollo de software, que sabemos que funciona y que ofrece buenos resultados y sin embargo la organización predominante dentro y fuera del proyecto son los grupitos que resulta hasta más perjudicial que el individualismo).

También he comentado en alguna ocasión que el principal responsable de la existencia de imprescindibles es la propia organización que no ha sabido retener o repercutir su conocimiento en más personas del equipo.

Hay que entender que en toda organización destacan determinadas personas, es hasta positivo que así sea, pero una cosa es destacar y aprovechar todo ese potencial y otra que exista dependencia del mismo.

Sobre este hecho Weinberg realiza la siguiente reflexión: «Si un gestor quiere ejecutar un proyecto de manera estable haría bien en seguir la siguiente máxima: si un programador es indispensable, deshazte de él lo antes posible».

6 comentarios
  1. Ricardo dijo:

    “Si un gestor quiere ejecutar un proyecto de manera estable haría bien en seguir la siguiente máxima: si un programador es indispensable, deshazte de él lo antes posible”.

    Me apunto esa frase para decírsela a más de una empresa.

  2. Johann dijo:

    que gran frase… una pena que no se la aplicaran a:

    – Wozniaz en los orígenes de Apple (lo debió echar Steve Jobs)
    – Larry Elison (sus socios)
    – Bill Gates (Steve Ballmer lo debió echar tb)
    – Steve Jobs (lo debió echar Bill Gates cuando lo salvó de la ruina)
    – Cameron Purdy (cuando fichó por Oracle por su Coherence)
    – Gavin King, Mark Fleury…

    hay genios que te son indispensables. Y si los echar, pierdes valor.

    Siempre habrá gente indispensable.
    Si eres gerente, y ves que un programador es indispensable, echa su responsable pq le ha dejado actual como «cowboy-coder» (en el peor de los casos).

    Los programadores nunca son responables de los errores. Lo son sus responsables. Por acción, o por omisión. El software no es una tarea artesanal.

    Igual es que el gestor no sabe hacer su trabajo….

    • jummp dijo:

      Como comento en el artículo si en una organización hay personas que pueden considerarse imprescindibles es porque alguien ha permitido que así sea, siendo el máximo culpable el que lo ha permitido.

      También comento que hay que cuidar el talento, si bien el verdadero provecho del mismo se consigue cuando es capaz de hacer crecer con el mismo a la organización y a sus compañeros.

      No obstante, también hay que tener en cuenta que hay imprescindibles que lo son por acumulación de parcela de conocimiento y mediante la acotación de la misma a los demás. Por supuesto que en este caso también son culpables quienes lo han permitido, si bien quienes se han convertido en imprescindibles a través de esta estrategia tampoco deben considerarse inocentes.

  3. Johann dijo:

    normalmente, si el programador se hace el imprescindible hay dos opciones:

    a) Lo es por méritos propios: saca más trabajo que nadie, conoce la aplicación, hace el mejor diseño y codificación… Este es el ejemplo de los mencionados arriba

    b) Lo es por ocultar información: la documentación no muestra todos los detalles, el código no está comentado de forma correcta… es el único que lo entiende. Esto es lo grave. Porque se hace con nocturnidad y alevosía.

    Pero el culpable de todo es el gestor. Si yo fuera director de Dept de desarrollo, y veo esto, pondría de inmediato acciones correctoras. Y luego pediría responsabilidades a quien lo ha permitido ya sea por acción o por omisión.

    • jummp dijo:

      Sin duda que el gestor es el máximo y único responsable si bien es necesario precisar que el comportamiento de las personas a su cargo debería ser el más adecuado posible y no ser necesarias continuas acciones correctoras para que el trabajo se efectúe conforme a lo que la lógica del proceso de desarrollo y proyecto software indica.

      Por tanto, sobre el gestor recae la responsabilidad pero cada cual dentro del perfil que le corresponde dentro de un equipo de trabajo también la tiene y debe hacer frente a las posibles consecuencias de sus actos.

  4. Johann dijo:

    Es problema del programador si le han dado esas directrices.
    En caso contrario, no.

Deja un comentario