"It´s better to wait for a productive programmer to become available than it is to wait for the first available programmer to become productive." - Steve McConnell
Most often when we think about productivity as developers we think about extensions and tooling. To an extent, this is a good way to be more productive as a developer. Extensions that highlight your code on the correct way or extensions that provide common snippets for specific frameworks or programming languages.
Ther is also another way that is more advanced to get more productive. How can you know what is the right way for you to get more productive? Maybe you have the habit of opening Facebook or Twitter or Instagram even without thinking because the browsers address bar is not far away. Suddenly you spend 40 minutes on Twitter just scrolling down and your productivity goes down badly.
🛑🤯You can't improve what you don't measure.🤯🛑
Tracking what you are working on and by that measuring in the digital age is easy! Let's have some look at a few extensions that can help you with tracking and measuring your time.
After a quick search, I found 'Code Time'. The setup is straight forward. You get a prompt to open a link in VS Code then you can log in for example with Github. After authorizing
code time to log in with Github you are logged in and ready to go.
Now you need to work for a while to see anything. Coding for Code Time does not count if you just open VS Code. You need to type or for example open/save a file. If you now don't do anything for 15 minutes Code Time will count this as one session.
There are several statistics that you can look at. The most simple one is
Hours coded. This is the easiest statistic and you can look at it daily, from last week or from last month.
Another metric is 'Total Keystrokes' again this is a very simple metric and you should not worry about it too much. Keystrokes alone are not a very good indicator of productivity.
What I find more interesting is the average code time and if I have reached it today. This indicator is more helpful for me to see if I have reached my goal of coding or not.
Speaking of goals you can set goals in Code Time. They are rather simple. You can set your Code Start Time, with this you can force yourself to really start in the morning to code. The other goal, of course, it the code time each day you want to code. A nice little thing here is that you can choose the days you want to reach that goal. Maybe on the weekend, you don't want to code and relax. Then don't set it as a goal.
There are more metrics and features like connecting Code Time to your Google calendar and setting up the Company work hours. The latter is important if you want to track how much you code outside of work. For me, that is not important but maybe for you, it is!
You can also have a look at all this metric and more in your editor. Just click on the small rocket with the minute number and then a pop up appears where you have to select
Code Time Dashboard. Here you can see your metric in a nicely formatted text file.
If you like these metrics and find them helpful try out Code time.
This is another tracking and metrics tool. It almost has the same metrics as
Code Time. The 2 biggest differences being that you don't have any reports in your browser and the second being that you can see at the web interface what languages you were working with the most.
Also, you can have multiple goals based on a specific project, language or editor. For me, the most useful of these is the set goal for a specific project. This can even be used as a tool for a freelancer to see how many hours they have worked for a specific client and charge them for these hours.
Also, there is a Leaderboard where you can see how other developers and also see how much they work on average every day, what editor they use and what languages they code in. As of writing this post the current leader is working on average every day for 6 hours in
YAML files 😲 Crazy!
If you just want to work for 20 minutes or 2 hours then this simple timer is the tool for you. This one has no metric no shiny interface. It is just for you to set a specific time that you want to work on and see for yourself how productive you are at that time.
And yes sure you can use a Pomodoro timer.
In general, I would recommend you to use the Pomodoro technique if you know that not being focused is your productivity problem. The Simple Timer at least for me is for people who just want to reflect on the last session of coding they had and see what they can do better next time.
So now that we have all that data? I don't know to be honest since right now I'm just tracking and I right now don't have enough data. I will write a follow-up post to see what I found in my specific case and what I could do to improve and what was my problem.