sábado, 5 de mayo de 2012

¿Eres un programador profesional?



Leyendo hace unos días el libro “97 Things Every Programmer Should Know”, una recopilación de 97 artículos escritos expresamente para el libro por expertos en desarrollo de software de los últimos años, me llamó bastante la atención uno de los artículos llamado “The Professional Programmer”, en el cual Robert C.Martin (más conocido como Uncle Bob) explica una serie de ideas sobre lo que el entiende por ser un Programador Profesional.

El artículo no sorprenderá demasiado a los que hayan leído algún libro u otras referencias del autor, ya que siempre ha dejado bastante clara su postura respecto al tema, pero me pareció que podía ser interesante como tema de discusión.

Las ideas que expone  Uncle Bob en el artículo son las siguientes (la traducción es  bastante libre):


  • Un programador profesional es aquel  que se responsabiliza de su propia carrera profesional: Estudiando, leyendo libros, formándose, estando al día en las últimas tecnologías  y metodologías y no esperar que sea nuestro jefe el que nos pague la formación.  
  •  Un programador profesional es responsable del código que escribe: No sube código a producción que no ha sido probado o del cual no se está seguro que vaya a funcionar.
  • Un programador profesional trabaja en equipo: Se responsabiliza de “todo” lo que tiene que entregar su equipo, y no únicamente de su trabajo. Ayuda a sus compañeros cuando estos tienen problemas y les enseña y aprende de ellos lo máximo posible.
  • Un programador profesional “no soporta” grandes listas de bugs: es una  señal de que se está siendo poco cuidadoso con el sistema.
  • Un programador profesional no hace “ñapas”:  Acaba el trabajo de forma correcta y sin prisas, manteniendo su código limpio , bien estructurado y lo más legible posible, siguiente estándares y buenas prácticas de desarrollo.

Para enfatizar los puntos anteriores Uncle Bob da diversos ejemplos, como los de los abogados o médicos que utilizan parte de su tiempo libre para estar el día en los diferentes aspectos y avances de su profesión, u otro ejemplo con un médico al explicar lo de las “ñapas” utilizando una hipotética situación en la que un médico está operando a corazón abierto y hace un apaño para ir tirando porque tiene que irse a casa.

La visión que expone Uncle Bob de lo que es ser un profesional de nuestro campo se acerca bastante a la idea que yo tengo de la misma. Hay alguna idea un poco cogida con pinzas (la lista de Bugs) pero en general creo que es una visión muy buena. Lamentablemente, por lo que llevo visto en mi (aún corta) carrera profesional, parece que lo que la mayoría de desarrolladores entienden por ser profesional  poco tiene que ver con esto, acercándose más a la idea de pasar 8 horas intentando hacer de manera más o menos “bien” las tareas que se les asigna y poner la mano a final de mes (en un país donde ser funcionario es el gran sueño para una gran parte de la población, esto es algo que no debería sorprender).

A pesar de ello, sigo pensando que es importantísimo el cuidar de nuestra carrera profesional, que se supone que es lo que nos va a dar de comer a nosotros y a nuestra familia, y más ahora en este tiempo un tanto “oscuro” que nos está tocando pasar, donde la actitud respecto a nuestra profesión va a ser un factor diferencial clave, y para ello, las propuestas e ideas de Uncle Bob pueden ser una gran ayuda.

¿Qué opináis vosotros? ¿Se acerca vuestra visión de lo que es un programador profesional a lo que nos cuenta Uncle Bob? 

2 comentarios:

Anónimo dijo...

Uha pena que nadie opinase! Y no puedo resistirme a hacerlo. No soy programador, pero trabajo con ellos, y creo que están muy limitados por su entorno. Por ejemplo, conozco unos cuantos programadores muy buenos, yo los consideraría unos buenos profesionales, pero tienen que dedicarse a hacer "ñapas" porque eso es lo que les piden que hagan, y no siempre les dan tiempo para hacer las cosas bien, por mucho que se alegue que hacer las cosas bien es mas costoso al principio pero mejor a la larga.Por lo que la empresa y/o los jefes que toquen influyen mucho también, y diría que no es justo decir que no son programadores profesionales por estos motivos.

JASOSA dijo...

Hola, muchas gracias por tu comentario!

Es cierto lo que comentas de que el entorno puede en muchas ocasiones influir en cómo se hace el trabajo y que muchos jefes parecen no entender que ejercer presión sobre un equipo de desarrollo no va a hacer aumentar la productividad.

De todas maneras creo que eso no justifica que un desarrollador se acostumbre a hacer "ñapas".Si nos dicen que hagamos algo que sabemos que está mal y que va a traer problemas a medio/largo plazo ¿por qué no negarnos? ¿Un arquitecto va a construir mal las paredes de un edificio justificándose en que no queda tiempo? ¿Un cirujano va a dejar a medio abrir a una persona porque le están presionando? ¿Por qué entonces un desarrollador si? Este tipo de cosas son las que devalúan la profesión de desarrollador y aunque jefes o directivos tengan parte de culpa, no toda es suya ni mucho menos.

Un saludo!