I'll have it converted tomorrow morning, and post up the skeleton of
the project then. I'm planning to convert it to use SQLAlchemy this
week, so I'm not going to worry too much about filling out the current
functionality since much of it will have to change when we go to
SQLAlchemy anyway.
The overall plan is to get the basics of Tasks, Projects, Contexts,
all working.
Then I want to do some e-mail integration so we can create one (or
more) Inboxes for new tasks to come in. If anybody has other ideas
about how we can make it easy to collect various kinds of tasks, that
will be helpful too. It's really critical that we have an easy to
use way to collect new "next actions" or people won't get all their
tasks/projects into the system.
Once we have the collection will have to improve the sorting process,
so e-mails can be quickly turned into next-actions, and projects and
related actions can be sorted and tracked easily.
We'll obviously want to be able to display new actions, pull actions
off of the list and assign them to ourselves. We'll need a list of
projects with no next-action assigned so people can make sure that
projects are moving forward.
I'm still a little bit concerned by the idea, but I think we may need
to be able to create task dependencies, so that some tasks can be
hidden away until their predecessor tasks are completed. I don't
think this will be too hard to do, but it adds complexity to the user
experience that I wish we could avoid.
Ultimately I'd like this tool to be useful for individuals and groups.
I don't care too much if it scales up to groups of more than a couple
dozen people (anything bigger than that and self-organizing teams
aren't really possible anyway). And I want to make use of dynamic
HTML, Ajax, and whatever other tricks we can come up with to make this
feel easy to use and productive.
In general, I'm not interested in churning out "management metrics"
I'm interested in creating a tool that people can use to tame the
chaos of dozens of projects, hundreds of tasks, and ever mounting
complexity. Action flow should be about teams taking control of
their own task and project list.
If you're out there on the list, feel free to let me know what you're
looking for in a task tracking application.
--
Mark Ramm-Christensen
email: mark at compoundthinking dot com
blog: www.compoundthinking.com/blog
Ahah! Now I know why the first commit made so little sense to me.
I too am interested in it, to begin with, for personal use but
something expandable for small groups. The challenge there is can we
easily have a local copy of the database cached for when people are
offline? Any thoughts on that?
Gary
Local cashing of the database is a hard problem. It's certainly
possible to use a local TurboGears instance and a local SQLite
database that syncs up to the central database.
Getting things to work locally isn't hard, it's the synchronization
logic that will be more work. You need to deal with what happens when
both sides changed, etc. Fortunately there's quite a bit of
prior-art, so it's more of the "a lot of work" kind of thing than it
is "really hard to do."
I think we should focus on making the online interface work, and then
once the basics of that are done, we can start working on an offline
mode as part of the second phase.
--Mark Ramm
Personally I'd like to see CalDAV support (iCal + WebDAV). I think
this would lead to a more natural way of adding tasks/actions from
external applications. Unfortunately I'm using Evolution which doesn't
support CalDAV for task lists ATM, but I'd like to either make a script
to sync my local task lists with the server, or find some other app to
let me work with remote iCal tasks (I'm tempted to write a PyGTK taking
some ideas from Kinkless GTD).
Contexts could be represented by different iCal files and projects
could be set in the "Categories" of the VTODO items.
I'm still looking for the best way to deal with CalDAV task lists on
GNOME and I'd like to create a web interface so I can also access my
tasks remotely. But of course if there's already work happening on a
web-based GTD app I'd rather avoid duplicating those efforts.
-- Matt Good