Audience Tools - Gathering Collective Wisdom

The Audience Tools project started when I was asked to look into the possibility of creating a tool which enabled a facilitator to gather feedback quickly from an audience as she was presenting a PowerPoint presentation. The result is an HTML5 single page app that provides real-time voting, questions and discussion topics, all integrated with standard PowerPoint.

Setting the Scene - Functional Criteria

  • Medium to large sized (30-300) meetings in real world venues
  • A physically present audience.
  • A facilitator or presenter that runs the overall meeting
  • A body of information to be imparted to audience members
  • Feedback of various kinds to be gathered from the audience
  • Audience members have access to mobile HMTL5 enabled devices
  • Integrate with existing, legacy presentation mechanisms.

Non-functional Criteria

Can run on desktop, tablet and mobile clients
Highly responsive, real time results
scalable up to very large audiences (> 1000)
Can be deployed in secure environments, that is, inside firewalls and without access to the Internet
Uses established technologies, albeit state of the art.

Some Points About Group Feedback

  • Aggregated group experiences of events are almost always more accurate than any one individual perception.
  • However, accuracy of recollection fades quickly, so it is important to gather first impression soon after actual events, before ‘legend’ has a chance to take hold.
  • Recollection by a group of people that are physically in the same room can help or hinder accuracy (group think).
  • Thus, a good tool will allow flexibility of what level of knowledge audience members have of each others responses.

All of the above predicates a tool for real-time, collaborative, recall and discussion. The tool should have the ability to customise the group and user experiences to maximise the value of feedback, and should provide multiple feedback mechanisms.

Domain Specific Languages

Domain Specific Languages sound rather fearsomely technical, but in fact they are a very good, and simple idea, which most of us are familiar with, but just aren't aware of.

Let's take a concrete example, asking people to vote on poll. There are various ways that we could describe this to a program so that it can create our poll. One is to make a database which has tables for polls, options for polls, etc, etc and then make a set of forms that allow a guide a user through setting them up. Another, not very practical one is just to write a new program in say C++ for each poll you want to run.

What you can do, is create a special little programming language that just knows about polls, and then make a program that can read this language and create the correct data structures from it. Then my pollster can just create an ordinary text file that might look something like this:

Poll: Did you enjoy the Olympics?
Option: Yes, very much
Option: No, it was rubbish
Option: Everything except the Spice Girls.
Timeout: 60 seconds

Well, even without explaining this to you, it's pretty obvious what this means, and that is because you are aware of the Domain, ie: polls, and thus can interpret what you are reading (the Specific Language) in context. Now, obviously, DSL's don't have to look like this, all they have to be is a consistent description of something that is easy for both a person and a computer to understand. For instance, this article is being written in Markdown, which is a simple DSL for writing web pages and can be easily translated to HTML.

Audience Interaction Mechanisms

Audience Tools
Currently, Audience Tools supports three different mechanisms for audience interaction, polls, questions, and topics.
|Polls|Multi-choice voting on defined subjects|
|Questions|Free form questions from the audience about existing presentation subjects or general questions|
|Topics|Discussion threads around presenter defined subjects|