archivo

Archivo de la etiqueta: práctica

Tener un gran conocimiento teórico siempre resulta interesante porque te permite una capacidad de análisis basada en las diferentes percepciones de personas que probablemente han tenido una gran experiencia en la materia.

No obstante, el verdadero conocimiento es la aplicación real del mismo en la práctica. Algo que no resulta nada sencillo porque siempre aparecen multitud de variables no recogidas en los libros y que tendrás que gestionar.

No estamos libres de equivocarnos, es más, los errores nos permiten crecer, pero la probabilidad de error cuando estamos trabajando en las trincheras es mayor cuanto más te separe la teoría de la práctica.

La experiencia (real) es la que termina enriqueciendo los conocimientos teóricos.

Ya lo decía Aristóteles: “La inteligencia no consiste sólo en el conocimiento; sino también en la destreza de aplicar los conocimientos en la práctica”.

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.

No hace mucho publiqué un artículo en el que analizaba la siguiente cita de Dwight David Eisenhower: “En la preparación para la batalla siempre he encontrado que los planes son inútiles, pero la planificación es indispensable”.

Hay otra cita que encontré hace poco que va en la misma línea. En este caso es del mariscal de campo alemán Helmuth von Moltke the Elder, considerado por muchos como uno de los mejores estrategas militares del siglo XIX: “Ningún plan sobrevive al contacto con el enemigo”.

La realidad sobrepasa a la teoría y la forma y el tiempo en que nos adaptamos a ese cambio que resulta necesario para realizar ese ajuste condicionará, tanto al momento presente como al resto del proyecto. Las condiciones de partida que pensamos que van a existir después no van a ser tales por muy consolidadas creamos que van a ser por ese motivo hay que tener mucho cuidado en definir planes que condicionen nuestra capacidad de adaptación.

Eric Steven Raymond es un divulgador y activista del movimiento open source, pero su singular forma de tratar la materia le ha convertido en un personaje controvertido que ha mantenido o mantiene disputas con líderes destacados del sector como Richard Stallman o con comunidades como la de los desarrolladores de Linux que no lo reconocen como uno de los desarrolladores principales de este sistema operativo, pese a que él se considera como tal.

Es bastante polémico porque no se suele callar lo que piensa, lo que le llevó entre otras cosas a tener que abandonar su blog un par de años. En cualquier caso, independientemente de la existencia de partidarios y detractores, es una persona con mucha experiencia en el sector (tanto como desarrollador, como divulgador y activista) y que sus opiniones en la materia merecen ser por lo menos analizadas antes de considerarlas adecuadas o no.

Entre sus citas más destacadas nos encontramos con la siguiente: “La formación en informática no puede convertir a nadie en experto programador, de la misma forma que estudiar pinceles y pigmentos puede hacer a alguien un experto pintor”.

Estoy totalmente de acuerdo. Tener una buena base formativa es importante, pero realmente lo que después marca la diferencia son los conocimientos y experiencias que se adquieren en el día a día y que no se suelen enseñar en ámbitos académicos. En mi caso concreto y como ya he contado anteriormente, el salto de la universidad al mundo laboral lo noté muchísimo, tal vez fue por el contexto o circunstancias de mis primeras etapas laborales.

Esto lo he hablado con bastante gente y hay personas que sí están de acuerdo con mi afirmación y otras que no notaron en demasía el cambio, no obstante en cualquiera de los dos casos se coincide que independientemente del tamaño del escalón es la realidad del día a día la que va colocando a cada uno en su sitio, en función de sus habilidades, de sus objetivos personales, de sus ganas, de su actual puesto de trabajo, etc…

La teoría está muy bien para establecer marcos de trabajo, pero después la buena ejecución de las tareas requiere de conocimientos y experiencias que permitan adaptarte a las circunstancias particulares de cada proyecto.

Otro aspecto a tener en cuenta es que el mundo académico es muy individualista ya que los objetivos los consigue cada uno por su cuenta (independientemente de la existencia de prácticas donde se trabaje en grupo), mientras que en el ámbito laboral hay que trabajar en equipo y con otras personas (clientes, usuarios, etc…) y eso requiere de otro tipo de habilidades.