Productividad – Herramientas, Técnica y Experiencia

Productividad – Herramientas, Técnica y Experiencia

Esta es la segunda parte de mi post acerca de productividad. Si no has leído la primera parte, da clic aquí para ir. Si no has leído la primera parte, da clic aquí para ir.

Productividad – Mas Valor, Menos Tiempo

En esta segunda parte, nos enfocamos en los principales 3 puntos que debes de tener en cuenta para aumentar tu productividad. Estos son:

Tecnología: Herramientas y Técnica

Uno de los principales métodos para aumentar productividad en cualquier industria, es invertir en tecnología, esto se resume en la inversión en Herramientas, y Técnica, muchas veces las 2 juntas. Cuando un cliente contrata un Software, o un Desarrollo, lo que está buscando es aumentar la productividad. De la misma manera como programadores debemos estar atentos e invertir en mejores Herramientas y Técnicas, ambos enfocados en aumentar nuestra productividad.

Herramientas

Con todo lo que utilizas para programar, que no dependen directamente de ti. Son lo que usamos para programar, ya sea Hardware y Software. Ambas influyen de manera directa o indirecta en nuestra capacidad de generar más funcionalidad. Un listado de los más comunes que debes de tener en cuenta son:

Hardware

  • Computadora – El elemento base para todo programador. En general es fácil saber que necesitamos, la computadora más rápida posible, que se ajuste al presupuesto. Todos conocemos la diferencia entre trabajar con una computadora lenta y una rápida. Investiga, aprende, entiende que hacer más rápida a tu computadora, no seas la persona que le pide ayuda al de Best Buy.
  • Monitor – Este es uno de los elementos que pocos programadores aprecian, y es el más importante después de tu computadora. Es lo que usa la computadora para comunicarse con el usuario. Mas tamaño, más resolución, más ventanas, más comunicación, es más productividad. No estas satisfecho con solo el monitor incluido en tu laptop, compra uno adicional. Un segundo monitor, bien aprovechado aumentará muchísimo tu productividad. Investiga, aprende. Una laptop de 15 pulgadas, 4k y con 200% de escalamiento NO aporta más productividad. Pero un monitor de 40 pulgadas, 4k, con 100% de escalamiento es lo equivalente a 4 monitores FullHD, es 4 veces más espacio para trabajar, eso si te puede ayudar a aumentar tu productividad.
  • Teclado – Igual que el monitor es lo que usa la computadora para comunicarse contigo, lo que usas tu para comunicarte con la computadora. Busca un teclado que te acomode, que te permita escribir rápido. Si usas una laptop, prueba también el teclado, un mal teclado no solo reduce tu productividad, también puede llegar a lastimarte.
  • Mouse – En general debes de tratar de usar el ratón lo menos posible. Practica y acostúmbrate a hacer todo sin el mouse, es mucho más rápido. De todos modos, selecciona un mouse o touchpad que sea lo suficientemente bueno, con el que no te tengas que pelear.
  • Dispositivos de Pruebas – Muchas veces programamos aplicaciones móviles, o que funcionarán en otro dispositivo. Para dispositivos Android, busca un dispositivo rápido lo más rápido posible, los teléfonos viejos o los muy lentos hacen que sea una tortura debugear. Para dispositivos iOS, mientras soporten la última versión del sistema operativo es más que suficiente.

Software

  • Lenguaje + IDE – En el Software no hay herramienta más importante para el desarrollador que su IDE (Integrated Development Enviroment). Si hay trabajado en un esquema tradicional, con una aplicación para editar el texto, el compilador, y las herramientas para debugear por separado, saber la gran diferencia que un buen IDE puede hacer. El IDE encapsula todas estas piezas en un mismo lugar, y te facilita su uso. No hay software que te ayudara más a aumentar tu productividad como desarrollador que un buen IDE. Apréndelo a fondo, conoce todos los comandos de teclado, y utiliza las herramientas adicionales, especialmente la ejecución de pruebas unitarias.
  • Frameworks – Los frameworks, o librerías, extienden el principio de DRY (Don’t Repeat Yourself) a un punto más elevado, no volver a hacer lo que alguien ya hizo. Si necesitas una funcionalidad, lo más seguro es que alguien más ya la haya programado. Investiga y aprovecha estas librerías, muchas veces ofrecen mejores resultados que cualquier cosa que hayas programado.
  • Repositorio – La siguiente herramienta que más vas a utilizar después de tu IDE, y que posiblemente esté ya integrado, es el repositorio. Si sigues trabajando sin algún repositorio de código. Detente inmediatamente y ve y aprende Git. Git se ha vuelto el estándar casi universal para repositorios de código. Si estas en un equipo que tampoco usa repositorio. Proponlo inmediatamente y comiencen a usar. No hay herramienta más efectiva para trabajar código en equipo que un Repositorio.
  • Aplicaciones Adicionales – Finalmente existen infinidad de aplicaciones y herramientas adicionales que puedes utilizar, desde administración de datos, pruebas a APIs, Containers, Integradores o cualquier herramienta que te facilite la entrega de funcionalidad y te ayude a aumentar tu productividad. Ejemplos:
    • Docker
    • SQL Management Studio
    • Postman
    • SoapUI
    • Notas, Tareas, Calendario
    • Etc.

Técnica – Practicar, Practicar, Practicar.

Adicional a las herramientas, la otra parte importante es tu capacidad de usarlas, de explorarlas al máximo para mejorar tus resultados. Esto es lo que llamamos Técnica. Cuando comienzas a aprender algo nuevo, ya sea un nuevo lenguaje, el uso de un nuevo sistema, existe siempre un periodo de adaptación hasta el momento que nos volvemos productivos. Este proceso no depende de simplemente tomar un curso, sino de verdaderamente practicar lo que estamos aprendiendo. Debemos de internalizar la técnica para que se vuelva algo natural, y para esto la única manera es practicar. Práctica el uso de tus herramientas. Práctica las mejores prácticas y patrones de programación. Práctica hasta que las domines y las hagas en automático.

Esto es más en el código. Tomando como ejemplo lo que comentamos anteriormente acerca del Código Limpio. Cuando vas aprendiendo las técnicas que indica el libro, tienes que ponerlas inmediatamente en práctica. Haz un acordeón que te permita recordar cuales son mientras estés programando, y pon atención en aplicarlas. Con el tiempo y la práctica comenzarás a aplicarlas en automático, de manera natura, y tu productividad habrá aumentado por la aplicación de dicha técnica. Los anti-patrones y el código sucio serán cosa del pasado.

Si quieres ir adelantando con técnicas que debes de dominar al momento de programar, te recomiendo buscar y cada uno de los puntos del siguiente listado:

  • Clean Code – Con el libro que comentamos anteriormente. Simplemente son prácticas sencillas de cómo hacer código para que esté sea más limpio y mantenible.
  • Pruebas Unitarias y TDD – Considero que no hay técnica más importante que aprender después de aprender un lenguaje, que las pruebas unitarias. Por su naturaleza, las pruebas unitarias te hacen mejor programador porque te obligan a aprender patrones y mejores prácticas que en automático mejoran tu código. Adicionalmente, las pruebas unitarias son el punto de partida para cosas mucho más grandes como Integración Continua, Entrega Continua y DevOps.
  • DRY, SOLID y Patrones de Programación Orientada a Objetos – Son patrones que ayudarán a mejorar tu código. Igual que con los frameworks, los patrones encapsulan conocimiento de cómo solucionar problemas comunes en la programación.

Todos estos temas los iré tocando a detalle en futuros posts.

Recuerda también el desarrollo de software no es solo programar. Existen también disciplinas adicionales que necesitamos si queremos hacer mejor Software. Cada una de estas disciplinas también tienen su set de técnicas y herramientas que tendrás que aprender, ya sea a manera de apoyo, o tomando el rol principal en una de ellas. Algunas de estas disciplinas son:

  • Análisis de Requerimientos
  • Arquitectura
  • DevOps y Entrega
  • Administración de Proyectos
  • Diseño de Interfaz UX/UI
  • Diseño de Producto

Experiencia

Hay una creencia que dice que, si quieres dominar algo, tienes que practicarlo por lo menos por 10,000. En la realidad habrá cosas que te tomen menos tiempo, y otras que te tomen mucho más, pero lo importante es tener claro cuál es la meta. Volverte experto en algo. Por eso no hay mejor consejo que Aprender, y Practicar. Lo que no se práctica se olvida.

Y para cerrar, no te mantengas estático, siempre hay algo más que aprender. Recuerda que no es lo mismo 10 años de experiencia, que un año de experiencia 10 veces. No caigas en un área de confort creyendo que ya sabes lo suficiente y no te hace falta nada más. Investiga que más hay, y si realmente ya eres experto en algo, busca algo nuevo que aprender.

Resumen:

  • El Software tiene que ser Confiable, Mantenible y Escalable. Si entregas más funcionalidad, pero no cumple con estos 3 requisitos, no tiene calidad, y no estas siendo más productivo.
  • Los 3 principales factores que afectarán tu productividad son tus herramientas, tu técnica y tu experiencia.
  • Busca una computadora que te permita ser productivo.
  • Cuando aprendas una nueva técnica, haz un acordeón de lo principal que debe de recordar y aplícalo mientras programas. Hazlo así hasta que lo hagas de manera natural y no necesites el acordeón.
  • Hazte experto en Pruebas Unitarias para cualquier lenguaje que utilices.
  • No es lo mismo 10 años de experiencia, que 1 año de experiencia 10 veces. Nunca creas que sabes todo. No caigas en área de confort. Investiga, aprende y práctica.
  • Práctica, Practica, Practica.

Deja un comentario

Close Menu