archivo

Archivos diarios: abril 16, 2013

La teoría está muy bien, adquirir conocimientos a través de la experiencia de otros puede, sin duda, incrementar los tuyos porque por un lado te ofrecen otros puntos de vista con los que contrastar tus ideas y por otro porque es posible que encuentres la solución a problemas que todavía no has conseguido resolver o encuentres nuevas formas de enfocar determinadas situaciones.

He aprendido (y aprendo) mucho desde la teoría pero creo que he conseguido extraer más de la misma gracias a mi experiencia personal o, lo que es lo mismo, la práctica.

Para Pete McBreen: “Tan pronto como una persona deja de practicar, su maestría se desvanece”.

Y es que el mundo del desarrollo de software no se rige por leyes físicas, es cierto que hay un cuerpo de conocimiento, procesos, metodologías, buenas prácticas, arquitecturas, frameworks, lenguajes de programación, etc… pero no son más que instrumentos o herramientas. Puedes conocerlos, ser un experto, pero después hay que aplicarlos al mundo real, en proyectos con sus restricciones, su incertidumbre, con contextos que varían, donde interactúas con más personas que tendrán intereses u objetivos diferentes y que pueden pertenecer a tu departamento u organización o a otra, etc…

A lo anterior hay que sumar que el desarrollo de software (y las entidades en las que se o para las que se desarrolla) se encuentran en constante evolución, lo que tal vez funcionó en un momento del tiempo para contextos concretos es posible que ya no produzca tan buenos resultados.

El desarrollo de software es una disciplina complicada y que generalmente es poco generosa con las personas que día a día trabajan en ella.

Construir un producto, ladrillo a ladrillo, línea a línea (por mucho que nos podamos apoyar en frameworks, generadores de código y librerías) es una actividad compleja, sobre todo teniendo en cuenta que el desarrollo de software no es solo programación. Para ejecutar (programar) es necesario haber llegado antes a la determinación y conocimiento de qué es lo que se va a hacer y eso resulta complejo y puede ocasiones desgaste entre las partes sobre todo si los contextos no son favorables y/o las personas no ponen de su parte.

A los desarrolladores nos cuesta mucho trabajo desconectar cuando salimos del trabajo sobre todo cuando hay problemas y desgraciadamente nos encontramos con problemas con demasiada frecuencia.

Y dentro de trabajo si nos encontramos motivados o si el propio reto o problema nos motiva toda nuestra atención se dirigirá a la resolución del mismo independientemente de que la misma nos lleve días (o semanas). Cuando entramos en lo que los expertos en productividad llaman “la zona” parece que no existe el tiempo y de existir siempre nos va a aparecer que avanza demasiado deprisa (no es sencillo gestionar esto cuando tenemos otras tareas que también están pendientes de nuestra atención).

Creo que es interesante reflexionar sobre la siguiente cita de Orson Scott Card (traducción libre): “La programación (el desarrollo de software) es el gran juego. Te consume a ti, tu cuerpo y tu alma. Cuando estás atrapado en él, nada importa”.