Sunday, August 31, 2008

Tools of the Trade: Google Apps as a Production Planner (part 1)

The Background

I produce a monthly satellite broadcast show for one of my clients focused on informing, developing, and motivating their statewide employees (see some production shots at my flickr site). The final showreel is assembled from segments and stand-up shoots developed by multiple producers. We end up interviewing roughly 10 different employees, highlighting multiple divisions & programs, and visiting roughly 6 different locations during the month's production. Naturally, sharing information quickly, timely, and effectively is key to keeping everyone (Client, Production Crew, & myself) on schedule, on budget, and focused on producing a cohesive and high-quality end product.

The Story

My first step to improve coordination of the production for the client was to develop a Google Apps site. I learned a few tricks from my own personal projects on how to setup wikis, schedules, simple databases, and published documents using Google Apps, so I was eager to apply the knowledge. We needed one central location to store and display all information relating to each month's production. It also needed to be easily accessed and updated by all involved with the production. So, I began development.

I started by brainstorming a running list of features that I knew from experience the site could provide and that were relevant to the production needs.

  • Multiple Calendars with customized viewing and updating features
  • Centralized communications platform allowing message posts, comments, idea log, and concern record.
  • Online location for documents (Word, Excel, Powerpoint, PDF)
  • Ability to web publish and update simple spreadsheet databases

Of course, the site will not meet all needs and will never replace traditional communication tools, but it addresses some of the key challenges of coordination and rapid information sharing.

The Status

Thus far, I have deployed about 25% of the planned solution. We are currently using a published spreadsheet to summarize each month's production plan. The client, producers, and crew can view the month's plan from any browser. Key production personnel can update the plan via a web form or a form embedded in an email. The summary sheet automatically updates with the most current information. This may not seem like much, but read below if you want to learn some of the challenges developing this deceptively simple spreadsheet solution.

Developing the Monthly Production Summary Sheet in Google Spreadsheets

Form used by clients to update production plan

In a nutshell, it was difficult. I knew I wanted a summary sheet on the web that did not require my constant maintenance and updates. I also wanted a solution that only a few key people could update, but viewable by many. Here are some lessons I learned:

1. Google spreadsheets allow only one form per file.

My initial plan was to use one file with sheets for each month and one master sheet showing a summary of the entire year. Neat, clean, and simple. Well...since only one form was allowed per file, the necessary update form would have been huge, thus I had to split it up. Each month needed its own spreadsheet file saved in Google Docs.

2. Google Forms are thus far not customizable

They are functional, but they do not look pretty, and currently you cannot customize the look or layout.

3. Forms for updating and adding information to Google spreadsheets require their own sheet within the file.

Data inserted into sheets via a form require a horizontal orientation and are quite ugly. I wanted my summary sheets in a more condensed readable format (vertically alligned). So, I gave the form its own sheet. When information is submitted via the form, it is added to the sheet in the lowest empty row. The summary sheet displays only the most updated production information in the form sheet.

Production updates submitted via a forms into this sheet
Production updates submitted via a forms into this sheet

4. The spreadsheet formula to display the last entry in a column should have been easier to develop (I blame both MS & Google)

So, in order for the Summary Sheet to display only the most recently updated information, I needed it to pull values from one row in the Form Sheet. The cells in that one row needed to display only the most recently updated information in each column. After a few hours of research & experimentation, here is the formula I developed:

=ARRAYFORMULA(OFFSET(A1,INT(MAX(NOT(ISBLANK(C3:C200))*(COLUMNS($B1:$IW1)*ROW(C3:C200)+COLUMN(C3:C200)))/COLUMNS($B1:$IW1))-1.0,MOD(MAX(NOT(ISBLANK(C3:C200))*(COLUMNS($B1:$IW1)*ROW(C3:C200)+COLUMN(C3:C200)))/COLUMNS($B1:$IW1),1.0)*COLUMNS($B1:$IW1)-1.0))

This formula is placed in each cell in the 2nd row of the Form Sheet (with some adjustments to each formula based on location). It returns the last non-blank value in the column.

To Be Continued...

I will update you occasionally as I make more progress on this project.

Sunday, August 17, 2008

Managing a Large Virtual Event in Second Life

Recently, I assisted some of my Second Life contacts in preparing and running PeaceFest 08, their multi-location fundraising event. Along with developing a LSL script for distributing the event schedule and calendar, I helped greet people and manage security at the main event sim location. The following are suggestions (based on my observations of what worked and what needed improvement) for anyone planning a multi-location event in Second Life (focused on text chat only without voice).

1. Security

Griefer attacks will happen at any well-publicized event. You must have a plan to deal with this eventuality.

  • Prepare your frontline staff to identify possible griefers. Be sure they know who to IM if they spot something suspicious.
  • Have adequate staff with the power to ban people from land ready to respond to frontline staff requests.
  • Lurkers, or avatars dancing or standing underwater or at corners of the sim could be griefers in waiting. Ask if they need help. If they don't respond, warn them. If they remain unresponsive, boot them from the sim for safety.
  • Watch out for the imposter leaches too, especially if you are collecting money. While welcoming guests, someone arrived with a sign above them announcing, "give $1 here". Since our event had donation stations located around the area, they were obviously attempting to skim donations from the event. After requesting them to leave (with no response) we eventually booted them.

2. The Schedule

The schedule of events must be easily found, distributed, understood, and updated.

  • Make the schedule easily accessible. All too often, event planners think in real life terms that limit distribution possibilities. Put the schedule in a publicly accessible Google Calendar. Staff can chat the calendar link to guests, which then need only click to access the schedule. You can also script objects to chat the schedule link automatically, leaving the human staff to be more personable in their interactions with attendees.
  • I also scripted a simple calendar sign so that people could touch and receive the event main location and the link to the google calendar. This automated approach helps for remote locations without welcome staff and to augment efforts of human staff.
  • Be sure to clearly communicate what timezone is used. Since it is an online event, you will probably have worldwide visitors. Either provide functionality in your schedule to display times from the viewer's timezone, or stick with the SL time (PST).
  • The staff also placed their schedule on a notecard. I noticed each time there was a change, the staff had to not only IM the new version to all the greeters, but also put the correct version in the automated schedule distributors. It caused a bit of confusion and a lot of needless work. Just like printed schedules for real life events, notecards are tough to update when changes happen. Thus, they are probably not the most effective schedule vehicle.

3. Getting the Masses to the Places

People need to know how to get to the event locations, and navigating in Second Life is often difficult, especially to those just beginning.

  • Establish SLURLS for the main locations in each sim you use. Station human staff at those locations to greet and answer questions. You can publish the SLURLS on the web (maybe in a Google Doc, Event website, or event blog) and list them in a notecard inworld. Staff can chat the SLURLS to give guests instant clickable access (teleport) to the location. The easier it is for the guest to get to where they need to go, the better.
  • Be sure to make it flexible enough so that when (not if) the location changes for an event, you can easily update everyone simply by updating one calendar, not multiple ones.
  • At the event, use signs judiciously. Don't overcrowd the area. Arrowed signs work well, as do glowing or particle-emitting signs.

4. Frontline Staff

Frontline staff are the face of an event. They need to know the schedule, where things are, when they happen, and how to quickly explain this to multiple guests simultaneously.

  • Have frontline workers pull-up each visitor's profile when they arrive. Check for unusual names with numbers such as "sean874902 Hax" and for birthdates within a few days. These may be disposable alt accounts that griefers will use for an attack. Having a recent birthdate indicates this avatar was recently created. IM the avatar and ask if they need any help, since you notice they are new (nice gesture if they are innocent, acknowledgement that you are watching if they have nefarious intent).
  • Equip your frontline staff with basic chat scripts for the anticipated repeatable statements, such as, "Welcome to PeaceFest 08," and, "You can find the schedule at the following link: http://tinyURL.com/PeaceFest08". This frees up time to be more interactive and personable. Workers can copy and paste into chat to save time. I used these today and trust me, with 20+ IM conversations occuring at the same time with guests, they were a lifesaver. You could even use scripted greeter programs for this augmented by humans, but it does lose the personal touch.
  • Even if they are volunteers, take the time to do some basic training/orientation with the greeters. It should at least cover all the numbered items in this post.

5. Staff Coordination

Staff must have multiple back channels for effective communication to all levels of Staff.

  • Create a group for the Welcomers, Security Crew, and whatever other logical groups your events require. Use the group chat to keep everyone within that group up-to-date on changes, problems, and status. We utilized this to great effect to insure we balanced the appropriate number of greeters at each location, instantly moving staff to where the crowds needed them the most.
  • You can use Skype or in-world voice direct call when typing is just way too slow.

Sunday, August 10, 2008

MetaHappenings: PeaceFest 08


Date: Friday, August 15th - Sunday, August 17th
Time: 10am-Midnight (CST)
Location: At over 30 different sims within Second Life

What: "A global, interfaith, cross-cultural effort to create lasting peace through mobilizing support for and learning with real-life peace organizations. All proceeds from PeaceFest ‘08 will go to benefit Amnesty International, UNICEF, World Conference of Religions for Peace, Uthango Social Investments, and Kids for Peace.

This event represents a true cross-over from real-life to Second Life and back again as we bring real-life speakers in-world to discuss peace-related initiatives in our global open and free SL forum. Musicians and speakers will be streamed into SL while panel discussions and performances are streamed back out."

Personal Notes: I'll be working at a few of the Saturday events. If you have a Second Life account, log-in and stop by. I believe this SLURL will get you there.