The Ruby on Rails and ClojureScript experts

Aug 10, 2008

Being a contract software developer, tracking my time is extremely important for my business: I need to write invoices with task break downs, I want to get better at estimating, and I am just curious about what I spend my time on.

So I filled this need by writing my own Rails time tracker: meet Quentin. I cleaned it up a bit and just published it as an MIT-licensed open source project on github.

Quentin dashboard

Quentin dashboard

There are a lot of time trackers available. Why did I write my own?

  • This is mission critical data. I want full control and access. Time is my most valuable resource, so I need to understand it.
  • Track the roles I take on: SW architect, sysadmin, manager, SW developer, entrepreneur, expert, … Quentin gives me a detailed breakdown for each role, broken down by projects and time frames. This is useful to maximize my resource utilization and to plan and measure my professional development.
  • Knowing when it is enough. When you freelance, it is easy to become restless. Quentin tells me when I have made enough money to meet my revenue targets (daily, weekly and yearly). Since I am a visual person, I had to add charts that tell me where I am at (See screenshot below)
  • Create invoices: Quentin generates invoices with detailed work break downs for my clients. No extra work required.
Quentin hourly charts

Quentin hourly charts

It’s easy to use: create a new task, hit enter, and the clock is ticking. Interruption? No problem. Hit stop, or just create a new task. Forget to stop the timer? Just edit the task. I have added detailed auditing so that I can measure my working hours accurately.

The screen shot below shows the Quentin dashboard:

Quentin dashboard

Quentin dashboard

Reporting

When you track your activities every day, over the course of a year, you have a very rich pool of data to work with. With reporting, I can know how much time I spend …

  • on a given project – so that I can invoice my clients
  • fulfilling a certain role – so that I can plan and measure my professional development
  • per week working – so that I can work towards a sustainable work load

The other things I can learn from the data:

  • How am I doing for revenue this year?
  • Which projects are falling behind and need attention?