AWS
Alexa

[alexa day 2019 参加レポート]Backlog for Amazon Alexa enhance を 全部見せます


概要

登壇者: 伊東 知治さん

スライド: https://speakerdeck.com/haruharuharuby/backlog-for-amazon-alexa-enhance

ターゲット: Alexa Skill の開発の経験があるかた、もしくは、興味のあるかた

プロジェクト管理ツール Backlog とリンクすることのできる Alexa Skill version 2のエンハンスの中身全部見せます。

全ての機能をどのようにエンハンスしていったか。会話設計から各APIの実装、テストまで全部見せます。

引用: https://alexaday2019.aajug.jp/session/168/


導入


  • Backlog for Amazon Alexaというスキルがあり、今回v2の開発において...な話



  • v1の設計は主に以下から構成していた


    • communicationレイヤー


      • ユーザーとの会話を豊かにするレイヤー



    • workflowレイヤー


      • 発話内容から意図を汲み取り、処理するレイヤー



    • repositoryレイヤー


      • backlogAPI叩いたりしてデータを扱うレイヤー






Be a adviser


  • ボイスアシスタントは機能ではなくノウハウを実装すべき(アドバイザーであるべき)

  • プロジェクトマネジメントにおけるボイスアシスタントの役割はなにか考える


    • プロジェクトマネージャーは普段どうしてるのか考えてみる

    • インプット -> 分析/判断 -> 決定 じゃね?

    • つまり、アシスタントからは意思決定のための情報が欲しい

    • backlogの全機能をalexaから使える事ではない



  • backlogとユーザーをつなぐ部分にボイスアシスタントが一手間加える感じ


それを踏まえて新しい設計/実装


  • v1の設計をベースに、以下を追加


    • analyticsレイヤー


      • backlogから取得したデータを分析するレイヤー





  • aws codeStarおすすめ

  • codeStarは裏でcloudformationのデプロイが走る


    • ASK-CLIより遅い

    • エディタがcloud9はちょいネック



  • プロジェクト作成後、即デプロイすること


    • パイプラインを確立させておく

    • その後変更を加えていくのが安パイ



  • interactionModelを作ってあとからcodeStar経由でのデプロイは不可能


    • 注意書きにもそうあるっぽい



  • スライドではi18n/localizationなことにも触れてるので、多言語対応するなら参考になる

  • communicationレイヤーでは Talkクラス を作って、会話を構成してる

  • workflowレイヤーはハンドリングするだけなのでとてもシンプルに


感想

設計論的な話がメインで、アプリケーション設計とか勉強している身としてはとても面白かった。

- 関心事はなにか

- ボイスアシスタントはなにをすればいいのか

- オブジェクト指向

- DRY

などなどを考えた結果、こんな感じになったのかーととても心打たれた。

あと、codeStarおすすめは繰り返しおっしゃっていたので使ってみたい。