この記事は個人開発 Advent Calendar 2018の記事です。
目次
作ったスキル
全部紹介しているとそれだけで記事がLPのようになるので一部をピックアップしてみました。だいたい「試したい技術のテスト目的」「家で使いたかったもの&それの派生系」「その他」の3種類にわけています。
試したい技術のテスト系
これは都道府県トリビアや茶道ガイドが当てはまります。前者は「オープンデータとAlexaって相性が良いのでは?」という仮説から着手したもので、公開済みスキルでほかに2つ、現在レビュー中のものが1つあります。後者については、「SearchQueryを使った検索をブーストする方法」を試す中で、Amazon Elasticsearch ServiceをDBに利用しています。技術的な話などは以下のスライドにだいたいまとめています。
このほかにもToday KanjiというUS向けスキルでスキル内課金(In-Skill Purchase) にトライしたりもしています。
個人で実装を試すだけでも勉強にはなりますが、やはり実際に公開できるものまで持って行った方が学びはすごく多いです。
家で欲しかったシリーズ
西宮市ゴミガイドがまさにこのシリーズです。「町名をいちいち言うのがめんどくさいからDynamoDB追加」「朝教えて欲しいからリマインダーAPI導入」など、アップデートするメリットが自分にあるため、テスト系スキルと比較するとアップデート頻度が段違いです。
また、ねこのトイレ時間記録スキルを公開後に同様の機構を利用して赤ちゃん向けのスキルを公開するなど、このシリーズは横展開が多めです。
「欲しいから作る」がやはり一番モチベーションでますね。ただ「ソースはほぼ共通だけどソースが異なる」という仕様に対して再利用性が高くない(git cloneかgit branchで枝分かれ)状態なので、Lambda Layerやnpmへのエンジン公開などを含めて今後検討していく予定です。
その他のもろもろ
その他にも突発的な思いつきやコミュニティイベントで使いたいなどの理由で作ったものがいくつかあります。
「何時間でスキルを公開できるか?」というタイムアタックのために公開した消費税計算スキルや、ただの出オチネタとして作ったダイヤルアップ接続音を再生するだけのスキルなどは思いつきシリーズです。ダイヤルアップの方はどう言うわけか日英2言語対応までしてあります。
そしてAWSコミュニティのイベントで使うことを想定したスキルとして、Cloud Quiz Gameというものがあります。「AWSカルタ」というゲーム名なのですが、スキル名・呼び出し名にAWSの商標が使えないことと、一番言いやすくAlexaが反応してくれやすいことからこの名前に落ち着きました。
大量生産して何が起きたか?
19スキルも公開しましたが、ニッチなものか出オチなものばかりなので特にリワードなど獲得したことはありません。また本職は「AWSが使えるフロントエンド系エンジニア」なので特に自分の仕事としてAlexaスキルを作るようなことも今の所ありません。ですが開発の際に感じたことなどを2015年ごろからオープンにし続けていたこともあり、Alexa Championsに選出していただくことができました。
またAmazon Web Service Japanの方経由ではありますが、自分のAlexa SkillがAWS re:invent 2018の1企画に採用されるという出来事もありました。 -> 詳細はこの記事を
ちなみにre:inventの期間だけこのCloud Quiz Gameを有効化した数が突出していました。
気に入ってもらえてなによりですが、カルタ札がないと遊べないので今後はクイズ形式もサポートしないとだなと思っています。
副次的におきたこと
複数のスキルを作成・メンテナンスする関係でどうしても汎用的な処理をまとめる必要がありました。そのため気がつけばnpmに自作のパッケージを公開することになり、公開するという作業を経験したことで仕事で使う汎用処理も同様に公開していくようになりました。
去年までは「やってみた」で公開したきりのパッケージが1つあるだけだったのですが、今ではAlexa / AWS / Stripe / SPARQLなど10種類のライブラリを公開しています。こういうパッケージを公開しだすと、JSDocやTypeScript・Jestなど試す機会を伺いつつ仕事への導入に躊躇いのあったものをどんどん試せるようになるので、仕事にも好影響かなと思っています。
個人開発ってどうなの?
「仕事で使わないことやってもなぁ」という気持ちと、「仕事でやることをプライベートでやるのもなぁ」という気持ちの両方が個人開発をはじめる際のハードルかなと思ったりしています。が、「やったほうがいいですか?」と聞かれたら「え、なんでやらないの?」という風にも思います。
勉強の形にはいろいろありますし、人によって向き不向きもあります。ですがどうせ覚えるならやはり実践形式が良いかなと思います。楽器ならとりあえず最初から最後まで演ってみますし、野球ならとりあえず打席・マウンドにたちます。もちろん練習の場でですし、そこで「いやそれ本番でやらんでな?」と言われたことはやりません。
個人開発のいいところは「ダメでもともと」という気持ちでやりやすいことかなと思います。仕事の案件だと失敗した時に方々に頭を下げたり、必死で復旧作業したりしないといけないですが、個人で趣味の範囲でやってるものであれば、最悪クローズしてしまえば終わりです。課金サービスならばまた事情は変わると思いますが。
なんで、とりあえずやってみるというのはいいと思いますよ。
余談
みんなダイヤルアップのあの音好きすぎじゃないですかね。
日本でもアメリカでも地味な伸びを見せていて、どの国でも好きな人は好きなんだなぁと思いました。