noviembre 09, 2009

Antipatrones: “No tengo tiempo…”

Astronomical Clock by simpologist.Desde hace muchos años (no quiero ni ponerme a contar cuántos) participo en muchas listas de correo dedicadas a distintas ramas del desarrollo de software y temas relacionados.

A lo largo de todos estos años, leí muchísimas veces a alguien lamentándose de no tener tiempo para mantenerse al día con algún tema o para dedicar a otras actividades de mejora profesional (también lo he escuchado en muchas conversaciones).

No puedo comprender estos comentarios: "más cuándo uno es padre, no tenemos tiempo para ver lo último o la tendencia tecnológica", respuesta de un amigo, en una de estas listas, al comentario de otro colega comentando su falta de tiempo.

Como contesté a la lista, soy padre desde hace 13 años, y desde hace 8, padre de dos mujercitas. Pero no por eso  dejé de estar relativamente al día respecto a las tendencias tecnológicas. Y no tengo nada de especial, salvo las ganas y la pasión por lo que hago, por eso no compro el argumento de la falta de tiempo. Muchos de los lectores de este blog me conocen personalmente y hasta han trabajado conmigo. Todos saben que estamos en igualdad de condiciones en la mayor parte de las cosas. No tengo formación académica en sistemas. Aprendí todo trabajando, desde mis inicios haciendo aplicaciones para empresas minúsculas.

Me preocupa la excusa de "no tengo tiempo" porque es un antipatrón que veo recurrentemente en nuestra industria. Muchas veces no tenemos tiempo para:

  • refactorizar el código
  • escribir los tests
  • automatizar los procesos
  • aumentar nuestra caja de herramientas
  • capacitarnos
  • leer y estudiar sobre nuevas tecnologías (no digo últimas, sino nuevas para nosotros)

El problema es que no tenemos tiempo porque:

  • mantener nuestro código es complejo
  • cuando tocamos algo se rompe en otro lado
  • tenemos que hacer un montón de tareas largas y tediosas
  • tenemos que hacer cosas que nos huele que podríamos hacer más eficientemente
  • alguien nos pidió algo que no sabemos cómo hacer y tenemos que probar y probar
  • necesitamos resolver algo y tenemos que construir montones de cosas desde cero

Si miran ambas listas, verán que las cosas que no hacemos corresponden una por una con las cosas que nos quitan tiempo.

Elegimos una profesión que está basada en nuestra capacidad intelectual, y por tanto, necesitamos ejercitarla y mejorarla constantemente. No es una carrera donde podamos destacarnos (y en muchos casos, ni siquiera mantenernos) sin un ajuste periódico. Por supuesto, cada uno tiene su realidad, sus necesidades y entusiasmo, pero no podemos dejar de invertir una parte considerable de nuestro esfuerzo en mantenernos al día.

Como decía un conocido el otro día: “¿dejarías que te opere un médico que hace años que no hace ningún curso de actualización?” Y eso que la medicina tiene un ritmo bastante más lento de cambio.

Espero que se entienda esto como lo que es: un intento sincero de alentar a todos a darle para adelante y crecer como profesionales. Obviamente requiere esfuerzo, pero me parece que vale la pena en una industria donde es obvio que la innovación y la mejora hacen la diferencia.

Les dejo como adicional este antiquísimo artículo de Peter Norvig (es del 2001):

Aprende a programar en diez años (versión en español de Carlos Rueda)

Teach yourself programming in Ten Years (original en inglés)

9 comentarios:

Carlos Peix dijo...

¿Donde firmo?

Luis Vinci dijo...
Este comentario ha sido eliminado por el autor.
Luis Vinci dijo...

Hola Martín, va un humilde granito de arena.
Yo pertenezco a una empresa que desarrolla un complejo soft para empresas de transporte de carga, alcanza a todos los sectores de la empresa con más de 15 módulos, está desarrollado en VFP (actualmente VFP9) y lleva ya 12 años de desarrollo con un equipo de 6 programadores promedio.
En estos años muchos hechos han afectado directa o indirectamente la calidad del desarrollo (crisis empresa, crisis Argentina, crisis mundial, muchos cambios de personal, etc.).
En resumen muchos años de desarrollo, con mucho cambio de personal e incluso cambios de concepción (nació siendo un producto a medida y terminó siendo un standard).
En el año 2004 nos propusimos migrar a .NET, en el año 2006 lo contratamos a Martín para que nos ayude a lograrlo. Lo que iba a ser un cambio directo a otra herramienta se transformo (gracias Martín), en un cambio de metodología primero (XP – Scrum) para terminar en un profundo cambio de cultura (sector comercial incluido por supuesto, si, si, le cambiamos la cabeza a los vendedores y entendieron la importancia de la calidad). Hoy seguimos en VFP, pero no parece. Trabajamos de a pares, hacemos TDD, refarctorizamos, sprint de 15 días, compilación en 10 min, clases no visuales, código autodocumentado, métodos con un único objetivo, código seguro, etc. (muchos etc.).
Durante estos últimos años probamos distintos métodos para migrar (mejorar el código para luego “traducirlo” a C#, separar la capa de datos para ir a SQL Server –trabajamos con .dbf nativas-, etc.).
Hoy sabemos que vamos a reescribir y rediseñar nuestra aplicación desde cero y lo que es mejor, sabemos porque lo vamos a hacer y hemos logrado vencer buena parte de nuestros vicios (como programadores), antes de migrar con ellos a otra herramienta.
Para todos aquellos que creen que no se puede yo les garantizo que si y que vale la pena emprender el camino. El viaje es largo pero los frutos se ven a poco de comenzar y es muy motivante para todos los que participan (incluso algunos clientes se entusiasman).
Gracias Martín por tus aportes a la comunidad de desarrolladores.

Israel Antezana R. dijo...

Excelente post Martin, no puedo estar más de acuerdo con tus palabras.

Jose Marcenaro dijo...

No hay defensa posible contra estos argumentos :)

Buenísimo, Martín.

beyondnet dijo...

Hola Martín, yo creo que todo lo que tu dices se cumple, siempre y cuando trabajes de forma independiente.

Saludos.

AcP dijo...

Totalmente de acuerdo. Pero, si bien en algunos casos (creo que los menos, por las mismas razones que comentas en este post) la falta de tiempo es real, estoy bastante convencido de que la mayoría de las veces esas excusas (fáciles y siempre a mano, ya que el tiempo no le sobra a nadie) son utilizadas para ocultar el problema de fondo: desmotivación, falta de interés.

Para la mayoría de las personas es difícil admitir que está atravesando un momento en el que priman otros intereses o que simplemente ha perdido o no tiene la pasión necesaria por el trabajo que hace para dar una cuota de energía extra sólo por diversión, por el placer de hacerlo.

Saludos,
A.

Germán Arduino dijo...

Hola Martín:

Muy bueno el artículo. Yo tengo orígenes parecidos a los tuyos, sin una carrera formal.

Creo que lo que falta en mucha gente que esgrime esos argumentos es una sola cosa: la vocación. Veo a diario ingenieros/licenciados/etc que no están interesados en la profesión. Sin interés no es posible avanzar.

Saludos!

Ingrid dijo...

Hola Martín, muy buen artículo! explica muy claro el círculo vicioso de "la falta de tiempo". Y sí, coincido que si dejás de actualizarte en IT, tenés que dedicarte a otra cosa que sí estés motivado para capacitarte constantemente (es lo que yo hice : ).

Gracias y saludos, Ingrid