Estoy buscando una herramienta para controlar de forma automática el tiempo que paso (y como lo paso) programando. Una herramienta de las que en inglés se llaman “time tracking” pero específica para código. Y puestos a pedir, que detecte el lenguaje de programación en el qué estoy codificando (aunque sea mirando simplemente la extensión del archivo en edición, en lugar de utilizar técnicas más precisas como el Linguist language savant Enry).

Así como hay decenas (¿centenares?) de herramientas de control y rastreo del tiempo, el número de herramientas de este tipo que entienden la programación es muy limitado. A continuación os presento las mejores de las que he encontrado (ya me diréis si vosotros utilizáis una que no esté aquí o cuál es vuestra preferida).

WakaTime

WakaTime es de lejos la herramienta más conocida. Con WakaTime puedes saber exactamente cuánto tiempo te has pasado programando. La herramienta rastrea automáticamente cuando empiezas y paras de programar y va calculado todo tipo de métricas durante tu tiempo de programación. Es capaz de mostrarte diferentes estadísticas a nivel de proyecto, archivo, branch, commit, sistema operativo, IDE y lenguaje en tu panel personal.

Language tracking report in WakaTime

Hasta incluye una opción tipo “gamification” que muestra como tu rendimiento se compara con el del resto del equipo. Gamification of coding time tracking in Wakatime

WakaTime tiene un plan gratuito pero tendrás que empezar a apoquinar si quieres las funcionalidades avanzadas. A cambio, y aparte de todo lo que hemos ya descrito, WakaTime es compatible con prácticamente cualquier editor existente.

CodeTime

CodeTime es una solución específica para Mac. Completamente gratuita, aunque a nivel de funcionalidad, está a años de luz de WakaTime. CodeTime monitora los cambios en tus archivos y va sumando cuanto tiempo vas pasando programando en cada lenguaje. También incluye una barra de estado que va informando de cuantas horas llevas trabajadas en el día. Pero a nivel de informes poco más. Eso sí, si lo que buscas es algo gratis y prefieres herramientas Mac nativas, CodeTime puede ser suficiente para ti.

codeTime - time tracking for coding in Mac

Coding Tracker

CodingTracker  es una herramienta de rastreo para Visual Studio Code . En concreto, está implementada como una extensión a VSCode. La funcionalidad básica no difiere mucho de las herramientas de gestión del tiempo anteriores: puedes saber cuánto tiempo pasas en cada archivo/proyecto/lenguaje/branch. Aparte de su integración con VSCode, CodingTracker puede ser especialmente interesante para los que trabajen con empresas chinas dado su buen soporte a este lenguaje. Y además es cien por cien open source (ver el CodingTracker GitHub repo).

Coding tracker for Visual Studio Code

CodeAlike

Dejamos para el final, una agradable sorpresa: CodeAlike , que es más que una simple herramienta de control del tiempo. Sí, esto también te lo da, pero su objetivo es, más que mostrar donde se va tu tiempo, entender y analizar la forma en qué programas para ayudar a mejorar tu productividad.

Por ejemplo, CodeAlike calcula tu “focus curve” donde puedes ver cuantas veces has sido interrumpido mientras programabas (y ya sabemos lo que nos cuesta volver a concentrarnos una vez nos han molestado estando en estado de “flow”). Otro ejemplo: te explica si tu tiempo de “programación” lo ocupas realmente escribiendo código o bien haciendo debugging o compilando o leyendo,… Este video de sólo 2 minutos te dará una mejor visión de todo lo que puedes llegar a aprender con CodeAlike.

Como WakaTime, tiene un starting plan gratuito pero necesitas el plan premium para las funcionalidades más avanzadas y tener acceso a la visión global del equipo.

Code Time

Code Time es un plugin open source para el cálculo automátic de métricas de programación (y no, no es el mismo CodeTime del hablamos antes). Empezó como una extensión a VS Code pero ahora ya se integra con la mayoría de IDEs populares. Algunas de las métricas que calcula son el tiempo programando, las líneas de código escritas, las pulsaciones de teclado, los lenguajes más usados,… Puedes ver más en la imagen.

También te ayuda a identificar tu horario de programación ideal (vaya, las horas en las qué escribes más) para que así sepas qué horas “bloquear” para ser más productivo. Estos datos no se visualizan directamente en el plugin si no en la web app que le acompaña.

Code Time - Time tracking for programmers

De momento, Code Time guarda 90 días de datos históricos. Todo gratuïto pero ya avisan que en el futuro pueden lanzar planes de pago con más métricas y por más tiempo.

(imagen destacada gracias a frankieleon )