Alexa スキルアワード ハッカソンに出場して、たった2日で初めてのJavascriptを使用してスキルを作成した人の話
少し前になりますが、6月下旬にAmazon Alexa スキルアワードハッカソンに出場しました。
Alexa 知っていますか?
Amazonが出しているスマートスピーカーです
経緯
私は昨年からスキル開発を行っており、いつもpythonで作成をしていました。私はコードがさほど書けません(セキュリティエンジニアのため、普段はコードを書くことはありません。いつもネットワークなどです)。趣味程度はできますが、プロダクトを作成することはあまりなかったです。実は昨年度も出場し、ファイナリストまで勝ち残り、賞をもらうことができました! 昨年は優秀なエンジニアの方がいらっしゃったので、私はマネジメントおよび動画作成などのマーケティングの部分を担当しうまくいきました。おそらくそのような仕事をあっているのかなと。
次のステップをいくにあたっては、やはり自分でコードをかけるようになりたいし、あわよくば教えてもらいながらスキル開発をしたいとのことで、参加しました。
結果は最高のアウトプットが出せました。
チームビルド
ハッカソンの面白いところはその場で人を集めることから始まります。
流れとしては、
1.アイスブレイクを兼ねた自己紹介タイム(ランダム)
=>今回は3つ自己紹介の文を考えるのですが、必ず一つは嘘を書かないといけない。どれだけ相手を騙せるかというゲーム性の高いアイスブレイク。
2.自分が想像するスキル
=>とにかく思いつくスキルを紙に書く
=>その後に一番を決めて、プレゼンできるように紙にアピールポイントなどを書く。
3.いろんな人にプレゼン
=>必要なリソースを集めれるように仲間を集める。いいアイデアを見つけ、アサインできるようにする。
4.アイデア投票会
自分が良いと思ったアイデアに星をつけていく
=>何個つけても良い。
5.チームビルド
=>自分が実際に組みたい人を探す。アイデアでも良いし、人柄でも。私は自分が考えたスキルに近い人のチームに入りました。
***大事なこと***
=>アイデアが良かったからといって、人が集まるわけではないし、ハッカソンで勝てるわけでもない。
チームメンバー
エンジニア2人(私:ひよっこエンジニア、もう1人の方:ベテランエンジニア)
マーケター 1人
エンターテイメント 1人
この流れだと、ベテランエンジニアの方がコード書いてブラッシュアップして..となるかなと思いました。
私にとって最高の環境が訪れました
「やってみたら?」
ちなみにハッカソンは2日間あります。実質使用できる時間は16時間くらいです。
ハッカソンの開発前の私のスキルとVUI設計など
この時点での私の環境
・Javascript(以降JS) progateでしか触ったことがない。基本文法 飛んでるの巻
・Python そこそこかけるし、これでスキルを作ったこともある
・AWS Lambda以外できない笑
この状態でかなりまずいと思った。 文法が分からないとは以下のことをさす。
const function name = () => {
//処理
};
モダンなJSの書き方しか知らない私は????となった。
ベテランエンジニアの人が丁寧に教えてくれました。
お分りいただけただろうか。
設計どころでもなく、コーディングもできない。。。
どうしよう2日間笑
VUI(Voice User Interface)のいいところとアレクサスキルの開発環境が整っていたおかげでなんとかなります。
VUIのいいところ
・設計思考が大事で、条件分岐のモデルを作成すれば意外とあとは簡単。しかし、UXを高める工夫などが必要で、どのようにしたらユーザーが答えやすくなるかなどを考える必要がある。
・高度なアルゴリズムを組む必要がない(音声の処理はAlexa自身で行うため)
Alexa スキル開発環境
・Lambda は用意してあり、自分のAWSアカウントを作成する必要がない(スケールを拡大する為には移したほうがいい)
・S3も使用できる!
などなど開発環境・リソースが豊富です。
初日
目標はフレームの完成。発話モデルの構築など。
関数を設定することや、メモリ機能の実装などかなり助けてもらいながらコードを書きました。JSむずいなと思いながら一生懸命しました。
初日の出来:アレクサが喋るようになるまでは実装できました。
私は残りの発話モデルの完成などを徹夜で行い、チームの皆と勝ちたいと願いました。
2日目
ベテランエンジニアによるデバック。
これがかなり勉強になりました。条件文の効率の良い書き方、そしてリマインダーAPIの作成などかなりの部分を手伝ってもらいました。
2日目は細かい部分の改修をしていました。残りのチームの皆が本当に頑張ってくれてなんとか形になりました。
結果発表
ハッカソンなので、順位がつきます。
全部で18チームもあったので(ぼっちそんずを含む)、票がばらつきました。
そんな中、上位入賞できたので、安堵。
2日間やりきったという思いでいっぱいでした。
感想
JSのコードの書き方、基本的なスキルの開発など一通りを全て自分でできるようになり、人生の楽しみが増えました。
また、エンジニアとしても少し成長できたと思います。
やっぱりものを作るのって楽しいですよね^^
悩んでいる人、できないんじゃないかと思う人、大丈夫です。
一歩踏み出せれば、いろんな人があなたを支えてくれます。そう感じました。0を1にするのは難しいですが、なんでも挑戦することが大事。
このような大会はとってもいい刺激になりますよ!
ちなみに、こんな立派な懇親会があり、感動しました^^