🐓 El día a día de un PROGRAMADOR

Es lunes por la mañana, eres desarrollador de software y te toca volver al trabajo.

Te cuento cómo es el día a día de un programador.

Categorías
Sector IT y empleo

La rutina diaria de un desarrollador de software

Es lunes por la mañana, está saliendo el sol y, como todas las mañanas, los pájaros cantan los últimos hits de moda desde los árboles. Por desgracia, para algunos de nosotros este nuevo amanecer significa una vuelta más en la despiadada rueda del mundo laboral.

YouTube player

Los lunes por la mañana, los programadores como tú y yo volvemos a la rutina de trabajo después de un fin de semana alejado de los ordenadores.

Ya que no hay forma de escapar de la jornada laboral de 8h, ¿por qué no intentamos hacerla lo más llevadera posible para disfrutar de este trabajo que tanto nos gusta y tener tiempo para otros aspectos de nuestra vida?

Soy Charlie Brown, desarrollador de software, y quiero mostraros cómo organizo mi tiempo en un día laboral, las tareas que realizo en cada hora como programador y cuáles son mis sensaciones después de años esclavizado por la chamba.

¡Comenzamos!

(06:00 – 09:00) La hora de Carlos

Cada persona es un mundo y conozco gente que asegura que es más productiva por las noches, pero la verdad es que me cuesta creerlo. Os explico.

El día y la noche

La noche tiene una connotación negativa, en mi opinión, merecida. Si tienes ansiedad, miedo a la muerte o incluso fiebre, vas a notar los picos de malestar cuando anochezca y vayas a dormir. Además, en muchos países ni siquiera es seguro salir a la calle cuando cae la noche porque es cuando se disparan los delitos.

Un personaje llorando en la cama.

Sin embargo, cuando empieza un nuevo día, todos los problemas que tenías al acostarte han desaparecido, has recargado las pilas durmiendo y si te quedaste bloqueado el día anterior durante horas programando una funcionalidad, tienes una nueva oportunidad de encontrar un punto de vista diferente con el que solucionar el bloqueo.

Vaca y pollo bailando.

En general, me siento vivo y estoy más feliz por la mañana, y en ese estado mi cabeza funciona mejor para hacer cualquier cosa.

Sé tu prioridad

Creo que es razonable que en mi vida yo sea mi prioridad. Así que, aunque no lo he hecho siempre, últimamente desde que me levanto a las 06:00 hasta las 09:00, me dedico a mí mismo las tres horas del día en las que más energía tengo.

Johnny Bravo bailando.

En esta parte de la mañana, dependiendo del día de la semana que sea, hago una de las siguientes dos actividades:

  • Los lunes, miércoles y viernes, nada más levantarme voy al gimnasio y hago una rutina de cuerpo completo de musculación, de cuatro series de doce repeticiones (4×12) por grupo muscular, que me lleva casi dos horas. De vuelta a casa, paso por el supermercado a comprar lo que me falte y me ducho antes de empezar a trabajar.
  • Los martes y jueves, aprovecho estas tres horas de lucidez para trabajar, con una sonrisa, en mis proyectos personales, creación de contenido o, si voy muy ajustado con el plazo del proyecto en el que estoy trabajando en la empresa, sí que le doy prioridad e incorporo este tiempo a la siguiente franja del día de la que os voy a hablar en breves. 

En cualquiera de los dos casos, desayuno un batido de proteínas con agua y dos cucharadas de café para empezar el día, ya que no suelo tener hambre a esas horas.

(09:00 – 09:15) Preparativos de trabajo

Antes de empezar a programar, me gusta aclarar, en no más de quince minutos, los asuntos pendientes de los días anteriores. Estos asuntos son:

  • Echar un vistazo al calendario para recordar las reuniones de ese día.
  • Comprobar la bandeja de entrada del email de la empresa para ver si tengo algún correo, o mensaje en Slack en su defecto, de algún compañero al que deba responder.
  • Revisar las pull requests que me han asignado mis compañeros para alguno de los proyectos de la empresa. Las pull requests son cambios en un repositorio de código, para añadir una nueva funcionalidad o arreglar un error, que uno de los programadores crea y otro tiene que revisar. Aquí yo las reviso, pero cuando programo soy el que las crea.
  • Y por último, refresco las tareas del proyecto en mi cabeza abriendo el software de gestión de tareas del proyecto, nosotros usamos Jira, para saber en qué estado están las tareas y qué es lo que voy a programar.

Como podéis observar en estos preliminares a la programación, hace años que dejé de usar la memoria para trabajar y prefiero gastar quince minutos en revisar todo por escrito antes que intentar hacerlo de memoria, olvidar algo por el camino y terminar con la cabeza frita por algo innecesario.

El setup de un programador

Y casi llegamos al código, pero dejadme que os hable brevemente de mi espacio de trabajo y de las herramientas que empleo a diario.

El espacio de trabajo

Hasta hace un par de años no había tenido dolores de espalda, pero recuerdo perfectamente el día que, después de un fin de semana de estar demasiadas horas sentado, me dió un pinchazo en las lumbares y desde entonces ya siempre tengo molestias después de estar unas horas sentado.

Columna vertebral de Homer Simpson.

Así que llevo un año ya utilizando un standing desk para alternar entre tiempo de pie y tiempo sentado y la verdad es que me funciona para aliviar la espalda. Es verdad que estar de pie tiene otras molestias, pero por eso es importante cambiar entre uno y otro cada dos o tres horas.

Para cuando estoy sentado utilizo una silla Markus de Ikea. Está bastante bien de precio y es cómoda, pero, según mi experiencia, no va a haber una silla que te cambie la vida. Tendrás que combinarlo con una rutina de deporte, una buena postura y descansos cada pocas horas.

¿Qué ordenador utilizo para programar?

El ordenador de un programador es su herramienta de trabajo principal, pero tampoco hay que tener un cohete de la NASA para escribir código.

MacBook PRO 2022 de Apple con chip M2.

Yo utilizo un MacBook Pro de 2022, con el chip M2, para programar. La primera vez que utilicé un Mac fue para desarrollar aplicaciones móviles en iOS y desde ese momento me enamoré de los productos de Apple. Aunque también tengo un ordenador Windows por si me toca recurrir a la vieja confiable.

Lo que más me gusta de este ordenador es sin duda la duración de la batería, que puede durar prácticamente un día entero de uso.

En cuanto a accesorios, tengo un humilde monitor extra de 23,8 pulgadas de Lenovo que me costó ciento y pocos euros. Ni siquiera encuentro una diferencia importante en mi productividad al usar un ratón o un teclado externo al del Mac, así que prefiero trabajar sin maquillaje. Al natural.

El entorno de desarrollo integrado (IDE)

Para terminar con el tour por mi setup, tenemos el entorno de desarrollo integrado o IDE.

Extensiones de Visual Studio Code.

Actualmente tengo un puesto de programador frontend, así que trabajo con HTML, CSS y JavaScript. Normalmente con React y Angular, pero después de tantos años, todos los frameworks me resultan muy parecidos y me cuesta poco tiempo aprender a desarrollar con ellos.

Para trabajar con estas tecnologías, el mejor entorno de desarrollo que puedes utilizar es Visual Studio Code. Y te voy a dar unas cuantas razones por las que lo pienso:

  • Visual Code Studio es una herramienta de Microsoft. Así que las actualizaciones para arreglar errores y añadir funcionalidades son más frecuentes que en cualquier otro IDE.
  • Es el entorno de desarrollo más utilizado y con mayor comunidad, por lo que también es el que más extensiones disponibles tiene.
  • Y por último, es una herramienta gratuita.

Visual Code Studio es ya un estándar en el mundillo del desarrollo web. No vale la pena que te compliques la vida utilizando herramientas más desconocidas para ser diferente al resto.

(09:15 – 12:00) Programación – Round 1

Con la tarea que tengo que programar en mente, enciendo los headphones, elijo una lista de reproducción de metal o rock en Spotify y empiezo a tocar el teclado.

Francotirador americano.

En esta primera ronda de programación de tres horas estoy a tope de energía, así que es la franja del día en la que más avances hago.

Implementando un diseño

El trabajo de un desarrollador frontend es construir la parte visible de un sitio web, así que todo lo que hacemos gira en torno a un diseño con la apariencia final de la página que queremos construir.

Una de las herramientas más utilizadas para compartir la maquetación de una web o aplicación en tiempo real entre el departamento de diseño y los programadores es Figma.

Diseño de interfaces de usuario en Figma.

La gente de diseño prepara, por ejemplo, la página de inicio de sesión en Figma y cuando está lista yo la paso a código funcional. Aquí es donde cobra sentido para mí tener dos monitores, porque puedo tener en uno el Visual Studio Code para escribir el código y en el otro el navegador web con el diseño final en una pestaña y la previsualización de lo que voy haciendo en otra.

Cuando el diseño está OK:

  1. Añado la funcionalidad a los botones y demás elementos interactivos de la web para conectarlo al backend.
  2. Creo una pull request en GitHub con el identificador de la tarea.
  3. Actualizo el estado de la tarea en Jira para que el resto del equipo pueda saber cómo avanza el proyecto.

Con esto ya tendríamos la página de inicio de sesión terminada. Así que elegimos la siguiente tarea, la que sea más prioritaria, y volvemos a realizar este ciclo hasta las 12:00 que es cuando tomaremos el primer descanso.

(12:00 – 14:00) Programación – Round 2

Después de desconectar cinco o diez minutos suena la campana con la que inicia la ronda dos de programación.

En este segundo asalto, el nivel de focus ha disminuido considerablemente, así que, mientras sigo resolviendo tareas de programación, aprovecho para preguntar al resto del equipo dudas que tenga sobre el diseño o la API del backend a la que tengo que conectar el frontend.

Scrum, daily y project manager

A la 13:30, celebramos la famosa reunión daily, de no más de cinco minutos, para hacer un resumen al project manager de cómo avanzamos con las tareas, si tenemos problemas para resolver alguna de ellas o cualquier otro motivo que pueda desviar la fecha de entrega del proyecto. Pero hablemos un poco más sobre el project manager.

Project Manager micromanaging.

El project manager es la figura que se encarga de que el proyecto, que en esta metáfora es un barco, llegue a buen puerto y el cliente quede satisfecho con la fecha y el estado en el que se le entrega el proyecto.

La figura del project manager puede parecer, en ocasiones, una alargada sombra que persigue a los programadores para investigar qué está haciendo cada uno de ellos. Pero esto, según mi experiencia, es una percepción que tienen los programadores cuando empiezan a retrasarse con las tareas, porque bajan el ritmo de trabajo o la tarea en cuestión tenía un tiempo de desarrollo estimado demasiado bajo.

El trabajo del project manager es garantizar que el proyecto avanza sin problemas y para avisar de que vas a retrasarte tienes las dailys. Así que sé transparente con lo que estás haciendo y encontrarás un amigo en tu project manager.

Woody y Buzz Lightyear amigos.

Después de esta mini reunión, para variar, seguiremos programando hasta que llegue la hora de comer, de 14:00 a 15:00.

(15:00 – 18:00) Programación – Round 3

Si la vida fuera un videojuego, trabajar justo después de comer sería el jefe final.

Jefe de Dark Souls.

Con el estómago lleno, todavía tenemos que realizar una tercera ronda de programación de tres horas. Así que es un buen momento de elevar tu escritorio y ponerte de pie, porque si te pones demasiado cómodo es probable que te quedes dormido.

La característica clave para completar la ronda tres con éxito es tu profesionalidad. Lo que no termines hoy, sí o sí vas a tener que acabarlo al día siguiente con prisas y estresado.

Prepárate un café, elige una playlist que te motive y haz ese último esfuerzo para terminar la jornada laboral sin asuntos pendientes.

Mañana será otro día

Al terminar el trabajo, después de doce horas siendo productivo, lo único que me apetece es fusionarme con el sofá y ver alguna serie hasta la hora de la cena. Ahora mismo estoy enganchado a Dexter, aunque la serie da un bajón terrible cuando llega la tercera temporada.

Primer plano de Dexter.

Y sí, lo confirmo, no tengo vida social entre semana. Desde el lunes hasta el viernes, me funciona mejor entrar en modo focus y convertirme en un militar coreano, que quedar de risas con los amigos.

Debo ser uno de los pocos programadores que programa estando de teletrabajo, porque el resto de vídeos que he visto de esta temática eran básicamente cocinar, comer dando asco y acariciar gatos.

En cualquier caso, soy Carlos Sala, desarrollador de software y ¡nos vemos pronto!

Carlos Sala Samper

Handmade software.