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.
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
Template
- What went well
- What could have gone better
- What to do next time
- What needs to be fixed to make it better