Thursday, March 12, 2015

Multitasking game Hands Numbers Song

Most of us find ourselves multitasking at some point and are possibly even proud of our multitasking skills. Here is one game that was created by Alan Cyment with collaboration from Tobias Mayer and introduced to me by Gerry Kirk and Yves Hanoulle at SDEC11 that allows you to simulate the costs of task switching. Ive since used it elsewhere and the results were quite effective for shaking the multi-tasking misconceptions.

(Note: Alan added a comment to this blog and Ive incorporated some of his new ideas and changes - thanks Alan!)

The Game

Materials needed

  • 6-20 people (note - if you have more than this, just split into multiple groups. In theory you can handle as many people as you have space for)
  • One facilitator
  • One stop watch
  • White board / Easel or equivalent to record a few scores.

Suggested questions to ask before the game

  • Who values multitasking?
  • How many projects are you working on right now?
  • Can we juggle tasks well?
  • Who is great at multitasking?

Practice / Warm-up

  1. Have each person pair up and then line up in two lines facing each other like this:
  2. A1 A2 A3 A4 A5 (A1 faces B1, A2 faces B2, etc)
    B1 B2 B3 B4 B5
    • If you have an uneven number, you can ask one person to be your time keeper. If you have some sceptics or others who don’t want to participate, you can ask them to be observers ;). However, you need at least 3 pairs and more is better.
  3. Have each pair practice the Hands activity as below
  4. Now switch pairs by having everyone in line A move one spot. A5 will have to move all the way to A1. Your line should now look like this:
  5.   A5 A1 A2 A3 A4 (A5 is paired with B1, etc) 
      B1 B2 B3 B4 B5 
  6. Have each new pair practice the Numbers activity below
  7. Now switch pairs again by having everyone in line A move one spot. You should now look like this:
  8.   A4 A5 A1 A2 A3
      B1 B2 B3 B4 B5 
  9. Have each new pair practice the Song activity below

Performing the game

  1. This game will be performed in two rounds
  2. Round One:
    • You as the project manager will tell the teams which activity (project) to work on.
    • You will bark out instructions ("Shout-Driven Develolpment") and they are expected to switch tasks on your command. For each activity they need to switch to perform the activity with the pair they practiced that activity with. (This will involve a lot of movement.)
    • When each pair resumes an activity that they have already started they must pick up where they previously left off.
    • Your time keeper should record the time when the whole team (all pairs) have finished each activity.
    • Keep asking the team to task switch every 2-10 seconds (be random!) until all pairs have completed the activities.
    • Record the completed time for each activity.
  3. Round Two:
    • You as the project manager will tell them the priority of the activities (projects). You will ask them to complete Hands first, Numbers second, and Song third. You ask them to complete each activity (project) before starting the next.
    • Your time keeper should record the time when the whole team (all pairs) have finished each activity.
    • Record the completed time for each activity
  4. Your results should look similar to the results in the image below. Note: we played this game twice after adding more people - the purple numbers are the results of the second game.

    Additional Tips and or Alterations

    Alan Cyment commented on this blog (see below) with some alterations and changes that he is using. Take a look at some of these additional tips and ideas:
    • Have the group decide how to rotate partners instead of defining the rotation for them.
    • Run the sequential round first and then the multitasking round.
    • Have the group choose their own song instead of Happy Birthday.
    • For larger groups, ask them to put their hands up when they complete each project. This will help the time keeper to understand when each project is completed amidst the chaos.
    • Instead of acting as the project manager, act as the product owner who represents three different customers/stakeholders.

    Questions:

    • What did you think of the game? 
    • What are some conclusions you can draw about how you are currently working? 
    • Notice that in the second attempt you completed all three tasks before you completed the first one in the multi-tasking round. What do you think about that? 
    • For the two rounds, notice your time to market.
    • How different was the quality of your product in round one and two?
    • What did you notice about your stress level in round one and two?
    • What does this game teach us about sustainable pace?
    • Describe your discipline level in each round. How much did your team cheat or ignore the managers orders?
    • How does that affect how you will work? 
    • What happens when you task switch? 
    • What are the costs to juggling tasks? 
    • How can we change the way we work to take advantage of this? 
    • What are the barriers to making this happen? 
    • How can you respond to someone who is asking you to switch to another task or to split yourself between two or more projects?

    The Activities:

    Hands:

    • Clap your own hands / Clap your both of your partner’s hands 
    • Clap your own hands / Clap your partner’s right hand 
    • Clap your own hands / Clap your partner’s left hand 
    • Clap your own hands / Clap your right hand to your left foot 
    • Clap your own hands / Clap your left hand to your right foot 
    • Repeat once

    Numbers:

    • First person holds up 1 finger / second person claps once 
    • First person holds up 2 fingers / second person claps twice (up to five) 
    • Then switch roles and repeat once

    Song

    Sing/say the Happy Birthday song alternating each word. One person says the first word, your partner says the second, you say the third, etc:
    • Happy birthday to you 
    • Happy birthday to you 
    • Happy birthday dear <name> 
    • Happy birthday to you 
    • Repeat once

    Additional Resources:

    Stats

    From QSM 1, Systems Thinking (Dorset House, 1992). Jerry Weinberg:
    • # of tasks = 1 - Time spent on task = 100% 
    • # of tasks = 2 - Time spent on task = 40% 
    • # of tasks = 3 - Time spent on task = 20% 
    • # of tasks = 4 - Time spent on task = 10% 
    • # of tasks = 5 - Time spent on task = 5% 
    • # of tasks = more than 5 - Time spent on task = random.

    Links on Multi-tasking

    • Emails ‘hurt IQ more than pot’ 
    • Leanblog podcast featuring Dave Crenshaw - author of “The Myth of Multitasking” - http://www.leanblog.org/2010/10/podcast-100-dave-crenshaw-the-myth-of-multitasking/
    • The Myth of Multiasking - by Christine Rosen
    • A blog with some cited research and links to short videos
    • Three Myths and Three Tips - article by Johanna Rothman
    • Brain Research - The Myth of Multiasking - video.
    • Why Limit Your WIP: A 10 part series - Jim Benson.

    Links on combatting multi-tasking

    • Questions to ask to find out the urgency and importance from JB Rainsberger:
      • What’s the good business reason to do this? (One of my favourites) 
      • Why should I do this specifically today? 
      • What would be the consequence of not doing this?
    • Article by Johanna Rothman on how to say no
    • Some articles by Esther Derby on this topic: 
      • Yes. No. Negotiate
      • Breakthrough Thinking on Worker Productivity 
    • 7 Things Highly Productive People Do
     Subscribe to Winnipeg Agilist by Email
      Read more »

      Reminder Google Apps Hackathon on Tuesday August 24th

      Our Google Apps Hackathon is just over 1 week away. We put together a site where you can find directions, announcements, and other resources to help you get started. The hackathon is open to all developers interested in integrating with Google Apps, whether or you’re an ISV looking to sell your app in the Google Apps Marketplace, a system integrator or reseller, or use Google Apps for your own business.

      Tentative Agenda:
      9:45 AM - 10:15 AM : Registration
      10:15 AM - 11:00 AM : Opening remarks & overview of Google Apps & Google Apps Marketplace
      11:00 AM - 4:00 PM : Open time for coding, asking questions
      4:00 - 5:00 PM : Demos & Presentations from attendees
      5:00 PM : Closing remarks

      Well also be running a series of short presentations and discussions on various topics starting at 11:00 AM for those interested. Planned topics include:
      • Marketplace APIs
      • OpenID & OAuth
      • Gmail contextual gadgets
      • Administrative APIs
      • Docs APIs
      • Calendar APIs
      • Contacts APIs

      There will be plenty of time to try out APIs, ask questions, and get hands-on help from members of the Google team and other local developers. Bring your laptops and come hang out at Google. Lunch and snacks will be served.

      When: Tuesday, August 24th from 10AM to 5PM.
      Where: Google Campus: 1600 Amphitheatre Pkwy, Mountain View, CA 94043.

      If you haven’t yet signed up and would like to attend, you can register here.

      Want to weigh in on this topic? Discuss on Buzz

      Read more »

      Wednesday, March 11, 2015

      Calendar API v3 Best Practices Reminders

      We recently posted some best practices for working with recurring events in Google Calendar API v3. In this blog post we’ll highlight another improved area in the v3 API: event reminders.

      Reminders

      Google Calendar API v3 offers developers flexible control over event reminders, including per-calendar default settings and custom overrides for individual events.

      The user’s default reminders for events on a given calendar can be found in the corresponding entry in the Calendar List collection. The Calendar List collection acts a bit like a list of bookmarks, containing entries for the calendars that the user owns or has looked at in the past (it corresponds to the content of the "My Calendars" and "Other Calendars" list on the bottom left in the Web version of Google Calendar). Each entry is annotated with user-specific settings for the individual calendar, such as the preferred color in the UI and the default reminders.

      Google Calendar currently supports three ways of reminding its users of events: "popup", prompting a message directly in the browser, mobile phone or desktop client, as well as "email" and "sms" for messages sent through the respective channels. To change the defaults, update the Calendar List entry and include the reminder method and how many minutes in advance the user should be alerted. In the following example, we set an email reminder to be sent 60 minutes before an event, and a popup reminder 10 minutes before.

      {
      "summary": "Work Calendar",
      ...
      "defaultReminders": [
      {
      "method": "email",
      "minutes": 60
      },
      {
      "method": "popup",
      "minutes": 10
      }
      ]
      }
      A Calendar List entry with title and default reminders.

      The default reminders will be applied to all existing and future events on this calendar, provided they don’t have custom reminders set already. In contrast to earlier versions of the API, newly created events will also have reminders set by default.

      Sometimes, there are events that we want a special reminder for, or none at all. To override the defaults for a specific event, switch the useDefault flag in the reminders section to false, and include a set of custom reminders, or leave the list empty. When you define a set of override reminders for a recurring series, they are automatically applied to each of its occurrences, unless they have been overridden explicitly. Like the default reminders on the calendar, these are personal reminders for the user that is logged in, and will not influence the settings others might have for the same calendar or event. Here is an example that overrides the default reminders with a 15 minute SMS reminder for that specific event.

      {
      "summary": "API Office Hours",
      ...
      "reminders": {
      "useDefault": false,
      "overrides": [
      {
      "method": "sms",
      "minutes": 15
      }
      ]
      }
      }
      An event representation with title and reminder overrides.

      The defaults for the given calendar are included at the top of any event listing result. This way, reminder settings for all events in the result can be determined by the client without having to make the additional API call to the corresponding entry in the Calendar List collection.

      In this post and an earlier post about best practices with recurring events, we have covered some improved areas of the latest version of the Google Calendar API. Have a look at the migration guide for a more complete view of other changes we made in the new version, and let us know what you think.

      If you have any questions about handling reminders or other features of the new Calendar API, post them on the Calendar API forum.


      Peter Lundblad   profile

      Peter joined Google in 2006. Hes been leading the Calendar API team for the last 2 years. Hes previously worked on video uploads for YouTube.


      Fabian Schlup   profile

      Fabian is a Software Engineer at Google in Zürich, working on Calendar and Tasks, with a focus on APIs.

      Read more »

      Brown University’s IT Dept uses Apps Script to manage Vacation Calendar


      Editor’s Note: Stephanie Obodda oversees Computer Training and Communications for Brown Universitys central IT department. She was on the project team that helped Brown "go Google" in 2010.

      In our 170-person IT department at Brown University, we had a less-than-ideal way of sharing sick/vacation time among coworkers: sending an email to a Listserv. This was inefficient - mails were not written in a standard format, so it was difficult to determine who would be out on a certain date. Some teams would notify each other of time off by sending personal invites to their vacation events, but this resulted in cluttered calendars.

      The Solution

      Since most of my coworkers were already creating events on their calendar to indicate their vacations, a calendar-based solution seemed most convenient. The script I wrote simply requires them to perform one additional step: when creating their vacation event, they invite a specific email address as a guest.



      The script:
      • Aggregates events from the invited ‘out’ calendar, keeping only the relevant information: person, date, and type of event (from keywords like vacation, sick/doctor, or conference)
      • Creates a single daily event on another calendar with the day’s “who is out” list. We can overlay this calendar onto our own without having an overwhelming amount of individual “out” events.
      • Each morning around 9am, the daily Out list is automatically posted on a Google Site.

      A single daily event on a shared calendar contains the list of who is out that day.

      Code snippet - function which determines the type of event based on keywords in the event title. The keywords were chosen with the help of our HR Manager and several co-workers.


      Something that streamlined the process was using up a dedicated email address for the calendar and script. This allows people to invite a simple, easy-to-remember email address to their vacation events and gave us a neutral place to store the script (not a personal account).

      One issue I ran into while writing the script was that the user who created the event wasnt always the person who was out of the office because assistants often put these events on calendars. I received great feedback from the Apps Script forum. This is essential because we do delegated calendaring, and assistants put vacation events on the calendars they manage.

      I’m not employed as a programmer - I’m a trainer with some self-taught ActionScript, JavaScript and PHP skills, and I found it very easy to wrap my head around Google Apps Script.

      Want to weigh in on this topic? Discuss on Buzz

      Read more »

      Apps Script Hackathon in Austin TX

      Hello Austin! We had such a blast with our previous Apps Script hackathons in Washington DC, Mountain View, Chicago and NYC that we’re spreading the joy to our friends in Austin. If you’re an Austin-based developer looking to learn more about Google Apps Script, meet the Apps Script team or just to meet other like-minded developers and build cool things, don’t miss out on this event! We will be holding a hackathon on Thursday, September 13, 2012 between the hours of 2-8pm Central Time at our Austin, TX office.

      We’ll be covering the basics of Apps Script for new developers as well as going over a brief overview of all the new features we’ve launched since Google I/O. We’ll be providing the four Ps: power, ping and pizza pie (that’s power strips, wireless internet and food for those of you that aren’t sure!), as well as experts on hand to help you turn your ideas into great apps. Check out the details of the event and RSVP once you know you can make it!

      Ikai Lan   profile

      Ikai is a Developer Programs Engineer working on Google Apps Script. Prior to Apps Script, he worked on Google App Engine. Ikai is an avid technologist, consuming volumes of material about new programming languages, frameworks or services, though more often than not youll find him advocating pragmatism over dogma in the solutions he proposes. In his free time he enjoys the great outdoors, winning Chinese language karaoke contests and playing flag football. He resides in New York City, where he watches in anguish as his favorite sports teams from the San Francisco Bay Area implode season after season.

      Read more »