The concept for the Time Out skill came from a six year old. He was asked, simply, what should Alexa be able to do. His answer: "make time out so I know how long until I can get up." The execution was a team effort, but this was his idea from the start.
What it does
The Time Out Skill allows the initiator to set a timer for a "time out" for anyone who needs one. It calls them by name, and can execute a time out for up to 10 minutes. Each minute that goes by, Time Out will provide a notification of the remaining time left, as well as a brief note of encouragement. When the time out has ended, Time Out will notify them that they can get up, and asks that they listen to directions better in the future.
How we built it
After our initial idea we brainstromed about what was feasible. Once we flushed out the idea bit more, we decided on the core features which would constitute our minimal viable product (MVP) Our goal was to provide the best voice experience to the end user. Hence we made it personalized by asking for first name. First Name is stored in session and Alexa uses it in various interactions with the person in time out. It leverages AMAZON.US_FIRST_NAME built-in slot type for names. We built this skill using the Alexa Java SDK. It is hosted with AWS Lambda, and audio files live on Amazon S3.
Challenges we ran into
One challenge we had was, we wanted an easy way for a user to initiate a time out for someone for a set number of minutes. We initially hoped to be able to do this with a single statement: "Alexa, ask Time Out to set a 5-minute time out for Brian." This presented some challenges in incorporating so much information within the initial request. Instead, we broke this up into separate requests. "Alexa, start Time Out for Brian" followed by the duration, "5 minutes".
Accomplishments that we're proud of
I'm really excited that we were able to collaborate across the country, having not done any work together previously, to build a skill that met the requirements of a six year old, in a manner of weeks. In addition, being able to put together a skill that I hope many will be able to use, and that will make Alexa that much more useful and engaging is really exciting.
What we learned
I learned that the ideas of a six year old can be made a reality - and I can't wait to hear what he comes up with next.
What's next for Time Out
There are a few items we have queued for development for Time Out. First, we want to build a way to interrupt the time out and simply restart. Sometimes when someone is in a time out, they need a reminder to sit quietly; an easy way to restart the skill if they are not behaving during a Time Out would help to solve this challenge. In addition, we'd like to look at how we can provide a count of the times that someone has been put in time out. This way, the initiator can use the Time Out skill to track time out frequency and (hopefully) reinforce positive behavior more proactively. For example, an initiator could use the app to verify that they've used the Time Out skill less than 5 time in a week, and thus whomever they've placed in Time Out earns a treat, gets extra play time, etc. We are floating a few ideas for related time out skills. One would provide a more casual time out, using jokes and silly sound effects. Another would allow the initiator to put their phone or another piece of technology into an extended time out (e.g. for a tech-free dinner).