If you are a developer, you should use some sort of time tracking, especially when you are a freelancer. Tracking your time can help you improve your workflow and calculate realistic proposals.
Why I track my time
If I want to plan my time realisticly, I need a kind of measurement. Not only when I want to write a proposal, this relates to all aspects of my work. After all, as a developer, I am responsible for getting my work done, even if two jobs are running parallel.
For that I need to know how long certain tasks take. This, of course, varies a bit from time to time. But I need at least a clue. In addition, I want to know, where I lose time. That is why I track things which are not directly related to my work. For example, when I read an article or have a look at my twitter-timeline.
So, at the end of the day, I do have a pretty good overview of how productive I have been and can optimize things if applicable.
Beyond that, I can see repetitions, which I then can bundle or maybe even automate.
My problem with time tracking
Actually one can summarize this briefly: Staying tuned.
Missed to turn on tracking in the morning? Then it is not worth to turn it on now. Don't behave like this. It's a trap!
Another problem is, not every mac-application has a mobile app, too. So I have to insert the data afterwards (i.e. when I was at a customers office).
It is also difficult to determine how detailed to track. Should I track every single Task? Or groups of tasks? It's a decision I do case by case. And sometimes it's really hard to decide.
What software to use?
I tried several application. Starting with a simple textfile, where I wrote down, when I started and ended tasks. In principle I can say: the more time I have to invest in time tracking, the more unlikely I will continue to use it.
I used Timings for a long time, and I liked it very much, especially after the last major update. Recently I use Tyme, because I really like the statistics (and that's what it is all about for me).
Both application share one disadvantage: I must activly tell them, what I do. That's not very difficult, both apps are easily accessable via the menubar. But why not make even more easy?
Some time ago, I found WakaTime and I really liked the idea. WakaTime integrates itself in your editor (for example sublime text) and tracks everything you do there. It dertermines programming languages, filenames and project titles. And whenever you use your editor, WakaTime tracks your time. So at the end of the day, you have really good statistic of what you were working on.
You must keep in mind, that all that information is sent to the WakaTime Servers. Filenames, project titles, programming languages etc. Make yourself clear, that this data may make it possible to draw conclusions on what you are working on for what client. And that this may collide with a NDA!
Another disadvantage is, as a developer you also answer e-mails, work in the terminal etc. All that won't be tracked.
WakaTime is a nice idea, but it just tracks a small amount of my workday. If you really want to improve your tracking and your work, you should use a "classical" approach of time tracking.