Wednesday, April 16, 2008

Difficult Choices

This is an email I wrote to the users of one of our applications. I realized that none of the users want to hear all of it, so I decided not to send it. Still, I think it's an interesting look into what I do, and the little details that I toil over.

Recurrence, recurrence, recurrence…

One of the most requested features for the new Corporate Events Calendar is now implemented, sort of. We have partially implemented the feature, and plan to finish it soon.

Recurrence is one of those things that are easy to describe, but hard to get right. We had a very crude implementation done by release date. We realized that it was not right and so it was removed from the calendar. In its place was a message [I considered it a promise] that it would come soon. Since then we have spent much time in planning and development to strike a balance between easy to use and powerful, functional and sane.

We believe we have achieved those goals, but you are our ultimate judges. Read on to learn how it works.

Recurrence can be broken into a few questions: How often, how many, and what gets copied.

How often can you schedule a recurring event; daily, weekly, monthly, yearly? We chose the middle two. You can either schedule a weekly or monthly event. Daily and yearly events rarely recur in such a pattern, and we do not want a lot of wasted reservations being created, we are going to handle those differently. I will cover that later. As for the weekly recurrence, you can set what day of the week to start and how many weeks between occurrences. The monthly scheduling is done by selecting the day again and which week of the month the event should be held.

How many events can you schedule at once? This was a particularly challenging question. We would love to allow for infinite scheduling, but that is not very manageable. We chose to limit you to 24 monthly occurrences and 52 weekly occurrences. You will have to revisit your events to create a new schedule each year, which will allow you to make the necessary adjustments and will self-clean any abandoned event schedules.

What gets copied? Again, there were no easy answers. We could copy everything, from basic information to each invitation sent, but only certain values apply to every event. We chose to copy: Event Information, Rooms/Equipment, Scheduling, Capabilities, Facilitators, and Sign Up settings (not the attendees). We have left off the Invitations and Menu, because those tend to change from event to event. Obviously, while the schedule is copied, it is also modified to start as of the new date.

One last feature is that you will see a list of all scheduled occurrences after you have added recurrence. This will allow you to quickly jump to other occurrences. You can also use this list to cancel future occurrences, just select one or more and press the Cancel Selected Occurrences button, then confirm your action.

Now that I have covered what is implemented, I need to discuss what is still missing. The biggest feature that is missing is the ability to modify all of your occurrences at once. After you schedule multiple occurrences of an event you will have to manage each one separately. We will implement a way to push changes to all occurrences and plan to release it in the near future.

Another feature that is missing is the ability to add an individual occurrence. This will allow easy scheduling of yearly events or quick copying of an event with two instances. We think this could be of great benefit and plan to release it shortly.

I cut it off there, realizing that I need no conclusion to an email that I will never send.

I love to be open with my clients about what I do. Sharing information is important to me. I find that when people know what goes into every decision that we make then they're more likely to appreciate what we get right and positively contribute when we get things wrong. The problem here is that most people don't care about the decisions, especially not until they believe it effects them. So, I'll hold this one back.

No comments: