Right now I’m working on the email code for Pledgebank.
There are (ignoring SMS) three communications problems in Pledgebank: firstly, how does the pledge setter get to communicate with the pledge signers when the pledge is complete (so that the setter can tell the signers what to do / how to organise themselves, or whatever); secondly, how do the signers communicate amongst themselves before the pledge completes (to discuss tactics for getting more people signed up, or whatever); and thirdly, how can other people get more information or clarification on the pledge.
Ideally, we’d like to be able to do all of the above while keeping individual signers’ email addresses private.
(As an aside, I should say that the proper English words for “pledge creator” and “pledge signer” are “pledgee” and “pledger”. I fought a valiant struggle to have these adopted as the Official Pledgebank Terminology, but inevitably we all got confused as to which was which, and reluctantly abandoned them in favor of “creator” and “signer”, which sound a bit buzzword to me. Ho-hum.)
Anyway, there are lots of different ways that we could allow the creators and signers to communicate. After a long discussion we decided that we’re going to implement,
- an announcements-type mailing list for the pledge creator to use,
- an (optional to join) discussion list for signers and the pledge creator, and
- a web-log-style comments page for each pledge.
which seemed like a sufficient set of features which would avoid having too many confusing configuration options.
(Another way to look at this is to look at this from a permissions perspective:
|Who can send messages?||Who can read messages?|
|announcements about the pledge||Y||N||N||Y||N|
|discussion about the pledge||Y||Y||N||Y||N|
|questions about/clarifications of the pledge||Y||Y||Y||Y||Y|
For the first two functions we need to limit access to what’s said to particular groups of people. That means that either we have to have a login system on Pledgebank, which we’re avoiding, to keep things as simple as possible; or to use email, which is practical because creators and signers have to confirm their email addresses in order to pledge. No access restrictions are needed for comments and clarifications, and it’s useful to show comments publically — so as to avoid ever answering the same question twice — so public web comments are appropriate here.)
So, this week’s task is to get the email stuff all working. Getting email sending from web applications right can be tricky, especially if you care about reliable delivery. As you can imagine, this is a whole heap of fun….