Working remotely or work-from-home can add difficulty to effective communication and collaboration within teams. It is harder to interact with fellow team members when you aren't in direct physical proximity. When working in an office, it is generally easier to know who is available to help answer a question or consult with details for a project. However, for the remote worker, tracking down team members with questions can be time-consuming and frustrating involving phone tag or long email chains. Especially annoying is that this process can completely distract you from what you are working on. The thought is that using a custom Alexa Skill, you can"ping" team members without disengaging from your current task. No switching context to deal with sending an e-mail or finding your phone to text - you simply make the request using voice. You don't even need to lift your hands from the keyboard; just state your ping request and continue on with what you are doing. Team Assist is a hack which helps reduce the friction of being a remote worker.
What it does
Team Assist helps small remote teams better communicate and collaborate. Using Team Assist, you can ping team members via a quick voice interaction with Alexa. Team members, can then reply with the time they are available so you know when is best to call them.
How I built it
The skill was built using the Alexa Skills Kit Developer Console as well as the Alexa Skills Kit for Node.js. The skill invokes a Lambda function written in Node.js. I used AWS Cloud 9 as an IDE for the Lambda (it is excellent!) Data is stored in a DynamoDB table. Functionality of the handler is decoupled using AWS SNS so that slower, asynchronous features don't slow down the user experience.
Challenges I ran into
The main challenge so far has been handling the fact that names which sound the same can be spelled differently: Kathy vs Cathy, Cheryl vs Sheryl, and so on.
Additionally, binding team members to a single team requires some back and forth e-mails and form filling by the team administrator. This was tricky to work out.
Accomplishments that I'm proud of
The way the system handles the different spellings of names is a clever hack.
What I learned
I learned a lot about how to create Alexa skills and the unique challenges of a voice interface.
What's next for Team Assist
The goal is to extend the functionality of the Team Assist to include features useful to smaller, remote workgroups. The next item on the list is to allow team members to request assistance with specific subjects from other team members using the Team Assist skill as an intermediary. For example, if I have a Python question, I can easily ask Team Assist to check with the team to see who can help with Python. Hopefully Alexa notification service will go into general availability soon, making Team Assist even more convenient.