Last few days have been hectic and I couldn't get time to work on my
pet project - TimeTracker. Today I am almost determined to pen something before my dream fairy starts
prancing around in high heels.
Over the years I have learnt that 95% of the initial bites are frivolous in nature and if pursued
result in quite a bit of frustration. An initial bite is one of those occasional flashes when
I feel that a problem can be best solved by writing a program. In my youthful days, I used to
open up my IDE and start typing as soon as the bite occurred, only to realize a day or two later
that someone has already built something catering to same/similar problem or my level of
motivation was not strong enough to pursue it to completion or even worse, I couldn't remember
what it is that I was trying to build (the concept was missing) :) As I have aged (lets call
it 'matured'), I have learnt to spent enough time brooding on a stroke on creativity before
digging my heels into it.
Let me try to drive my 'initial bite' of TimeTracker survives the fire test. The concept
of this tool is pretty simple - A time tracking tool which can accomplish two
objectives a) Capture the time I spend working and b) Show me a statistical report
of how I have spent my time over a configurable period of time. Nothing glamorous about
the concept, right? So what's driving me crazy? The answer is equally simple - I am
sick of the delusion of capturing time the way I do it right now. I have to capture
time weekly and every Friday I spend considerable time jogging my memory to recollect
in a 'best possible' manner on how I have spend the week. I can do it daily, but let's
face it.. it's a drab, tasteless and non productive activity. It's just a one way
flow of information - there is nothing that the time tracker gives me back. So, my
frustration translates into motivation and helps defines the concept of this tool.
Having a concept and the motivation to pursue it is great, but not sufficient to
go and start building it (learnt from hard experience). I would have to search the
Internet and explore if there exist products which cater to what I am looking for.
Sure enough, Google gives me 50,800,000 hits for "Time tracking tool" :D. I
start exploring some of the top matches and umm... nice UI.. but Opps, nice price
tag too. Time to refine the search string, "Free time tracking tool" gives me
30,200,000 hits, a relatively smaller number than the previous hits :D.
Okay, so I start exploring again, even installing a few of them. After a day of
fiddling around I give up hope. Most of the available tools are no better than
what is provided by my organization. Way too much functionality is packed into
the tool making it bulky - brrrghh.. Some of the tools had so much information
to fill in that it was almost crazy.. some of the tools were so inflexible that
I could hardly relate to it. Okay, so I decide to give up on my 'reuse' fever..
but not without a last attempt. I try "Open Source Time Tracking Tool" in hope
that maybe I can build on it. I am presented with 794,000 search results. I
half heartedly try the top few and NO NO NO.. I don't want a web based time
tracking tool. Phew. Should I say no luck - well, not really, at least now
I know what all I don't want in the tool that I will write :D
Good, so now I am in a position to clearly articulate the features that I want
in the tool. Let me jot them down.
a) Easy data entry : I have realized that one of the biggest turn offs
for time tracking is the volume of information that the user has to enter.
Is it really required? I don't think so. Hence, I will try to ensure that the
user should be able to capture time using the minimum number of inputs. To put
it in quantifiable terms - In the best case scenario the user should be able to
capture time with a single mouse click or a single key stroke. To ease things
further from a user's perspective, he should not have to change the current
input focus (move the mouse or press Tab) to enter time.
b) Real time display : The tool should be able to provide me with
real time information in terms of my productivity, pattern of time usage
and other meaningful information. By meaningful, I mean that at this
moment I don't know what more I need :)
c) Easily analyzable data : The data captured by the tool should
be in an easily analyzable format so that various reports can be generated
offline
d) Activity mappers/transformer : The offline reporting tool should
allow for transforming (clubbing) or mapping a task name with another.
For example, I might capture time as 'Smoking with R1 team' and later
want to transform this into 'R1 discussions' :D. The ability to transform
offline will help tremendously when we provide support for uploading
data into other time systems (organizational).
e) Operability with other time capture systems : I should be able
to sync the data with imposed tools.. for example I can run an offline
program every Friday to auto update my organizational time tracking tool.
This might require some pre-configured transformation of the task names.
Okay, my dream fairy is here.. skimpily dressed and wearing her high heels. Time for
slumber....
|