Ouracademy

¿Qué distingue a un programador pragmático?

Como desarroladores, vamos atravesando desafios, lo que antes te parecia todo un reto, ahora lo percibes como una actividad mas simple, te das cuenta que ya has adquerido ciertas habilidades, ya sean técnicas o blandas, recordarás tu época cuando iniciabas en este oficio, y si comparas como ha cambiado tu forma de pensar referente a nuevos desafios, nuevas técnicas, nuevos clientes, nuevas presiones, veras que la experiencia te ha fortalecido. Pero si bien la experiencia nos va marcando el camino, también podemos obtenerla de otras fuentes como de libros o cursos, ¿por qué no aprender de programadores que tienen tanto tiempo en esto?, de seguro nos tienen mucho que enseñar. El libro The Pragmatic Programmer nos brinda un conjunto de enseñanzas, formas de pensamiento y tips; mejor dicho un enfoque para responder ante los desafios y problemas en el desarrollo de software.

Este post habla sobre lo que distingue a un programador pragmático, el cual es tratado en el primer capítulo del libro The Pragmatic Programmer. Y lo presentare en forma de preguntas y respuestas.

¿Qué distingue a los programadores pragmáticos?

Lo que les distingue es la forma de pensar y actuar ante los problemas y sus soluciones. Un pensamiento que va más allá del problema inmediato, es decir siempre teniendo en cuenta el panorama general porque solo asi se puede hacer compromisos inteligentes y tomar decisiones informadas. Mencionamos que esta distincion tambien refiere a la forma de actuar, esto abarca: asumir la responsabilidad de las acciones, no quedarse con los brazos cruzados al ver sus proyectos desmoronarse, manejar el cambio, esto es saber instigarlo y saber no ignorarlo, ser consciente del alcance del software, continuamente aprender y por ultimo, y capaz el más importante es saber comunicar, ya que nunca estamos solos, hay que saber comunicar problemas y comunicar soluciones.

Pero para entenderlo bien, ¿A que se refiere asumir la responsabilidad de las acciones?

Hay una gran verdad, incluso en el mejor de los proyectos, donde se realizen pruebas exhaustivas, escriban buena documentación y haya una automatización sólida, las cosas pueden salir mal. Ya que puede que las entregas se atrasen,surgan problemas técnicos imprevistos, etc. Estas cosas suceden y debemos tratar de lidiar con ellas de la manera más profesional posible, ser responsables, esto significa ser honesto y directo. Podemos estar orgullosos de nuestras habilidades, pero debemos ser honestos sobre nuestras deficiencias, nuestra ignorancia y nuestros errores.

Sé que no debo quedarme con los brazos cruzados, entonces ¿qué hacer?

Como mencionamos anteriormente, las cosas pueden salir mal, cuando el desorden aumenta en el software, es llamado por los programadores como "decadencia del software"; y toda decadencia tiene una raíz, el libro menciona la teoria de la ventana rota, el que menciona que un edificio inicia su decadencia con una ventana rota, luego viene una puerta rota, y asi va camino a convertirse en edificio abandonado, entonces no dejemos "ventanas rotas" (malos diseños, decisiones incorrectas o código deficiente) sin reparar. Hay que tomar alguna medida para evitar más daño y para mostrar que estás al tanto de la situación.

Y cómo manejo el cambio

El libro nos da un gran tip "Se un catalizador para el cambio". A la mayoría de las personas les resulta difícil aceptar el cambio, y si es necesario, tu como programador puedes desarrollador poco a poco ese cambio, una vez que tengas algo concreto, muéstrale a la gente, luego diran "por supuesto, sería mejor si añadiéramos ...". Siéntese y espere a que el mismo equipo empiece a colaborar. A las personas les resulta más fácil unirse a un éxito continuo. Muéstrales un vistazo del futuro y conseguirás que se reúnan, asi con esto ya estas instigando el cambio; pero tambien hay cambios que suceden y uno no lo percibe hasta que ya no hay vuelta atras, podria ser negativo, digamos que sin darnos cuenta dejamos ventanas rotas, o podria ser positivo, que hagas cambios graduales imperceptibles por el equipo hasta que cuando lo perciban solo les quede seguir en ese camino.

Siempre aprender

El conocimiento y la experiencia son los activos profesionales más importantes, pero desafortunadamente estos activos expiran. Recuerda que tu conocimiento se vuelve obsoleto a medida que se desarrollan nuevas técnicas, lenguajes y entornos, y a medida que disminuye el valor de tu conocimiento, también disminuye tu valor para tu empresa o cliente. Y queremos evitar eso, por lo que debemos: "Invertir regularmente en nuestra cartera de conocimientos"

¿Cómo comunicar?

Como programadores trabajamos diariamente con nuestros equipos en defender ideas, modificar prácticas existentes y sugerir otras nuevas, gran parte de nuestro día lo pasamos comunicándonos, entonces viene la pregunta ¿hacemos esto bien?, la respuesta es capaz no lo sé, pero lo que si sé es que puedo hacerlo mejor, este libro te da tips para lograr una comunicacion efectiva: debes saber lo que quieres decir, conoce a tu audiencia, elige un momento, elige un estilo, haz que se vea bien (por ejemplo, una diapositiva interactiva), involucra a tu audiencia, escucha a tu audiencia y siempre responde (ya sea preguntas, emails, etc).

Bueno, espero haber plasmado lo que implica ser un programador pragmático, y sobre todo espero que les haya causado curiosidad para que se animen a leer el libro.

Si te fue útil este artículo, por favor compártelo. Apreciamos los comentarios y el aliento.
Compartelo por:

Quiza te pueda interesar...

String Interpolation

que es string interpolation? con ejemplos en javascript y python

Que es un closure?

que es un closure? con ejemplos en javascript y ruby

Explicando la funcion map

que es map? con ejemplos en javascript y python