2017/12/11

「遊び心を実現する技術」と「リリースする度胸」

さくらインターネット Advent Calendar 2017」の11日目の記事です。


SIerからフロントエンドエンジニアにジョブチェンジして早2年。
主な仕事内容は、さくらのクラウドのネタ機能開発自社サービスのエゴサをすること。

前職とはうってかわって、楽しみながら仕事をしている!

ということで、当記事ではいままでにリリースしてきたネタ機能の紹介と、リリースまでこぎつけた「遊び心を実現する技術」について書こうと思う。

※若干ポエミーですが許してください。

リリースしたネタ機能


さくらインターネットに入社して、今までにいろいろなネタ機能をリリースしてきた。
その一部を紹介する。

桜葉愛が声でお知らせする「音声通知機能」


2016年4月1日にリリースしたのが、サーバをつくったり、起動が終わったときに桜葉愛の声でイベントの完了をお知らせする「音声通知機能 Ωバージョン」
技術的な話をすると、APIリクエストのレスポンスコードを使って、それに応じた音声をHTMLAudioElementを使って再生している。イラスト表示にはガチャ要素もあり、季節に応じてレアイラスト(3%の出現率)がある。

ちなみに「音声通知機能」は「サウンド通知機能」と名前を変えて正式リリースされた。超絶裏話だがサウンドはCubase付属のHALionOneを使っており、リクエスト成功時の音はD9コードのアルペジオだ!


おすすめサービスがわかる「さくらのおみくじ」


2017年3月31日にリリースしたのが、お客様のオススメサービスがわかる「さくらのおみくじ」
こちらは難しいことはしておらず、単純にランダムでおみくじ結果を表示している。



各コンパネのリンク集「さくらのコントロールパネルリンク」


2017年5月22日にリリースしたのが、さくらの各コントロールパネルのリンクをまとめたChrome拡張機能の「さくらのコントロールパネルリンク」
とあるミーティングででたアイデアを試しに作ってみたら正式リリースされてしまったのがこのChrome拡張機能。
Sortable.jsを使い、D&Dでユーザ好みの配置に変更できるようにしたり、素のJavaScriptでdocument.createElementで動的にメニューを作ったり、BEMでCSSを書いたりといろいろ頑張っている。


他にもいろいろネタ機能があるが、長くなりそうなので割愛する。



「遊び心を実現する技術」と「リリースする度胸」


「え、そんなんリリースしていいの?」と思われるかもしれない。

社風が自由で何やってもいいような雰囲気はあるのだが、リリースまでにはちゃんとした手順を踏んでいる。そんな遊び心を実現するために、私は以下のようなフローで開発している。

  1. 思いついたらメモ
  2. 少数の同僚に相談
  3. 動くものをつくる
  4. 企画チームに報告、リリースの相談をする
  5. 完成させる
  6. 多分動くと思うからリリースしようぜ

以降、それぞれの項目を深掘りしていく。

1. 思いついたらメモ


会社のデスクに向かっているときは、面白そうなアイデアなんてこれっぽっちも浮かんでこない。「Eureka!!」と叫ぶときは決まってプライベートのとき。
そのため、何か思いついたらその場でSlackのプライベートチャンネルに雑にメモしている。

直近のメモはこんな感じ↓

Slackをつかう理由はいろいろあるが一番の理由は「仕事中でも目につく」からだ。
メモしても、メモしたこと自体を忘れないため、定期的に見返すSlackを利用している。


2. 少数の同僚に相談


いい感じのアイデアが思いついたら、同チームの歳の近い同僚2人に相談する。

いきなり大勢に相談するとだいたい意見がまとまらない。
全体像が見えていない時点での相談なので、各々の意見がバラバラになるのは当然のことだ。

だから最初はこの2人に相談してアイデアを練っている。


3. 動くものをつくる


飽き性なので、アイデアを練っているだけだとすぐに飽きてしまう。
社内調整もなにかと面倒で、相談するだけで1週間、回答もらうまでに1ヶ月と時間が経ち、「こんな面倒ならもう開発しなくていいや」と思ってしまう。

だから一番モチベーションが高い段階で一気に動くものをつくる(完成度は60%くらい)
まだリリースできると決まったわけではないので、なるべく時間をかけずに作るのがポイント。


4. 企画チームに報告、リリースの相談をする


完璧な企画書より、不完全なモック

私には人の心を掴むような文才がないので、とにかく「動くもの」を見せてアイデアを説明する。そうすることで否定的なワードより、「こうしたらどうかな?」という建設的なコメントを多くいただける気がする。
さらに「文章」よりも「モック」のほうが想像力が掻き立てられるので、新たなアイデアや粗が見えてくる。



5. 完成させる


モックの段階では「ただ動くだけ」なので、コードもグチャグチャだし、デザインも洗練されていない。

リリースの許可が得られたら、ようやく本開発する。
コードを書き直したり、HTML/CSSを調整してそれっぽく見えるようにしたり、人に見せても恥ずかしくないようなものに仕上げる。


6. たぶん動くと思うからリリースしようぜ


ネタ機能は時間が経ち鮮度がおちると、我に返ってしまいリリースに消極的になってしまう。そんなときは「たぶん動くと思うからリリースしようぜ」くらいの度胸が必要だ!

もし怒られたら全力で謝る。


# 守っていること


ネタ機能開発は楽しいし、それを使った人に笑ってもらえるのが本当に嬉しい!
ただし、仕事としてやる以上必ず守るべきことがある。


「ネタの押し売りをしない」ことだ。


さくらのクラウドは法人のお客様も多く、ネタ機能を好まない方もいると思われる。
だからネタ機能は前面に押し出さず、ユーザが「使いたい」というアクションを起こしたときだけ表示されるような工夫をしている。

余計なことをする時間があるなら機能改善・追加しろ!とお叱りを受けないためにも、お客様を第一に考えなければならない。



ネタ機能を開発するメリット・デメリット

メリット


通常業務ではなかなか触れられない技術や知識を学べる。
例えば、以下のようなものがあげられる。

  • 乱数生成アルゴリズム
  • ガチャアルゴリズム
  • Web Audio API / Audio要素
  • Canvas API
こういった知識がまわりまわって「マジメな機能」に生まれ変わることもある。


デメリット


ネタ機能はサービスになんら貢献しない機能なので工数確保が難しい。
確保できたとしても、1〜2日で完成形までもっていかなければならないので、あまり凝ったものが作れない。

昨今ではエイプリルフールに飽きてる人が多いので、作っても反応がなかったり、そもそも触ってもらえなかったりする。

それなのにわりと大変。



楽しくなければ仕事じゃない


弊社はわりと自由な社風で、いまのところ今回紹介したネタ機能をリリースしても怒られたことは一度もない。(裏で何言われてるかはわからないけど)


そんな環境の中だから自由に楽しく仕事をしている。


また、どんな小さな機能でも自分で企画から開発までやるといろんな学びがある。
リリースできなかったとしても学んだことはなくならないので、これからも挑戦しつづけたい。


以上

written by @bc_rikko

0 件のコメント :

コメントを投稿