Adventures As Me


Business with GNU/Linux: Timesheets

Written 06 Jan 2005
<p><strong>Note:<&#47;strong> This is the first of a series of articles about using GNU&#47;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 <a href="http:&#47;&#47;www.gnu.org" >GNU<&#47;a>&#47;<a href="http:&#47;&#47;www.linux.org">Linux<&#47;a>, at least at first.<&#47;p>
<p>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.<&#47;p>
<p>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&acirc;,,&cent;, <a href="http:&#47;&#47;www.gnu.org">GNU<&#47;a>&#47;<a href="http:&#47;&#47;www.linux.org">Linux<&#47;a>&acirc;,,&cent; and Mac OS X&acirc;,,&cent; reveals an ever increasing number of applications to help a worker manage time-based billing.<&#47;p>
<p>With all this software however, none work in the way I need or want. Only the lowly spreadsheet comes close. Why is that?<&#47;p>
<p>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 tags: essential and optional.<&#47;p>
<ol>
<li>Essential:
<ul>
<li>Entry Date<&#47;li>
<li>Start Time<&#47;li>
<li>End Time<&#47;li> <&#47;ul> <&#47;li>
<li>Optional:
<ul>
<li>Client&#47;Customer<&#47;li>
<li>Invoiced Flag<&#47;li>
<li>Notes<&#47;li>
<li>User&#47;Worker&#47;Employee<&#47;li>
<li>Project&#47;Task<&#47;li>
<li>Cost code<&#47;li>
<&#47;ul>
<&#47;li>
<&#47;ol>
<p>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.<&#47;p>
<p>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?).<&#47;p>
<p>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.<&#47;p>
<p>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.<&#47;p>
<p>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.<&#47;p>
<p>Current time trackers fit one of two use patterns: stand alone and client&#47;server. Neither is good enough.<&#47;p>
<p><strong>Stand Alone.<&#47;strong> 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.<&#47;p>
<p>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?<&#47;p>
<p><strong>Client&#47;Server.<&#47;strong> 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?<&#47;p>
<p>I've yet to find a client&#47;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&acirc;,,&cent; 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.<&#47;p>
<p>What about web-based applications? I have one, short, phrase for that: get real! While these often solve some client&#47;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.<&#47;p>
<p>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.<&#47;p>
<p>There are many other issues plaguing web-based, stand alone and client&#47;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.<&#47;p>

Related Posts