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?