Hi all,
Both Mimi and Travis suggested I join the dev list and post my
comments and use cases... and lurk until I can see something I can
help out with on the dev side. I can code Java, but never written any
JSP. I have J2SE, GWT and J2ME experience though. I guess my interest
at the moment is in enabling server-side functionality and understand
the Cosmo protocol. I'm very busy in work hours, but I do have some
spare time coming up in the evenings so I may be available to do
something.
# Project/Calendar Management Use Cases
The best way to explain what I would like to use Chandler for
(especially the web app) is through some use cases... I'll describe
them in the 1st person. I've been told some of these are already
supported on the desktop app, but I haven't been able to check that
out as SSL support on OS X is broken for me. I also have some
opinionated comments at the bottom.
## Use Case: Set up a meeting
Task: I want to schedule a meeting with a client (and some members of
my team) and enter it into our calendars.
Steps to accomplish:
- I need to arrange the meeting with the client in person/phone/e-
mail, independent of Chandler. Although I will use Chandler to see my
availability and the general availability of my team. I might get back
a list of possible dates from the client, rather than a specific date.
- I need to create an event (which may have multiple unconfirmed dates
and locations) and request members of my team to attend. I might need
one person to join me, but I will invite several of them and let them
decide who comes.
- I await their responses... some people may not be able to attend on
certain days, so this needs to be captured.
- I want (and my team also want) to be able to add internal notes to
the event, and possibly an agenda.
- I can then get back to the client with a more solid date (or set of
dates).
- When we have agreed a specific date (independent of Chandler), I
would like to be able to send an e-mail to the client, containing
information on how to get to our offices and possibly an agenda for
the meeting... but excluding any internal notes my team may have added
to the event. An Outlook-compatible attachment would be nice, but by
no means a priority... I don't want to assume anything about their
calendar solution. Most people use pen and paper anyway!
There is a *lot* in that use case... but the core functionality is
- being able to create an event that I can invite other users to
- being able to see if they are attending or not (like Facebook events)
- being able to collaboratively edit the event details
and no e-mails exchanged between my team at any point... the only e-
mails are with our client and only the very final one (and possibly
the penultimate one) is generated from Chandler.
## Use Case: Delegate a task
Task: I want to be able to create a task (with a deadline) and assign
it to somebody in my team.
Steps to accomplish:
- I need to create a task explaining what needs to be done and for
when. (examples are "get your report to me by Friday", "write that
test case" or "fill out your expenses form and put it on my desk").
- I delegate/assign it to somebody on my team (or multiple people)
- They get a notification of the task and it appears in their task list.
- I get a notification when they have finished, or if they have not
finished the task before the specified date.
It seems a fairly simple use case... the important thing is that once
I delegate it, I don't want to know about it until it either happens
or the deadline is missed. Again, no e-mail involved. If they reject
the task, I want to know about it.
## Use Case: Jotting down lots of ideas
This is much less important than the previous use cases... but would
be good to have and is a part of the "Getting Things Done" philosophy.
Task: I want to be able to write lots of little micro-tasks (or TODOs)
- I want to capture lots of ideas, but they aren't quite solid enough
to be tasks yet and certainly don't have any start/end date at this
stage.
- I don't want to be distracted by them when I look at my current list
of tasks and events... they shouldn't appear in either view.
- I want to be able to revisit them when I have time and elevate them
to tasks or events.
I realise that this can be mostly accomplished by creating an event
and not adding it to the task list or calendar. But it would be good
to be able to distinguish these from tasks, events and ideas that need
more thought... it would also be very good to be able to prioritise
items in the same way iCal does.
# Some general comments
The following comments are much more opinionated than the use cases.
They are how I would like the UI experience to be and some technical
details :-) So feel free to rebuke them with all your might.
## On e-mail and communication in Chandler
I really hate the concept of using e-mail as the messaging system in
Chandler. Some people might want to receive all their notifications
over e-mail (like some people do in facebook)... but for me, that's
too much in my (already overflowing!) inbox. I would prefer all
Chandler communication to remain within Chandler (i.e. the web/desktop/
mobile app).
For example, perhaps there is a user who likes to receive everything
in e-mail form, and never logs onto the server... but instead does all
their task and event management from iCal/Outlook. When I invite them
to an event or send them a task, they will get an e-mail about it
because it is in their preferences to receive notifications that
way... they can even accept/reject/complete tasks over e-mail
(clicking links or replying with subject headings or similar). But I
never have to see it... that's just their preferred UI.
Is the messaging codebase abstract enough to allow multiple input/
outputs? I can imagine some people in my team wanting notifications on
SMS or twitter. In fact... I'd love to get SMS notifications if an
event is cancelled and it was within 24 hours of now! (I'm not
suggesting that you host an SMS gateway! Just asking could that sort
of exchange be supported via the Cosmo protocol if somebody wrote a
server to act as the middleman?)
## On Desktop vs WebApp vs Plugins
If you're thinking about desktop at all, then I'd suggest that Outlook/
Sunbird integration should be a priority (with no plugins allowed on
Outlook)... not a Python app. The reason for this is because most
people in management will feel much more at home in Outlook. Outlook
can speak to servers, right? How well documented are those protocols?
Could Cosmo pretend to be an Outlook server?
Python is great for prototyping code but is it really helping
functionality to be ported back to the webapp? There is a lot of code
re-implementation since the server is all Java. If I had my evil way,
I'd have made the desktop app all Java (or Groovy, which is a lot like
Python/Ruby) so that server code could be reused on the client side
and so that the desktop app could be a way to quickly implement new
features that can be easily ported back to the webapp. It would also
mean more eyeballs on core code and provide a set of libraries that
would make porting to other platforms (e.g. J2ME or Android) so much
easier.
I would be interested in helping out with a Java-based desktop client
as a quick way to prototype functionality for the webapp (and to pave
a way for a mobile app). If there is no messaging system yet, then
server-side I might be interested in helping out there instead. Where
would be the best place to start to understand the protocol used when
speaking to the server? (please say xml!)
Should I add all of these points as RFEs or is it more appropriate to
discuss them here?
--
Sam
http://fommil.me.uk
http://javablog.co.uk
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev