4 reglas para programar bien bajo presión

12/07/2019Artículo original

He decidido escribir este artículo tras escuchar una conversación sobre los problemas más comunes en los departamentos de programación. Tras varios años trabajando con programadores, en mi empresa hemos colgado por todas las paredes de la oficina unos letreros con el siguiente mensaje: “Underpromise and overdeliver” que viene a ser algo así como comprométete lo justo y luego haz más de lo que esperan de ti.

Según la definición de McGraw-Hill, “under promise and overdeliver” es una estrategia de prestación de servicios en la que los proveedores de los mismos se esfuerzan por ofrecer un excelente servicio y una gran satisfacción al cliente, haciendo más de lo que dicen que van a hacer por el cliente o superando las expectativas del mismo. Si trabajas en una empresa de programación, tu cliente es el jefe de desarrollo y tus demás superiores.

Por otro lado, en muchos sentidos, programar es casi como desactivar una bomba en un avión cuyo temporizador está en cuenta atrás llegando al segundo cero. Imagínate que hay un artillero que está intentando desactivar la bomba para salvar vidas, trabajando bajo muchísima tensión, pero con un plazo límite llega a su fin inexorablemente. La situación es de una presión muy intensa.

Si estás como pasajero en el avión ¿cómo te gustaría que se comportase el artillero? ¿Querrías que se mostrase tranquilo? ¿Preferirías que diera órdenes claras y precisas a las personas que lo apoyan? ¿Te gustaría que mostrase destreza y maña manipulando los cables?

O por el contrario, ¿prefieres que empiece a sudar y a gesticular histriónicamente? ¿Te gustaría que se desmoronara ante la presión y se dedicase a hacer cosas sin sentido? ¿Te inspiraría confianza un artillero así?

Un buen programador no se vuelve muy bueno simplemente por escribir un código impresionante, hay muchas más cosas. Un buen desarrollador se convierte en uno buenísimo porque se muestra tranquilo y resolutivo en situaciones de presión. A medida que aumenta la presión, se aísla del entorno, se ciñe a su formación y a sus competencias, sabiendo que son la mejor manera de cumplir con los plazos y los objetivos que se le exigen.

En resumen, hace y continúa haciendo lo que debe hacerse, independientemente de los plazos que se ciernen sobre él.

Pero esto es muy fácil de decir y no es tan fácil de hacer. En el día a día en la oficina surgen imprevistos, cambios de requerimientos, improvisaciones, etc. El reto consiste en mantenerse lo suficientemente tranquilo como para gestionar la presión del momento, de modo que se pueda tener éxito de cara a un plazo que asoma las zarpas peligrosamente.

  ⚡ Cómo funciona el Machine Learning, explicado para programadores en 3 minutos

A continuación se detallan algunas de las formas en que los buenos programadores manejan las situaciones de presión.

1.- No siempre cumplas con los compromisos que TÚ no hayas asumido

“Como programadores muchas veces pensamos que podemos con todo. Hacemos un análisis racional de lo que se nos pide, estimamos el tiempo que nos puede llevar y nos comprometemos en tenerlo listo para una fecha determinada” me comenta un veterano programador siempre que sale este tema.

“Lo que nunca tenemos en cuenta son otros factores, ajenos a nuestro trabajo y que tienen más que ver con tus compañeros programadores, si se trabaja en cascada, otros departamentos, tus superiores… Y ahí empiezan los problemas y los retrasos que en última instancia repercuten siempre en nosotros ya que somos el último eslabón en la cadena (o el primero según se mire)” explica.

Como programador, muchas veces solo puedes prometer cumplir las tareas que tú hayas asumido, pero no es bueno desvivirse por los compromisos asumidos por terceros y sobre los que no has sido jamás consultado. Eso es responsabilidad de la empresa y una lección que tienes que estar dispuesto a dar siempre y cuando cumplas con tu parte.

Es muy importante que la empresa entienda la diferencia entre los compromisos adquiridos por ti y aquellos que han adquirido en tu nombre.

Un profesional siempre ayudará a la empresa a encontrar la manera de alcanzar sus objetivos. Sin embargo, un buen profesional no tiene por qué aceptar todos los compromisos asumidos por la empresa. Al final, si no podemos encontrar la manera de cumplir las expectativas que la empresa generaba, entonces las personas que las generaron deben asumir la responsabilidad.

Evidentemente, no es fácil. La presión se propaga a todo el mundo cuando no se cumplen los compromisos. Pero al menos si te has comportado profesionalmente puedes mantener la cabeza bien alta y mantenerte firme. A la larga es lo mejor para ti, para tu empresa y para los clientes.

Finalmente decir que si tu empresa no entiende tu forma de proceder, lo mejor quizás es que busques trabajo en otro sitio puesto que esa política aboca a la quiebra empresarial tarde o temprano, y no merece la pena estar a disgusto en proyectos que no son sostenibles si eres un trabajador por cuenta ajena.

2.- Nunca tomes atajos

Para ser un buen programador en momentos de mucha presión lo mejor que puedes hacer es programar como si no pasara nada. Es decir, no hacer nada distinto a cuando se programa en tiempos de tranquilidad.

  Diferentes configuraciones en Visual Studio para generar diferentes ediciones de una aplicación

A los buenos programadores se les identifica en los momentos de crisis. Si cambias notablemente tu forma de trabajar cuando hay mucha presión puede ser una mala señal. Por ejemplo, si en momentos normales haces desarrollo guiado por pruebas y lo abandonas cuando el tiempo apremia, entonces es que tampoco confías mucho en esa práctica.

Si mantienes tu código limpio y ordenado en épocas de normalidad, y cuando vienen mal dadas lo empiezas a descuidar y dejas todo hecho un desaguisado será porque no te ayuda en nada ni te ralentiza lo más mínimo mantenerlo limpio y ordenado ¿no?

Lo importante aquí es no descuidar los detalles. Nunca escatimes en hacer ese esfuerzo extra, esos pocos minutos adicionales, esa dedicación al máximo que puedes hacer. No importa lo que piensen los demás, pero sí es de suma importancia lo que pienses de ti y de tu trabajo. Hay que tener en cuenta que los atajos te van a perseguir, y tarde o temprano se vuelven en tu contra.

Los programadores experimentados nunca siguen el camino más fácil ni producen un código engorroso con el fin avanzar rápidamente. Hacen el trabajo lo mejor que pueden y entregan un código lo más limpio posible, aislándose del entorno y de los agobios.

3.- Comparte información constantemente

Se trata de compartir información clara y precisa, y con honestidad. Las personas que trabajan contigo en la empresa son merecedoras de conocer los hechos, de conocer la realidad de las cosas. No intentes contarles la mitad de la historia. No intentes tapar la realidad.

Si tienes alguna información importante para compartir con tu jefe, tus compañeros, tus proveedores, incluso si no son buenas noticias, no te demores. Si aplazas el momento de dar información útil hasta que ya sea demasiado tarde para actuar, entonces tus mensajes nunca serán bien recibidos, tanto si son cosas buenas o cosas malas porque te habrás creado una reputación que luego es muy difícil de limpiar.

En casi todos los escenarios imaginables, es conveniente una comunicación lo más rápida posible, permitiendo que todos los involucrados entiendan y digieran la información, y que formulen una reacción apropiada y respondan en consecuencia. Si se trata de malas noticias, una alerta temprana puede permitir elaborar un plan para intentar minimizar el daño.

Por encima de todo, mantén la profesionalidad, la educación, la franqueza y la claridad, características que harán que tu comunicación vaya en la dirección adecuada a lo largo del tiempo que estés en tu lugar de trabajo y con una reputación respetable.

  Cómo crear tu propia skill para Alexa paso a paso

4.- Aprende a pedir ayuda cuando las cosas se ponen feas

Búscate un socio, un cómplice dentro del equipo, que esté dispuesto a echarte una mano en momentos de dificultad, y haz lo mismo tú con él. Aplica el principio de “hoy por ti, mañana por mí”.

La programación a pares os ayudará a hacer las cosas en menos tiempo y con menos errores, y es una motivación añadida, ya que el simple hecho de comprometerte a colaborar te ayudará a centrarte en las tareas y a no perder el tiempo.

La programación a pares implica tener a otra persona viendo lo que haces todo el tiempo. Programando así las personas son menos propensas a distraerse por las interrupciones (por ejemplo, revisar el correo electrónico, divagar y procrastinar en tareas no relacionadas, o a mirar fijamente a la pantalla sin hacer nada). Incluso se pueden eliminar las tareas secundarias relacionadas. La persona en el teclado puede concentrarse en simplemente golpear el código, mientras que el compañero puede preocuparse por la legibilidad, la estabilidad, la robustez y otras cuestiones de globales relacionadas con el código. El hecho de trabajar con una pareja proporciona una presión positiva para mantenerse en la tarea y no perder foco.

Lo normal es que el proceso de adaptación de programar solo a programar en parejas no sea un camino de rosas. Es como cuando bebes cerveza o café por primera vez, no te gusta porque no estás acostumbrado a esos sabores tan característicos, pero a medida que bebes más, te termina gustando.

El desarrollo en equipo además crea una cultura de colaboración y reconocimiento. La próxima vez que veas a alguien que se encuentre bajo presión, ofrécete a formar pareja, y muéstrales el camino para salir adelante.

Nota: imagen de cabecera “Pressure meter” poralex.ch con licencia CC BY-SA 2.0.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad