Si habéis leído este post de Javier Garzas y lleváis el suficiente tiempo en esta profesión no os habra sorprendido en absoluto. La verdad es que no siempre o más bien casi nunca estoy totalmente de acuerdo con lo que Javier escribe pero en esta ocasión no me gusta el enfoque. En cualquier caso os recomiendo su blog.

Desde que estoy en esto he oído a gente que quería dejarlo, yo mismo he pensado en dejarlo como ya os conté alguna vez. Es algo, que todos lo que empezamos en consultoras, hemos pensado.

Muchos vinieron engañados por una industria que literalmente devora carne. Algunos ni siquiera tenían vocación ni aptitudes pero eso es algo que a esta industria basada en coste no le importa. Desde mi punto de vista cuando estas en la rueda tienes tres opciones: dejarlo, ser otro engranaje o posicionarte.

Dejarlo. Es respetable, pero tu y yo sabemos que además de que la industria sea una basura esto de programar tampoco era lo tuyo.

Convertirte en engranaje. Os recomiendo esta entrada en la bonilista en la que habla sobre la grasa. Muchos se adaptan al sistema y aprenden a vivir en el. Alimentandolo y alentadolo.

Posicionarte. No dire que es la elección más complicada y valiente. No voy a hacer juicios de valor aunque estén más que claros. Pero sí es la opción que probablemente te coloque en una posición más difícil. Posicionarte como el profesional que eres, decir que NO cuando haya que hacerlo, asumir la responsabilidad de tu oficio y decir las cosas que nadie quiere oír es duro. De repente habrás borrado de un plumazo un alto porcentaje de ofertas de trabajo. Cada vez más amigos se hacen freelance, montas sus startups e intentan hacerse un hueco en el mercado, es complicado pero, y citando a Unamuno, “Venceréis, porque tenéis sobrada fuerza bruta. Pero no convenceréis.”

Ánimo compañeros, el camino es duro pero la recompensa merece la pena.

No son pocas las veces que me acusan de no cumplir las “reglas”, la última vez fue algo así:

-Estas diciendo que la comunicación con el cliente es importante y sin embargo a nosotros no nos permites hablar con los clientes…

Podríamos pasarnos la tarde definiendo quién es el cliente en este caso. Es interno, es la gente de negocio, son los 4000 usuarios, es una muestra de los mismos, es la persona que levanta la incidencia, etc. Aclarando, además, con cuales de estos les dejo hablar y con cuales no. Pero eso sería una estupidez, porque en el fondo lo que pienso es que hablar con el cliente es muy importante, es lo más importante, es esencial para desarrollar soluciones. Sin el cliente estamos perdidos. Pero no siempre funciona. Entonces es cuando hay que empezar a pensar que hay escondido detrás de la regla.

Qué aporta que el cliente este presente?

  • Elimina el gap de comunicación entre el equipo y la persona que sabe lo que quiere.
  • Hace que el cliente vea inmediatamente que se esta haciendo y si funciona o no (cuando digo funciona me refiero a si es la solución que buscaba o no).
  • Le da al equipo un feedback inmediato sobre la opinión del cliente.

A veces, hay otras formas de conseguir lo mismo y se puede “romper” la regla. Y como esto es un proceso de mejora continua, continuamente tenemos que estar buscando mejores soluciones hasta dar con la óptima. Estoy seguro de que mi prohibición no es la mejor de las soluciones pero también lo estoy de que cumplir la regla “indiscriminadamente” sería mucho peor.

Y… Pues sí, me contradigo. Y, ¿qué? Yo soy inmenso, contengo multitudes.

Los que me conocen me habrán oído hablar alguna vez sobre pesadilla en la cocina, versión america o española. La primera vez que lo vi me quede fascinado, prácticamente todo se podia trasladar a nuestra profesión. Imaginaba a esos comerciales intentando vender en sala esos productos informáticos que desconocen y atribuyéndonos propiedades mágicas que hacen posible convertir mero en lubina. También podía ver a esa cocina corriendo como pollo sin cabeza sin nadie que gestione la demanda u organice el trabajo. Y sí, también desarrolladores en cocina poco profesionales.

Viendo este programa te das cuenta de que cualquiera se cree capacitado para montar una cocina y no te digo ya nada para cocinar. Pero lo cierto es que hay mucho incompetente, irresponsable y  en definitiva personas que no aman lo que hacen y no respetan su profesión.

Uno de los últimos programas que pude ver era en Miami. La cocinera, una joven americana, estaba apunto de perder el cariño por lo que hacía. Lo sé porque yo también he estado ahí, renegando de esta profesión y apunto de abandonarla, pero como a mi, un Chicote llego al rescate. Quiero que su última frase se os quede grabada como se me quedo a mi (no es literal): Me he dado cuenta de que cocinar no es sólo un trabajo sino que es una forma de vida.

Programar es mi forma de vida. Es la tuya?

 

 

El otro día un compañero me argumentaba porque utilizaba un pomodoro web de estos que puedes compartir con otra gente dándoles una url. Por lo visto su mujer lo mira antes de llamarlo para no interrumpir su pomodoro. Yo le comenté que a mi no me llaman de casa cuando estoy trabajando y si lo hacen es porque es importante y puede interrumpir un pomodoro.

Pero no quiero discutir las interrupciones sino más bien las pausas. Analicemos esto:

Cada 25 minutos de trabajo 5 minutos de pausa.

Cada 4 pomodoros 15 minutos de pausa.

Esto hace que cada 4 pomodoros, 1 hora y 40 minutos de trabajo hayamos pausado durante 30 minutos. En una jornada laboral normal de 8 horas trabajarías 6 horas y cuarto y dedicarías a las pausas 1 hora y 45 minutos.

Ahora bien, ¿qué entendemos por pausa? Si entendemos por pausa hablar con tu mujer, pues... que de las 8 horas que te paga tu jefe te pases casi dos colgado al teléfono no parece muy responsable por tu parte. Sin embargo, si aprovechamos esas pausas para dejar al cerebro que se relaje y ocuparnos de tareas menos exigentes pero relacionadas con nuestro trabajo estaríamos hablando de otra cosa ¿no crees?

¿Qué haces tu en las pausas del pomodoro?

Muchas veces he pedido a mis compañeros que tengan una actitud profesional y no menos veces me han preguntado que es eso. Por eso al volver a encontrarme con este articulo de Uncle Bob no me he resistido a traducirlo.

El rasgo mas importante de un programador profesional es la responsabilidad. Los programadores profesionales se responsabilizan de su carrera, sus estimaciones, sus planificaciones y su trabajo. Un programador profesional no hace recaer su responsabilidad en otros.

Si eres profesional, eres responsable de tu carrera. Es tu responsabilidad leer y aprender. Es tu responsabilidad estar al día de la industria y las tecnologías. Demasiados programadores creen que que es responsabilidad de sus jefes impartirles formación. Están equivocados. ¿crees que los médicos piensan así? ¿Y los abogados? No, ellos siguen aprendiendo es su tiempo libre y de su propio bolsillo. Invierten mucho tiempo leyendo periódicos y veredictos. Se mantienen al día. Y nosotros deberíamos hacer los mismo. La relación entre tu y tu jefe esta muy clara en tu contrato. Abreviando: el te paga y tu haces un buen trabajo.

Los profesionales se responsabilizan del código que escriben. No liberan código a no ser que sepan que funciona. Piensa en esto un minuto. ¿Como puedes considerarte un profesional si estas mandando código que no estas seguro que funciona? Los programadores profesionales no esperan que calidad encuentre fallos porque ellos no envían código hasta que ellos lo han probado. Desde luego, calidad encontrara errores porque nadie es perfecto. Pero como profesionales nuestra actitud debe ser no dejar nada para que calidad lo encuentre.

Los profesionales juegan en equipo. Se responsabilizan de lo que entrega todo el equipo, no solo de su propio trabajo. Se ayudan unos a los otros, enseñan unos a los otros, aprenden uno de los otros incluso se protegen unos a los otros cuando es necesario. Cuando un compañero se derrumba, los otros se meten, saben que algún día serán ellos los que necesiten protección.

Los profesionales no aguantan grandes listas de bugs. Una gran lista de bugs es una chapuza. Sistemas con miles de incidencias en la base de datos del gestor de incidencias son tragedias negligentes. De hecho, en muchos proyectos, la sola necesidad de un gestor de incidencias es un síntoma de irresponsabilidad. Solo los sistemas gigantescos deberían tener listas de incidencias tan largas que justifiquen el uso de un gestor.

Los profesionales no hacen mierda. Están orgullosos de su trabajo. Mantienen su código limpio, bien estructurado, y fácil de leer. Siguen estándares y buenas practicas. Jamas corren.
Imagina que te están operando a corazón abierto y puedes ver al médico. El médico tienen un deadline. Tiene que terminar antes de que el bypass dañe demasiadas células de tu sangre. ¿Como quieres que actué? ¿Quieres que actué como el típico desarrollador de software, corriendo y parcheando todo? ¿Quieres que diga "después arreglare esto" ? O prefieres que actué con disciplina , tomándose su tiempo y confiado en que su forma de actuar es la mejor. ¿Quieres mierda o quieres profesionalidad?

Los profesionales son responsables. Se responsabilizan de su carrera. Se responsabilizan de que su código funciona bien. Se responsabilizan de la calidad de su trabajo. No abandonan sus principios cuando se avecina la fecha de entrega. De hecho cuando la presión aumenta, los profesionales se aferran aún más fuerte a las disciplinas que saben que funcionan.

—Robert C. Martin (Uncle Bob)

Articulo Original: http://programmer.97things.oreilly.com/wiki/index.php/The_Professional_Programmer

Me gustaría añadir algo más, si tus condiciones contractuales ya no te gustan cambialas o busca otro trabajo.  Los profesionales no dejan de serlo nunca, eso no seria profesional.