Failing to Address Time Scarcity May 16, 2007
I’ve started a near-complete rewrite of
TicketEverything!
[1] I need performance, bug fixes, and a refactoring of code to allow for easier
addition of new features and unit testing. The UI needs some improvements too.
But, I, like everyone else I know, have far more tasks on my plate than time to
do them. Pondering this problem I realized that there is a serious flaw in the
current time tracking application and agile methodologies: none of them address
time scarcity.
Time Tracking apps come in to the picture too late. They may be great at
tracking how much time you spent on a task but by then the time is already gone.
Whether you spent it on the appropriate task or not is moot at this point
because there are no “do overs”. Some Project Management apps let you put in
estimates and most Agile methodologies have techniques for tracking your past
development velocity so that you can better estimate your future velocity but
every Time Tracking and Project Management app that I have seen to date is based
on the flawed assumption that there is plenty of time. Sure they may allow you
to enter a “deadline” or “due date” and happily point out that the estimates for
your to-do items will go beyond your due date but that’s generally the extent of
it. And the agile methodologies just assume that if you don’t have time to do it
in this milestone you’ll just do it in an upcoming one. It’s like turning to a
person and saying “Your bills exceed your income this month but I’m not going to
help you decide which ones you would be better off paying now and which should
be put off without screwing you.”
When it comes to software development your to-do list almost universally
requires more time to complete than you have available. I can’t think of a real
project I’ve worked on where it didn’t and many would argue that the moment you
stop adding features to a piece of software is the moment you consign it to
being dead and / or obsolete. Most agile methodologies act as if the only
deadline is the next milestone. Scrum uses a
burn-down
chart but it’s ultimately misleading because it’s not really working towards
completion as it implies. It’s working towards some milestone and there is a
huge pile of other features for the next milestone that are conveniently
ignored.
Time is not unlimited. It is probable the scarcest resource in software
development. We need tools that help us choose where to spend our time.
ListfulThinking[2] is a good, although visually crude, first step towards this.
It prioritizes based on Internal and External Importance as well as Technical an
Creative Feasibility. In my experience those last two basically boil down to
time required. We need a system that will automatically prioritize our tasks for
us like it does but we need to take the next step and have it actually consider
the specific amounts of time required and available when prioritizing our tasks.
In short our tools and techniques need to evolve to allow us to prioritize our
task not only in terms of importance but in terms of time scarcity.
[1] After great deliberation I have decided to use Ruby on Rails for the rewrite
even though writing the exact same functionality in Django would probably give
me about a 2x speed boost (Python’s just that much faster than Ruby). In the end
it came down to plug-ins. Rails has them. Django doesn’t. The plug-in library
for Rails is going to save me countless hours of work and give my users more
features. It will take me less time to optimize my database usage and templates
than it would for me to manually code all the features I’ll be getting from
plug-ins, which I’d have to do if I used Django. Yes I considered TurboGears too
but it doesn’t have many plug-ins yet and Django still gives you more out of the
box functionality.
[2] Yes, ListfulThinking is crude. Yes it would be great to have a web based
version of it that was pretty and filled with Ajax goodness. And, yes, I’ve
actually have a working prototype of just that…But, I’ve got too many
higher-priority things on my plate to finish it in the limited time I have
available.
Popularity: 2% [?]
Leave a Reply