Lessons learned - OneGC Alexa Proof-of-Concept
General
- The basics of developing an Alexa Skill are fairly simple and easy to learn.
- AWS services have a steep learning curve and the documentation isn't always great.
- Calls to and from AWS services are asynchronous; developing for asynchronous functions is very different than for synchronous ones and takes some getting used to.
- It's much easier to develop locally and use the Alexa Skill Kit Command Line Interface to deploy your Skill than it is to do everything via the Web interfaces provided by Amazon.
- Setting up an AWS account correctly is a lot of work
- Permissions are very granular, which means a lot of overhead setting up minimum-required permissions for every user, group, and role
- The looser the permissions, the more likely you are to have billing surprises
- There are significant benefits to setting up multiple accounts under an organisation to manage permissions and billing.
- Billing alerts and reports are 24 hours in arrears, so by the time an alert is triggered it's already 24 hours too late.
Set up
- What went well
- What could have gone better
- What to do next time
- What needs to be fixed to make it better
Hello, world Skill
- What went well
- A hello, world Skill is provided by the Alexa Skill Kit; all that's needed is to install it.
- Installing a Skill is very easy using the Alexa Skill Kit Command Line Interface.
- Modifying the Skill to add the ability to specify who to say hello to was straightforward when using the AMAZON.FirstName slot type.
- What could have gone better
- The initial deployment of the Skill failed as I created the Lambda function in the Canada region, which is not supported buy the Alexa service.
- Using an AMAZON.SearchQuery slot did not work and it was not possible to identify the cause of the failure as there was no error message provided.
- What to do next time
- What needs to be fixed to make it better
- Improve the Amazon documentation to make it clear which regions are supported by Alexa.
Parks fees
- What went well
- After having built a hello, world skill and having learned the basics of building an Alexa Skill and using AWS Lambda, those parts of the development of the Parks fees Skill were easy.
- What could have gone better
- Transforming the data into a state in which it could be imported into DynamoDB was a lot of effort due to the dataset being designed for a relational database system and the poor documentation of DynamoDB.
- Querying data from DynamoDB is case-sensitive, but Alexa lower-cases everything. We had to duplicate the 'park name' attribute to have properly-cased and lower-case instances so that we could both search it and display it.
- The Alexa service can't handle park names containing non-English names or words.
- What to do next time
- Using a relational database system would have been easier than using DynamoDB.
- What needs to be fixed to make it better
- Improve Alexa service to recognise non-English words and names.
Flash briefing
- Easy to start
- Helpful resource: Steps to Create a Flash Briefing Skill
- Flash briefing template does not support ATOM feeds
- Flash briefing template only supports HTTPS
- Alexa voice flash briefings are better if source material is voice (e.g. podcast)
To do
Micro-Mission Experience at TBS
What went well
- This was my first micro-mission ever (4-week assignment) and it was a great learning experience.
- The TBS team was very welcoming, friendly and had good communication
- TBS location made it ideal for me to try a different restaurant every day while working downtown Ottawa
- I was able to learn about TBS, Alexa Skills, and other departments needs
- I was able to share my knowledge and Alexa Skills experience with other participants and provide them technical support
- I was glad to have had two weeks to ramp up on Alexa prior to hosting the 4 departments
- I was happy to meet very motivated developers from 3 out of 4 departments on the 3rd week
- GitHub was a nice platform to share code and host a wiki for developers and designers
- The OpenGov WiFi was instrumental for the development and testing of Alexa Skills on the Amazon Echo device that was assigned to me (no proxy settings nor firewall issues)
- It was the first time that I worked in the open (publicly-faced GitHub repositories). This was a great way to share our experience of Alexa Skills with everyone in the world.
- I really like the fact that TBS sent out Tweets to tell the world about our event.
- The meeting rooms used when hosting the event are well suited for a collaborative effort with the big TV screens and open WiFi.
What could have gone better
- It would have been great to have a developer from the 4th department on the 3rd week
- It would have been great to start our 2-week collaboration with all 4 departments in mid-July. But since it started later, I will probably miss the ending.
- The original plan was to start on the 2nd week of July. It got postponed to the 4th week.
- The good news is that we got to meet the developers on the 3rd week
- Got to see their dataset, think about their use cases and provide a day-long Alexa Skills training
- Alexa Skills has a lot of training material, code samples and tutorials scattered all over the web. I would have liked to see a well defined and structured course to cover all the key concepts for developing a voice assistant skill. There's an AWS Certification. But, there doesn't seem to be an Alexa Skills Certification from Amazon.
- The furniture in the open space area is definitely not adequate for long periods of software development. The table and chair height were not adjustable and it caused shoulder and forearm pain.
- For a good live debugging experience, 3rd party developer tools are needed for a good end-to-end software development experience. It would be great for Amazon to list these tools in their documentation and provide guidance for end-to-end software development and testing.
- I would have like to download an Alexa desktop application directly from Amazon instead of relying on a 3rd party application.
What to do next time
- Consider inviting local businesses, companies, provincial governments (e.g. Ontario), crown corporations (e.g. CBC) or departments to share their Alexa Skills experience with the participants.
- Consider inviting or hiring consultants or companies to provide a structured training to participants.
- Consider getting firm commitments from the supplier (e.g. Amazon) several weeks in advance.
- Consider getting the developers from the different departments on a 4-week micro-mission with the goal of releasing an official Alexa Skills for their respective department.
What needs to be fixed to make it better
- Book meeting rooms well ahead of the event
- Have ergonomic furniture in open spaces
- Consider inviting or hiring companies that can provide training.
- Consider inviting or hiring companies that can help departments continue the development of their Alexa Skills well after the 2-week hackathon.
- It would be awesome to have at least one developed Alexa Skills go through the submission process and become available for all Canadians using Amazon Echo devices or the Alexa app on their smartphone.
Template
- What went well
- What could have gone better
- What to do next time
- What needs to be fixed to make it better