Business with GNU/Linux: Timesheets

Posted: January 6th, 2005 | Author: telcor | Filed under: Business with Linux, Information Technology (IT) | No Comments »

Note: This is the first of a
series of articles about using GNU/Linux as my primary business
desktop. References to using MS Windows desktops will still appear.
Some of these articles are quite generic, not seeming to relate to GNU/Linux, at least at first.

Like
many people, I have two jobs: my primary income (working for “The Man”)
and sideline (self-employed). The sideline falls into the wide spectrum
known as consulting. This means tracking time for billing purposes is
very important. Add to that tracking projects, customers, tasks and
status of each and you begin to see the amount of bookkeeping involved.

This
is one area computers have great capability to assist and ease work
overhead. A wide array of software exists for the above purposes.
Indeed, looking at popular software sites for MS Windowsâ,,¢, GNU/Linuxâ,,¢ and Mac OS Xâ,,¢ reveals an ever increasing number of applications to help a worker manage time-based billing.

With all this software however, none work in the way I need or want. Only the lowly spreadsheet comes close. Why is that?

To
answer, first let me layout the basic data requirements, requirements
that quite often are met by existing applications. The data needing
tracked fall into two categories: essential and optional.

  1. Essential:
    • Entry Date
    • Start Time
    • End Time
  2. Optional:
    • Client/Customer
    • Invoiced Flag
    • Notes
    • User/Worker/Employee
    • Project/Task
    • Cost code

Now
I’ll be honest, many if not all existing time-tracking applications
support the above data requirements. My problem with those applications
is the user interface. Some require you to select certain criteria
(Client, Project, User, etc) before you can start the clock ticking.
Others want some data defined in lists before it can be added to a time
entry. What most, if not all, get right is allowing the user to
manually add work entries, in other words work done while the program
was not active.

What I need is a program that presents a
time sheet interface (rows and columns) where I can immediately begin
adding work entries. The other data I can add as I go, or later. Plus
if I’m associating a client with an entry (for example), if the client
doesn’t exist the program should add it at that point, perhaps with a
single prompt (do you want to add?).

Another necessity is
splitting a single work entry into multiple entries. The practical
reason is so I can start an entry in the morning, conclude it in the
afternoon and then divide it into different projects and tasks. There
are several ways to do this, but few applications make it simple.

Second
are my usage requirements. More than the data and usability, my usage
requirements cause the most difficulty. There are several programs that
meet my data needs. I’ve yet to find one that fit my usage patterns.

At
home I work using my laptop or one of two desktop computers. There are
valid reasons for using all three (different programs, different
operating systems, testing environments). Often I work on-site, using
both my laptop and client’s computers. Occasionally I have only my PDA.
This presents a situation where at least 3 application installations (4
if you count the PDA) are needed.

Current time trackers fit one of two use patterns: stand alone and client/server. Neither is good enough.

Stand Alone.
How do I keep the data synchronized between 3 computers? Some
applications have a datastore that is shareable. Placing the datastore
on a central server can solve this problem. Other problems appear at
that point.

For example, I visit a client, start the time
tracker on my laptop and create entries throughout the morning. In the
afternoon I return to my home office to do some work for another
client, using one of my desktops. However, I forget to copy the
datastore from my laptop to my central store. Now I’m working on my
desktop with old data. Later in the day I am presented with a problem:
how do I synchronize the two datastores? Sure, I could manually
recreate the laptop entries on my desktop, then copy the datastore to
the central server, power-on my laptop and copy from the server to the
laptop. That is grossly inefficient and prone to errors. What if days,
or worse, weeks go by before I do this, creating more entries on both
the laptop and desktop?

Client/Server.
This comes closer to fitting my usage patters. There are no issues with
datastore synchronization. Divurgence also is not a problem as entries
created on one machine are near-instantly placed upon the server. What
problems exist with this method?

I’ve yet to find a
client/server time tracker that fits light-weight, small company needs
(I’ll address web based methods momentarily). Licensing issues (client
and server), OS support (MS Windowsâ,,¢ only? You must be joking),
exensive requirements (knowledge, software, hardware) and more plague
this. Since I spend a good portion of my time away from my home office,
good offline suport is also needed, and usually lacking.

What
about web-based applications? I have one, short, phrase for that: get
real! While these often solve some client/server issues (such as
licensing and OS support), other problems plague web-based time
trackers. The most primary one is: not every location has an Internet
connection. *Gasp* *Blasphemy!* People that think Internet connections
are easily available everywhere have never poked their noses outside
Silicon Valley, or other large metropolitan areas. Come join us in the
rest of the world.

Can’t you connect to the Web at your
clients? Some, yes. Others I’m not allowed to connect my device
(non-company owned) to their network. Other places simply do not grant
me clearance. Places that do have web-filters in place. And yes, a lot
of these web apps are blocked.

There are many other
issues plaguing web-based, stand alone and client/server time trackers,
but the above suffice to layout my problems with the current offers.
The real question is: what am I going to do about it? At the moment,
nothing. I use a spreadsheet to track my time. yes it has many of the
same problems detailed for stand alone trackers, however a future
article will explain what my real solution is.