8 tácticas eficaces para mejorar la productividad de los desarrolladores
¿Qué haces para mejorar la productividad de los desarrolladores?
Cuando era un niño de los noventa, recuerdo claramente a mi padre, uno de los pioneros de la programación de Yugoslavia, que miraba día y noche la pantalla de su Macintosh LC y murmuraba en su barba un montón de palabras raras que no podía entender.
Hoy me doy cuenta de que no era un loco ni un lingüista, sino simplemente un tipo que luchaba por hacer su trabajo sin la ayuda de Internet, blogs, vlogs o incluso libros en su lengua materna. Diablos, no había mucha gente en todo el país con la que pudiera hablar e intercambiar ideas sobre programación, resolución de problemas, corrección de errores y, bueno, quedarse atascado y postergar las cosas.
Gracias a los dioses (y a los genios de la tecnología), ahora tenemos todo lo anterior, por lo que decidí reunir consejos y trucos de tantos programadores y desarrolladores que pudiera encontrar en mi entorno inmediato y en Internet, en un práctico «Cómo hacerlo» para todos los programadores atrapados en un ciclo interminable de resolución de problemas, noches de insomnio y luchando contra el mono de la gratificación instantánea.
1. Diseñe antes de implementar
A través de una conversación con mis amigos, resultó que es un error común entre los principiantes empezar a escribir el código, sin antes trazar la naturaleza del problema y las rutas lógicas para crear la solución.
«Debido a la proliferación de tecnologías web y móviles, se ha vuelto mucho más fácil para los desarrolladores hackear un prototipo sin pensar demasiado en el diseño del código. Si bien poner más énfasis en el diseño y la estructura puede aumentar el tiempo necesario para escribir el código, puede ahorrarle mucho tiempo perdido en refactorizar y «perseguir» los errores más adelante» explicó uno de ellos.
La mejor manera de seguir este consejo es tener a mano un cuaderno y un bolígrafo. Dibuja mapas, esquemas, flujos y esquemas. Anota todos los comentarios e ideas que se te ocurran durante el proceso. Colócalos en la pared y, mientras tanto, agrega o tacha los cambios. No limites el proceso creativo a lo que puedas escribir en la pantalla, porque no solo te perderás toda una gama de ideas y posibles soluciones, sino que también es muy probable que pierdas aún más tiempo en el proceso.
2. Haz el trabajo creativo cuando estés en la zona
Me gusta pensar en los desarrolladores como si fueran escritores o algún tipo de artista domador de ordenadores. Al igual que en cualquier forma de creación, el mejor producto suele ser el que se obtiene partiendo del estado de flujo en el que te encuentras.
En la psicología positiva, estar «en el flujo» o «en la zona» significa realizar una actividad mientras estás completamente inmerso en una sensación de concentración energizada, participación total y disfrute. Uno de los compañeros programadores lo describió así:
«El flujo tiene una gran influencia en tu productividad, ya que te permite concentrarte en el problema específico que estás resolviendo. El flujo es un multiplicador de tu rendimiento. Es justo decir que cuando estás programando y no en Flow, estás perdiendo tiempo».
Desafortunadamente, es imposible escribir código SIEMPRE y estar completamente inmerso en él. Sin embargo, hay ciertas medidas que puedes tomar para ponerte manos a la obra, de modo que estés bien preparado para la resolución de problemas.
Por lo tanto, no comience el día revisando los correos electrónicos. No escuches música a menos que sea absolutamente necesario, o si eso es lo tuyo. Si quieres escuchar música, intenta encontrar algo con la menor cantidad posible de letras, porque la letra = distracciones. Si tus horas pico de productividad son por la mañana, no las desperdicies haciendo tareas de poca monta. En vez de eso, puedes dejarlas para después de comer o al final de tu turno, cuando te concentras menos.
Mientras tanto, deja que tu mente divague y deja suficiente tiempo y energía para crear magia.
3. Procrastine cuando no haya nada más que pueda hacer
En algún momento llegarás a un callejón sin salida, y no tiene sentido negarlo. Así que, en lugar de darte una patada por no poder encontrar una solución y seguir con el trabajo aunque obviamente no estés a la altura de la tarea, procrastina.
Tómate un tiempo para relajarte, ver un episodio de tu programa de televisión, dar un paseo rápido, ir al gimnasio. Haz lo que más te convenga y lo que sea que te distraiga de la tarea por un tiempo. Cuando hayas descansado, siéntate detrás de una computadora e intenta abordar el problema desde una nueva perspectiva.
La mayoría de las veces, la solución se presenta muy rápido y te preguntarás cómo es posible que te hayas quedado atrapado en ella. Pero, si empiezas a hacer un mal uso del método de procrastinación, empieza a usar uno de los seguimiento remoto del tiempo de los empleados herramientas para cumplir con el cronograma.
Ten en cuenta que no debes hacer nada que no funcione durante los períodos de procrastinación. Debes hacer las cosas que te ayuden a descansar y refrescarte. Si puedes, tómate una siesta; esa es probablemente la mejor opción.
4. Gamifica tu mente
Lidiar con tareas repetitivas o con demasiado trabajo puede hacer que postergues las cosas. Por eso debes crear una especie de competencia para ti. Inventa algunas reglas o crea objetivos que te hagan sentir como si estuvieras jugando un juego.
Por ejemplo, desafíate a ti mismo a completar tus tareas diarias en seis horas. ¡Haz que sea un gran problema! Recompénsese con una noche viendo maratones de la nueva temporada de esa serie de televisión que realmente le gusta y, si no alcanza la meta, no revise su Instagram durante 24 horas.
Inventa las reglas que más te convengan, haz lo que te parezca correcto.
5. Utilice las herramientas adecuadas
La programación es el arte de nuestros milenios, por lo que debería ser obvio para todos los desarrolladores que utilizar las herramientas que conocen bien y que se adaptan al trabajo es un requisito previo para un trabajo eficaz. Como dijo alguien en Quora:
«Conoce a tu editor como la palma de tu mano. No reinventes la rueda. Conozca todas las bibliotecas disponibles en los idiomas que elija y cómo usarlas. Esfuérzate por escribir un ejemplo con cada biblioteca y ten esos ejemplos a mano para que puedas revisarlos cuando sea necesario. Una vez que te familiarices lo suficiente con una biblioteca, a) es más probable que te acuerdes de usarla cuando se te presente la oportunidad y b) es más probable que sepas cómo usarla y, por lo tanto, resistas la tentación de crear la tuya propia».
Sin embargo, tenga mucho cuidado al elegir las herramientas y bibliotecas adecuadas para su proyecto. No utilices una biblioteca que sea bastante reciente y que no se haya probado demasiado, ya que puede volver a perjudicarte y convertirse en una fuente de problemas que luego será muy difícil de depurar.
Puede resultar confuso elegir la herramienta perfecta con tantas en el mercado hoy en día. Como yo tampoco soy programador, te sugiero que consultes el artículo con las 7 mejores herramientas de productividad de GitHub para programadores, o que consultes las recomendaciones de Quora y otros sitios web.
Además, quieres convertir tus ideas en código lo más rápido posible y evitar hacer todo con el puntero del ratón. No solo es más lento, sino que también puede distraerte, ya que le da a tu cerebro tiempo suficiente para empezar a pensar en otra cosa. Por lo tanto, aprende las combinaciones de teclas para las operaciones más importantes con las herramientas que elijas.
Además de esto, vale la pena mencionar que también existen herramientas que no están relacionadas con el software, pero que brindan una enorme ayuda a la hora de organizar, operar y administrar su desempeño y sus hábitos. Las aplicaciones para teléfonos inteligentes, como las notas, los calendarios, los temporizadores «pomodoro» y las listas de tareas pendientes, te ayudan a gestionar las tediosas tareas y la planificación diarias. Además, si trabajas con clientes, las herramientas automatizadas de seguimiento del tiempo te ahorrarán la molestia de tener que controlar manualmente cuánto tiempo has dedicado a cada tarea y a cada proyecto.
Hablando de eso, si usas Visual Studio, WebStorm o PhpStorm, es posible que desees saber que Perspicaz rastrea automáticamente las tareas y proyectos en los que estás trabajando actualmente, sin necesidad de hacer clic en iniciar/detener para hacer nada excepto trabajar. Te ahorra tiempo, te permite concentrarte en lo que es importante, crea informes sofisticados y proporciona información muy clara sobre tu biorritmo, las horas punta, las mayores pérdidas de tiempo y todo lo que te hayas preguntado sobre el comportamiento de tu ordenador.
6. Automatice, DRY y BESE
Cuando domines tu conjunto de herramientas y varitas mágicas (al menos durante un tiempo), automatiza.
Automatice todo lo que haga repetidamente, incluidas las líneas de comandos, la manipulación de textos, la extracción de registros, la refactorización, la creación, la implementación y la integración. Los trabajos repetitivos que se pueden automatizar deberían ser una de las primeras cosas que un desarrollador elimine de su lista de tareas diarias. Si dedicas 30 minutos cada día a algo que se puede automatizar, puedes ahorrar alrededor de 10 horas al mes o 120 horas al año, solo con invertir entre 4 y 5 horas al principio para automatizarlo.
Con esto en mente, sigue el principio DRY, que significa «No te repitas».
Es importante que tú y otros desarrolladores puedan entender tu código, incluso cuando se haya escrito hace mucho tiempo. No hay nada peor que intentar mantener un código que se ha duplicado varias veces; es una enorme pérdida de tiempo y, sin duda, generará errores. También es una pérdida de tiempo para todos los demás desarrolladores que no son conscientes de la duplicación y necesitan hacer cambios en el futuro.
Para terminar con todo esto, obedece a la cursi abreviatura de KISS o «Sea breve y simple».
El verdadero enemigo de ser productivo es tu propia mente. Cuanta más «carga cognitiva» pongas en tu cabeza, menos productivo serás; por lo tanto, la complejidad es el enemigo.
Siempre que sea posible, adopte soluciones simples o tontas: «Puede optimizar la velocidad de ejecución. Puede optimizar el espacio. Pero lo más valioso para lo que debes optimizar es tu propio tiempo. Optimice para facilitar la lectura y la comprensión».
7. Sé inteligente
Eres desarrollador, lo que significa que tu tiempo es caro. Trabajar «mucho» en esta situación no es necesariamente algo de lo que presumir, porque si ofreces la misma cantidad de resultados que alguien que dedica menos tiempo a ello, serás el perdedor. Puedes volver atrás y revisar tus pasos si estás usando un software de monitoreo de computadoras que toma capturas de pantalla y registra el tiempo que pasaste en diferentes aplicaciones.
Entonces, ¿qué haces cuando te encuentras con un problema complicado y lento? Estas son algunas respuestas de varios desarrolladores experimentados:
«Para ser honesto, esto ocurre con tanta frecuencia que creo que pude abrir mentalmente StackOverflow en un milisegundo. Cuando era más joven, solía pasar horas o incluso noches y días intentando resolver un problema determinado, no porque fuera realmente tan complejo o indispensable, sino porque me había fijado una meta artificial para hacerlo, o quizás porque quería impresionar a alguien. En cualquier caso, el daño del tiempo perdido era con frecuencia mayor que la satisfacción de descubrirlo yo mismo, por lo que decidí no reinventar más la rueda a menos que fuera absolutamente necesario y, en su lugar, utilizar las soluciones de otras personas. Sin embargo, recuerda comprobar siempre las valoraciones y reseñas antes de implementar algo prestado en línea».
«Gana en otro lugar. Si hace tiempo que no puedo abordar un problema de frente, significa que, desde el punto de vista psicológico, me incomoda profundamente. Hace demasiado calor para manejarlo directamente. Así que paso a hacer otras tareas menos abrumadoras. De esta manera, construyo mi músculo para «hacer las cosas», porque hasta ahora solo he estado desarrollando mi músculo para «hacer las cosas». Una vez que adquiero este impulso, paso a la tarea pospuesta».
«Si se trata de algo de menor importancia y/o urgencia, no me avergüenza delegar o subcontratar. Internet está lleno de niños inteligentes que pueden hacer cosas increíbles a un precio razonable, así que, ¿por qué hacerme perder el tiempo?»
8. Invierta tiempo en la programación de pares y en la revisión del código
Puede que seas el chico o la chica más inteligente de la sala, con la mejor gestión del tiempo y el mejor conocimiento de todas las combinaciones de teclas del mundo y, aun así, siempre habrá espacio para involucrar a otros. Todo el mundo comete errores y queremos tener al menos un segundo par de ojos para buscar una solución antes de que entre en producción. Por lo tanto, invierte en ti mismo e introduce la programación en pares, las revisiones de código o alguna otra práctica de propiedad colectiva en tu proceso de desarrollo.
Uno de los mejores tipos de revisiones de código es cuando tienes un buen programador que solo está vagamente familiarizado con el proyecto que está viendo el código. A medida que tengas que explicar los detalles, aprenderás mejor el código y, a veces, una persona ajena verá problemas que tú, como conocedor de la información privilegiada, no has visto. Las revisiones de código no cuestan más que tiempo y, a menudo, ahorran mucho más de lo que cuesta realizarlas.
Consejo adicional: subcontrate algunos de sus proyectos
¡Un consejo extra para todos ustedes! La subcontratación de algunos de tus proyectos también puede ser una forma de mejorar el rendimiento de tus desarrolladores.
¿Cómo mejora exactamente la subcontratación el rendimiento? Según la investigación de Deloitte, la mayoría de las empresas subcontratan trabajos de desarrollo de software para ahorrar costos y resolver problemas de capacidad.
Básicamente, la subcontratación abre el acceso a una mayor reserva de talentos y, al mismo tiempo, permite a los desarrolladores centrarse en sus competencias principales.
Puede considerar la posibilidad de subcontratar partes de su:
- Desarrollo de software o SaaS
- Diseño web
- Desarrollo web
- Marketing digital
- Desarrollo de aplicaciones móviles
- Aclare su objetivo
- Céntrese en los requisitos del proyecto
- Decida un presupuesto y un cronograma
- Haga una lista de posibles socios de subcontratación
- Prepare preguntas y entreviste a posibles socios
- Seleccione un proveedor
- Garantizar una comunicación eficaz
La subcontratación de proyectos puede ser una forma infalible de ayudar a mejorar el rendimiento de los desarrolladores de tu equipo y a reducir su enfoque. Solo asegúrate de hacer tu debida diligencia y de realizar una evaluación eficaz. ¡Hay una reserva mundial de talentos entre los que elegir!
Concluir
Por último, me gustaría mostrar mi agradecimiento a todos los desarrolladores y programadores que me han ayudado a llevar a cabo este artículo al compartir su experiencia, ya sea personalmente o en Quora. Si has llegado hasta aquí, o bien a) tienes algo realmente importante que hacer y consideras que es una forma cómoda de postergar las cosas sin sentirte culpable; o b) encuentras este artículo francamente útil y valioso. Si este último es el caso, lo invito a que difunda el mensaje compartiéndolo con cualquier persona que crea que pueda necesitarlo.
Este artículo se escribió en octubre de 2017 y se actualizó en mayo de 2021.
¿Está listo para tomar el control total de su lugar de trabajo?
Pruebe la solución más sencilla hoy mismo...
Prueba Gratis