Time Tracking Project: Version 0.5

January 27th, 2011

Just over a year ago I finished the first version of my time tracking application, which I created for my own personal use. The idea at the time was simple, I wanted an easy way to keep track of the time that I spent working on different projects, as well as a way to further develop my understanding of pylons; and more specifically a new library called FormAlchemy. Shortly after developing a draft of the code, my colleagues saw the concept and thought it would be great to use it within the company to help everyone get feedback on time taken to do specific work, compared to the amount of time that had been quoted for the work. This is of particular interest within our company, since everyone works at a different rate, which is based on previous experience and general aptitude for any given task. As an example, I know that I generally code faster in pylons than Ed and Tavo, but somewhere about the same as Damian. However, Tavo is faster at styling using CSS than all of us. This is not to say that the others can’t do a particular job, but that certain members of the team have honed certain skills within particular areas than others. So with needing more quantitative data on this to help with our quotations and billing, my application was deployed to the company server.

At the start this was great, everyone was entering their information and reports were being generated for both our clients and our own use. However, some time last year the use of the time tracker dwindled significantly, as the novelty worn off. Since it was only the first version of the application, I knew there were going to be some rough corners that needed some attention, which included the input method which became a bit cumbersome if you needed to enter lots of information (i.e. you had forgotten to enter your records at the end of several days).

With some free time at the weekend, I went back to code and started on modifying the system to make things more easier for users. Since I already had a user base, which were familiar of the basic system, I pushed the new updates to the company server, and waited. To my delight the new modifications have been a hit with the users, and people are again entering their information. One of the major modifications that I made was to provide a short cut for users when entering their records. This short cut pre-populates half of the form with information, which cuts down on the amount of time it takes for a user to create a record. To achieve this, I created a simple calendar display, which allowed the user to add an entry to a specific date. This means when clicking on the add button, the system can pre-populate the date field with the selected date, but still gives the user the ability to change it if they require. In addition, the system now pre-populates the project and the activity with the last used values. After talking with colleagues and looking at their entries it became clear that most of them work on a single project for a couple of days in a row, and if not work on a specific activity across multiple projects. So I’ve changed the code to pre-populate any new record with the last used activity and project. The reasoning here is that in many cases the user wouldn’t have to change anything, but if so the majority would only have to change either the project or the activity. I know for some people, which at the moment is only me, this is not ideal. As I am generally switching between various different projects, which also tends to mean different activities, but as I said at the moment I’m the minority with the current user pool, which means I need to make the software work for the majority first and then see if it can be modified for the corner cases like myself.

I still have more planned improvements, which will hopefully bring the application to a point were I can offer it for download.


Leave a Reply

You must be logged in to post a comment.