It would be great if you (hostBBB) could contribute/coordinate the
resources for implementing a polling module in BigBlueButton.
Lot’s of people have asked for it, and it’s a great project that is
self-contained enough that someone could implement and contribute
without being blocked by the current development.
I believe polling should really be a self-contained module, appearing
like another icon next to the desktop sharing icon.
There are three core steps in polling
1. Creation of a poll
2. Prompting users for responses
3. Summarizing the responses
I haven’t looked closely at how others implement polling, but I don’t
recall coming across any implementations in the chat interface.
The main problem with doing these steps inside chat is it would
complicate the chat interface for users (we want to make BigBlueButton
simpler with each new iteration if possible), complicate the code for
developers (both chat and polling code would be butting up against
each other), and make it harder to update each independently.
Here’s my thoughts on the requirements and design. Feedback welcome.
IMHO, the driving principal should be to keep the functionality as
simple as possible for the user (higher adoption). This should help
minimize the effort to implement for the developer.
User story:
As a presenter, I want to ask my audience a question and show everyone
the response in under two minutes.
Here’s a list of basic requirements:
1. Creation of a poll
a) Only the presenter can create new poll
b) The presenter can dynamically create one (or more) polls
c) The poll must have a title, question, and (at least) two responses
before it can be saved.
d) The presenter can enable/disable allowing multiple responses
e) Saving the poll automatically prompts users
2. Prompting the user for response
a) A dialog appears showing the title, question, and selection of
multiple-choice answers
a) Users can select one answer or many (if enabled by presenter)
b) Users can close the question window without answering
c) Users must submit their response to see the results
3. Summarizing the responses
a) The results window displays a graph showing number and percentage
of votes for each answer
b) The data updates dynamically as responses are submitted by subsequent users
There are variations of these requirements. For example, add an
option for the presenter to enable users to view the results without
answering, but that’s definitely the lesser case as the default would
be the presenter would like everyone to respond. Another is add a
button to copy the poll results to the clipboard.
Attached is a simple mockup that follows the above workflow. A few points
1. Just as the desktop sharing icon appears when a user is made
presenter, so would the polling module icon appear (if the polling
module is installed).
2. Flexlib has the ability to have a drop-down menu associated with a
button, so the mockup makes use of that ability to provide a menu of
commands and to retrieve previous polls created during the session.
3. The dialog box for creating the poll using a textarea for entering
the responses, one response per line. I started mocking up a nice
list control with [+] and [-] buttons, but it just seemed overkill. A
textarea allows for easy and quick editing and reordering of the
possible answers.
4. There’s no facility to edit a poll once saved (this would
complicate the development for the first iteration as it would require
additional logic on what to do with the existing poll to which users
have already responded to).
For recording the polling results, with version 0.8, we’re building
recording into the infrastructure of BigBlueButton. The events that
occur during a meeting (join, leave, chat messages, raise hand, slide
advances, etc.) will all be archived within an XML file after the
meeting concludes.
This way, later on, a 3rd party application could use the
BigBlueButton API to retrieve the XML of recorded events, parse out
the results for the polls, and have the raw data for integration with
other applications.
In summary, if the requirements are kept basic for the first
iteration, implemented as a separate module, and the UI is kept to the
absolute minimum, then BigBlueButton could have a simple,
straightforward polling module that is consistent with other
components (simple == high adoption) and cover 80% of the requirements
in the first iteration.
Again Stephen, we're very interested in supporting your efforts and
hearing the feedback of others on what they would like to see in a
first iteration.
Regards,... Fred
--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/bigbluebutton-dev?hl=en.
I'd argue against save == notification. It just ties the presenters
hands too much for no benefit.
I agree save+edit is too much for a first iteration, but divorcing
saves from user-notification, should not complicate implementation,
and buys the presenter much more flexibility in how they work, and
conduct their polls.
>
>
> 2. Prompting the user for response
> a) A dialog appears showing the title, question, and selection of
> multiple-choice answers
> a) Users can select one answer or many (if enabled by presenter)
> b) Users can close the question window without answering
> c) Users must submit their response to see the results
I'd argue against c). Again, maybe our experiences differ. To my
experience tight coupling invariable turns out to be tough to undo.
Mainly because the programmer contemplates a different
design/architecture to implement a feature for tight coupling compared
to looser coupling. There are also many cases when the
presenter/lecturer wants to avoid the bandwagon/crowd effect, e.g When
coming back from a break in a 3-hour class: Did you understand/learn
much in the first hour of this class?
You really don't want the whole class to gather the wrong momentum,
when they see the result is 90% no, just before you start on the next
part of the class.
I could give many other scenarios, where a lecturer tries to port
their current informal polling of students to this type of facility -
disaster.
>
>
> 3. Summarizing the responses
> a) The results window displays a graph showing number and percentage
> of votes for each answer
> b) The data updates dynamically as responses are submitted by subsequent users
>
Dynamic updates is something that, to my mind, is too complex for a
first iteration and maybe too onerous in general. A simple 'refresh'
button ought to suffice.
The main reason is, I'd rather not have the sever cpu-cycles
needlessly spinning when they don't have to. The refresh-on-request
approach should alleviate this.
Best wishes
> --
> You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
> To post to this group, send email to bigblueb...@googlegroups.com.
> To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/bigbluebutton-dev?hl=en.
>
>
--
πόλλ' οἶδ ἀλώπηξ, ἀλλ' ἐχῖνος ἓν μέγα
[The fox knows many things, but the hedgehog knows one big thing.]
Archilochus, Greek poet (c. 680 BC – c. 645 BC)
http://wiki.hedgehogshiatus.com