読者です 読者をやめる 読者になる 読者になる

ボクココ

サービス開発を成功させるまでの歩み

開発コンテストに出て、WebGL の未来を感じた話

twilio

ども、@kimihom です。久々の更新。

先週末、以下のような Twilio を使ったイベントに参加した。

twiliomeetup.doorkeeper.jp

この日は他の開発イベントも多く重なっていたようで、ドタキャンがたくさんいたなぁ。

今回の開発コンテストでは皆を “わっ!” と驚かせられるような機能の開発に挑戦した。

ビデオ通話での顔認識

そこで今回チャレンジしたのが、ビデオ通話での顔認識技術。

今後はリモートワークや遠隔地でのMTG、外部とのやりとりなどが当たり前になると思っている。そこで、ビデオ通話はより一般的になるはずで、そこで出てくるであろう課題が顔認識技術によって改善できると考えた。

例えば女性であれば在宅ワークの時にわざわざビデオ通話のためだけにメイクをしなければならないのだろうか。それは当然面倒なことである。また、一般的なビデオ通話でも普段より綺麗に加工された動画を相手に送った方が気持ち良くコミュニケーションが取れるということもあるだろう。というのも、デフォルトのカメラは上から下に見上げるような形で撮影するため、あまり綺麗に映らないのである。

もちろんミーティング用途以外にも、相手に顔をあまり見せたくないような場合にマスクする機能など、ビデオ通話の中で顔をうまく加工したり隠したりでいる機能ってのは需要があるように思う。

てことで、以下のようなものを作った。

まだアプリ自体は一般には公開していないものの、簡単なキャプチャを貼る。顔隠しているので多少は気軽にアップロードできるのがいい点だ。w


Mask De talk

こんな感じで、自分の送る画像をマスクで隠した状態で、相手に届けることができる。上の動画は2つページ立ち上げて自分の顔を2つ表示させてるけど、もちろん他人のPCとビデオ通話してお互いの顔をマスクすることが可能だ。

今回の開発で最も重要だったのは、相手に自分の選択したマスク状態の動画を送るという点である。ここの実装が最も難しく、チャレンジングなものとなった。

当日の DEMO は大成功。大いに会場を沸かすことができて大満足である。願わくば優勝したかったのだけど、残念ながら準優勝という結果で終わった(またかよw)。

技術的な話

実はこれ、全部 JavaScript で動いている。動画の撮影と送信は WebRTC (Twilio Video), マスク画像の共有は WebSocket (Twilio Sync)、そして動画にマスクを当て込むのは WebGL (clmtrackr) といった具合である。特に WebGL でどんなことができるのかは前々から興味を持っていて、新しいチャレンジをしてみる良い機会となった。

んで、顔をうまく隠せたら次は音声もいじりたい、ってなるよね。 WebAudio API を使えば、リアルタイムで音声を操作することが可能なようだ。これは突き詰めれば、完全に他人としてビデオ通話ができるようになるということはでないか・・・!そう考えた時、"この分野スゲー" って素人ながらに思った。

突き詰めると、この話は基本的に悪用のイメージが強いのだけども、世界をよりよくする方向にするための技術として考えてみたいなと思った。

ネタアプリとしても十分面白い Web アプリになってると思うので、そのうち一般公開するかもしれない。その時は是非 Mask De Talk を楽しんで頂けたら幸いである。

自分と全く関係ない分野にサクッとチャレンジしてみる。そんな時には開発コンテストでちょっくらやってみるのは面白いものだね〜。

自分の強みをビジネスに応用する大切さ

スタートアップ

ども、@kimihom です。

さて、唐突ではあるがあなたにとっての「強み」とは何だろう?この分野ならそれなりに良い位置にいると思えるような何かを持っているだろうか。今回は私が色々なサービスを作ってきた思った、自分の強みをビジネスにする重要性について記してみる。

何故 "あなた" がそのビジネスを、"今" やるのか。

この答えに自信を持って答えられない場合は、他のサービスに遅れをとったり、優位性を見出せずにうまくいかないケースが多いと感じている。何かのサービスを作るなら、あなたにとっての「使命感」が必要だ。

なぜ他の誰でもなく、"あなた"がやるのか。あなたはそのビジネスアイディアに対し、どれくらいの思い入れを持っているだろうか。単に思いつきで「これは儲かる」とか「面白そう」いう考えだけでビジネスを始めようとはしていないだろうか。自分の使命感が強くないと今後何が問題になるかというと、サービスをローンチした後にユーザーがほとんどついてこない初期の時期を乗り越えることができないのだ。サービスをローンチしてみたけど、思ったよりユーザー来ないからやーめよ、ってなる。単なるアイディアベースのサービスってのは短期的に終わってしまうのである。

そしてなぜ"今"やるのか。この時代になってニュースサイトやメディアの運営となると、よほどの思い入れがないと続かないだろうし、既にいるたくさんの競合を意識せざるをえなくなる。新入りは圧倒的に知名度はないし、既に他のサービスを使っているターゲットであれば、その人たちを自社サービスに持ってくるというスイッチングコストが発生する。これらは後発サービスの成功を難しくさせる。"今"を見極めるには、時代の流れと未来予測の2つのセンスが必要だ。ある人はそれを「運」ということもあるけど、しっかりとインターネットの世界の流れを見ていけば、どのタイミングでどのサービスを作るべきかは見えてくるはずだ。

自分の強みを尖らせないと、人を感動させることはできないし、真似されやすくなる

あなたの強みを今一度、分析し直してみよう。あなたが尖っていきたい分野はあるだろうか。全てが平均的な能力しかなければ、同じような能力を持った複数人で開発するサービスと何ら変わらないものとなってしまう。そして何より、そういうサービスは「他にもあるうちの一つ」程度の認識しか生まれない。ユーザーはいとも簡単に他のサービスに移ってしまうことだろう。

例えばユーザーの話を徹底して聞いて改善することのできるスキルってのはとても大事だ。それが強みだとしたら、徹底的にユーザーにヒアリングして愚直にサービスを改善しよう。それが人々にとって「使いやすい便利な」サービスになるのである。

もちろん特定の技術に特化したスキルってのもあると良い。私の場合はコミュニケーションに特化した技術に強みを持っており、その分野においては他の一般的なエンジニアより品質の良いものを開発できる自信がある。だからこそ、私が開発するサービスってのはコミュニケーションがベースとなっている。

私は以前、自分の強みを尖らせずに色々手を出した挙句、たくさんのサービスをクローズしてきた。この体験こそ、本記事を書くきっかけとなった根源である。 実を言うと以前、私はCtoC のサービスを作っていた。CtoC サービスを成功させれば、"自分は世界を変えられた"と言えるようになると信じていたからである。割とそんな単純な理由で CtoC サービスの開発を始めていた。その分野での私の強みといえば、単に "Web アプリケーションを開発する能力"だけ。もちろんそれさえあれば CtoC のサービスは作れるので、作りきることはできた。しかし、Web アプリケーションを作るってだけなら他に5万といるエンジニアと何ら差別化できない。そう悟った時、私の情熱は薄れ、このサービスの開発を中止した。

ものづくりってのは何かを極めることで始めて価値を提供できる職人の世界だ。何でも平均的にできるだけでは人を感動させることなんてできない。これは一般論として言えることだと悟った時、私は自分の得意な分野にフォーカスしてサービスを開発していこうと決めたのであった。

得意なことに没頭して、サービスを作り続けよう

得意なことなら開発は続けられるものだ。終わることのない探究心があなたのサービスをより素晴らしいものにしてくれるだろう。そうやって出来上がったサービスはあなたの「思想」が反映され、使っているユーザーにも必ず響くものになる。

あなたの没頭できる得意なことは何だろう?この機会に今一度考え直し、サービスを成功させて欲しい。

そんな没頭できる得意なことを持った集団こそ、私の理想とする最強メンバーである。

私がリモートワークを続ける理由

ども、@kimihom です。

リモートワークとはオフィスに通ってデスクワークするのではなく、家や他の場所で働く働き方を指す。最近注目されている新しい働き方である。このような働き方が注目されてきた背景として、あらゆる情報がクラウドに保存されるようになり、私たちはインターネットにさえ繋がっていれば仕事ができるようになったから、というのがある。

f:id:cevid_cpp:20170116214810j:plain

そんな働き方の変わる時代の潮目にいる私たちだけども、実際にリモートワークを実践している人ってのはまだまだ少ない。メリットがある反面、当然デメリットとかを挙げればきりがないのは確かにある。そこで、私が一人リモートワークを2年以上続けてみて感じていることをまとめてみよう。

リモートワークの適性は必ず存在する

あなたがリモートワークに向いているかいないか。これによって効果は大きく左右される。「会社に行くことで仕事モードになれる」みたいな人には当然のことながらリモートワークには向かないだろう。それと同じ感じで、人の目の見えないことを理由にサボるような人も当然ながら向いていない。

でも、ちょっと言い方を変えてみると、「できる人はリモートワークでもできるし、できない人は会社にいてもできない」ってことになる。生産性は、リモートワークによって変わるのではなく、働いている人によって変わるものなのだ。リモートワークのデメリットとして、コミュニケーションロスなどが一般的に言われているが、そんなのは大した問題ではない。今ではリアル以上にログを残せるチャットの方が重宝される時代だ。

周りに人がいればいるほど無意味な雑談する時間は増える反面、大事な話を面と向かってできる。リモートワークなら自分に集中する時間は増える反面、会って話すという機会は減る。一種のトレードオフではあるが、私にとっては後者の方が優れていると思う。"雑談を大事にする"などを言い出す人がいるけど、雑談なんて飲み会にでも行ってしてればいいのではないか。

一人リモートワークは強い忍耐力が必要だが、慣れを無くすことができる

一人リモートワークはなかなかの辛みがある。私の場合、ガチで一人暮らしのリモートワークなので、朝起きて眠るまで一人で黙々とPCで作業するってことも普通にある(リモートでビデオ通話などはするが)。そうした日々を1週間でも耐えられないような"人依存"の人には続けていくことはできないだろう。

そんなこと言いつつ、さすがに私もず〜っと続けていくのは辛いので、東京の実家に帰って会社に通うときも持つようにしている。実際のところ、この程よいバランスってのがベストなんじゃないか、と最近感じている。その背景にあるのは、「慣れの除去」だ。

慣れってのは怖いもので、集団の群れに慣れると集団生活が当たり前になり、集団から離れると途端に孤独を感じるようになる。反対に孤独に慣れるようになると、時たま触れる集団の心地良さやありがたみを感じる。さらに孤独になっても気になることはない。「慣れ」の感覚をできる限り無くすように意識すると、生活において居心地の良さを感じることができる。

"ありがたみ" を感じることができるってのは、個人的なリモートワークをする上での最大のメリットだ。

これから注目されるであろう集団リモートワーク

一人をずっと続けていく難しさはあるけども、適正でない人でも気分転換とか集中する時期に手中できる場所で仕事がしたい、などの思いはあることだろう。だからこそ、これからは集団リモートワークが注目されるに違いない。

例えば開発フェーズになったら、エンジニア集団が全員で同じ場所でリモートワークをする。いわば合宿のようなものである。集中すべき時と話し合うべきとでバランスよく生活スタイルを変えることで、自分たちのベストを出し続けることが可能だ。そういう生活スタイルの柔軟な切り替えは、間違いなく充実した時間になる。

課題としては、そのような集団でできるリモートワークのスペースがまだ限られているってことだろう。最近は千葉県や長野県、徳島県あたりが頑張っているような印象があるが、そんな感じで東京の外でリモートワークのできる環境が増えていけば良いと思う。その他の課題として、家族や恋人がいる場合に置いてくるようなことが出てくるかもしれない。集団リモートワークにはこれらの課題があるので、もう少し時代の流れと周囲の理解が必要になるだろう。

でもゆくゆくは、「気分を変えてその時のベストを出せる場所で働く」ということに重きを置くようになって、東京の立派なビルにオフィスを構えるような会社よりも、いろいろなところに拠点のある会社が好まれるようになるだろう。どんなに立派な都会のビルだって、慣れてしまえば普通のビルなのだから。

これからもリモートワークを続けるか? Of Course, Yes!

毎日の同じような日々にちょっとしたスパイスを。私はこれからもリモートワークを適度に続けていきたい。

言葉の美しさを研究する

言葉が美しいと感じる時がある。

選び抜かれた言葉、話の流れ、締めの余韻・・。美しい言葉で成り立った文章は読んでいて気持ちが良いし、文章から新しい想像力を得られることすらある。最近はそんな文章の魅力に惹かれている。完全理系型人間の私にとって、文学的センスとは無縁の世界だった。理系にとって言葉は人に正しく"事実"を伝えるためのツールであり、余計な表現をせず簡潔に伝える/伝わることが最も大事だった。私は事実だけを伝える技術書/ビジネス書を当たり前のように読み、このブログ記事も同様に簡潔であり続けていた。

やがてブログ記事をたくさん書いているうちに、良い文章とは何かを考えるようになった。読んでいて気持ちの良い文章、想像力が溢れるような文章とは何か。文章の書き方などの本を読んで勉強してみた。それと同時に、"良い文章とは何か" の観点で記事や本を読むようにして、表現の方法などを分析するようにした。「こんな表現はうちのブログにも使えそうだな」「この文章を読んでみて気分が良くなったな。理由を考えてみよう」。このように、記事自体の内容ではなく表現の分析が、今の私にとって本を読むときの一つのモチベーションになっている。

f:id:cevid_cpp:20170114114358j:plain

言葉は奥深い。同じことを伝えるにしても、人の心を揺さぶるような文章になることもあれば、反感を買うような文章にすることもある。せっかく文章を書くようなことをするのなら、誰もが良い文章を書きたいと思うだろう。

志半ばの状態ではあるが、表現豊かな文章で見られる特徴について勉強したことを含めてまとめてみようと思う。

その時の情景や感情がうまく表現できている

そもそも理系文章であれば、"感覚" 的な文章は不要なものとされる。しかし、美しい文章には、読んだだけで想像力が掻き立てられる情景や著者の感情が自分にも入ってくる。このような目に見えない感情表現は、普段から色々な文学に触れていないとそもそも言葉として使いこなすことはできないだろう。だから色々な文章を読んでいい表現を体得していくしかないと考えている。

始めから終わりまで一貫している

いい文章は途中で話題が変わることがない。「A について書く」と決めたら、A に関する表現で文章の全てをまとめ上げている。途中他の話題が出てきたとしても、必ずそれは A に関連する話であり、Bが主役になることはない。一貫した文章は読者を混乱させることなく、読んでいて気持ちの良い文章となるのだ。

全てを書ききらない

文章は、人の想像力を掻き立てるサポートをするに過ぎない。そんな思いを持ちながら文章を書くと、あえて結論や結果を書かずに読者の想像に任せるようなことがある。当然 論文とかでこう書くと NG である。しかし感情を揺さぶる文章には、人の想像力を最大限引き出すためにあえて書かないというテクニックがある。

その想像力をかき立てるような文章に、人は心を打たれる。何回でも読み直したいような文章というのが生まれる。

良い視点を持っている

「吾輩は猫である。」そんな書き始めの文章が、何十、何百年もの時を経て読み続けられている。誰もが持っている当然の視点から生まれた文章ではなく、意外な視点から見られた文章というのは読んでいて新鮮さを感じることができる。

最近の表現で言えば"良い記事ネタ"ということかもしれない。皆がなんとなーく思っていたことが綺麗に文章化されていたりすると、「あ、これこれ〜」って感じで共感を生むことができる。生活の上で感じた感情をメモして忘れないようにすることが必要になるであろう。

今後のアクション

「こんなことを書いて、お前は小説家にでもなりたいのか?」と思われた読者もいるかもしれない。当然ながらそんなことは思ってないけど、ボクココは記事を読んだ後にそれぞれが考え・意見を持ってもらえるようなブログにしたいと思い続けている。

私は常に「A は B だ!」と断言し、さもそれが当然かのような書き方を"あえて"している。時には過激な表現で落ち込むようなこともあるかもしれない。しかし、そうではなくて記事を読んだ時に、「なるほどそういう考え方もあるのね。でも俺はこう思う」というような視点を持ち続けて欲しいと願っている。気が向いたらまたボクココに来て、記事を読んでいただけたら嬉しい。

今後ともよろしく、といった次第である。

Heroku Meetup への思い

Heroku

ども、@kimihom です。

Heroku。私が今まで色々なサービスを使ってきた中で最も長く、そして愛し続けているプロダクトだ。Heroku は PaaS(Platform as a Service) と呼ばれる部類のクラウドサービスで、Web 開発者のサーバーインフラ構築やオペレーションの手間を限りなくゼロにしてくれるサービスである。Heroku のコマンドを叩くだけでサーバーが自動で作られ立ち上がる。サーバーで必要なことは全て Heroku が行ってくれるのである。 Heroku を使うことで私たちは顧客に価値を提供する Web プログラミングに集中することができ、開発者一人一人の価値を高めてくれる。

f:id:cevid_cpp:20170112212836p:plain

2月22日に そんな Heroku の Meetup が開催される。Heroku 自体は Salesforce に仲間入りしてからはイベントの企画/開催なども Salesforce 側で行っていくことになっているようで、今回のイベント会場も Salesforce 社内で行われる。

herokujp.doorkeeper.jp

今回はイベント開催に先駆けて自分の思いを書いていこうと思う。

Heroku User Group との関わり

今年の 2017 年から、私は Heroku のイベントのお手伝いに参加させてもらっている。具体的には登壇して頂けそうな面白そうなテーマを持っている方に声をかけたり、時には自分が発表するなどで貢献していったりする予定だ。もちろん他にも手伝えることがあれば積極的にやっていく次第である。

なんでここまで積極的にやるかって話だけども、一つは私自身が Heroku の大ファンであるというのがある。そのプロダクトに貢献したいっていう純粋なモチベーションがこのプロダクトにはある。また、 Heroku で Web サービス開発が成功する事例ってのをどんどん増やしていきたいし、可能であることを証明したいってのがある。私の運営するサービス CallConnectもそのうちの一つとして Heroku を使い続けている。Heroku を使えば、もっとたくさんの少人数開発者が Hero になれるはずだと思っていて、私のモチベーションの根幹には"開発者が Hero になれる土台を作る"というのがある。

個人的に目指したい方向性

私としては、Heroku の活用事例として素敵な Web サービスを運営している企業に登壇していただいて、サービス開発の背景や理念をベースに、なぜ Heroku を選び今も使い続けているのか。今後はどのような開発をして会社を経営していくのか。そんな開発者だけでなくてビジネスの方向性も考え合えるような Meetup になったら素敵だな、と思っている。

Heroku を使う開発者は、どちらかというとビジネスセンスのある方だと思っている。「特定の技術を極めてエンジニア界隈で名の知れた人物になりたい」というのではなく、「自分の作ったサービスで、より多くの顧客を喜ばせたい」というモチベーションが高い人のはずだからだ。でなければとっくにインフラ構築も自前でやるぜ!みたいなプラットフォーム(IaaS) へ移ることだろう。巷で開催される多くの勉強会は、どちらかというと技術を極める玄人気質の濃い勉強会が多く、初心者がなかなか入り込めずに行っても得られるものがあまりないってパターンが多い。Heroku はその反面、「この技術を極める」っていうテーマは存在しない。色々なプラットフォームやアドオンを組み合わせて自分の作りたいサービスを作れるっていうものなので、極めようがないのだ。私はそこが返って Heroku Meetup を運営していくには利点になっていると考えている。

開発者ってのはやる気があればみんな勝手に勉強して作り始めるものなのだ。その「やる気を生み出す根源」こそが、勉強会に行って一番持って帰って行ってもらいたいところ。この点を今後は意識して、勉強会に携わっていきたい。

もし共感するテーマがあるって方がいれば連絡いただきたい。ぜひ会って話したいし、発表も今回のでなくてもいいのでいつかして欲しい。

2017年は Heroku の年。2017年が終わる頃に本当にそうだったよね、と言えるような状態にしていこう。

初めて給料が出た日

スタートアップ

ども、@kimihom です。

私の会社は外部から一切資本を受け入れず、また借り入れも一切しない経営(ブートストラップと呼ぶ)をし続けてきている。さらに受託開発を一切せず、自社のクラウドサービスにフォーカスし、ひたすらサービスの改善とサポートを続けてきた。

そして2017年1月10日の今日、初めて給料が出た。起業してから2年9ヶ月目での出来事である。

顧客が自社サービスを使ってくれて、支払っていただいたお金がそのまま給料として得られるようになったというのは、私にとってかけがえのないことだ。給料が出る状態になったということで、もはや新規顧客獲得を意識する必要はなくなった。サービスを使っていただいている顧客が満足して使い続けていただけるようなサービスを提供し続けることだけにフォーカスすることができる。"第三者" からとやかく言われることなく、自分たちと顧客の幸せだけ に力を注げる状態になった。これは自己資本でサービスを運営しないと達することのできない領域だと思っている。

会社としては、引き続き「愛される企業を増やす」というミッションによりフォーカスをしてサービス運営を続けていく次第だ。

ちなみに(初)給料は親にほとんど渡した。今までお世話になったし、"本当の給料" を出せるようになったということの感謝の意味も込めて。

SaaS ブートストラップ

自分の作ったサービスだけで食べていけるようにいきたい。私は5年以上も前からそう思っていた。どこかの誰かが稼いできてくれた or 出資してくれたお金を給料としてもらう状態を嫌がり、自分の作ったサービスで顧客が満足して支払って頂いたお金で生活したいと思っていた。

良いものを作れば、顧客はそれに満足してお金を払ってくれる。そんなシンプルな関係を目指した。そのためには、当然顧客に満足してもらうツールを作らなければならないし、何より自分たちが満足できるツールでなければならなかった。2年9ヶ月の間、自分の貯金を切り崩しながらでも自分の理想だけを追い続けたサービス開発の日々だった。

自己資本だけで SaaS サービスを軌道に乗せることはできるとここに証明しよう。私たち(3人)の場合はサービスのローンチから紆余曲折を経て1年半かかった(そのさらに1年ほど前に個人で他のサービスをローンチしていて、それはクローズした。計2年9ヶ月)。これは他の同様の目標を目指す方にとって一つの参考情報になるだろう。

私たちはこれからも自己資本で運営する SaaS ブートストラップとして活動していく次第だ。また、私たちと同じように自己資本で SaaS サービスの開発運営にチャレンジする企業を応援/支援するようなこともしていきたいと考えている。

終わりに

今日は一つの区切りに過ぎないけども、改めて支えてくれた仲間、関連企業の皆さま、そして顧客の皆さまに感謝します。これからもより良いサービスを目指し開発運営を続けていきます。

1月10日 熱海にて

夢の正しさ

パチンコ王に俺はなる。友人は冗談交じりにそう言った。

楽して儲けたいという風潮の中、投資/ギャンブル/風俗などは手軽に始められて稼ぐことのできる方法だと一般的に認知されている。とりわけインターネットの世界ではアダルトサイトの広大さは計り知れないものがある。これらは依存性の高さに、国がたくさんの法律で固めているが、彼らは法律のギリギリのラインを超えないように日々頭を凝らしながらやっている。 基本的に金儲け主義の人は楽して稼ぐってのがセオリーだ。すぐに始められて、すぐに利益が出るもの。他の誰もがやっていないような"発想"や始めるタイミングの違いで勝負する。いいアイディアやビジネスを見つけた時の彼らの渾身の笑顔は、希望で満ち溢れている。

私はハッとした。ボクココでは常々夢に向かって努力し続けることの大切さを説いてきた。彼らもまた、夢を持って努力しているという人の一人ではないか。

それ以来、私は「夢を持つだけではいけない。"正しい夢"を持つことが大事なのだ」と感じるようになった。

ここで正しい夢について私の表現と近い名言をご紹介する。

松下幸之助『世の為、人の為になり、ひいては自分の為になるということをやったら、必ず成就します。』

「世の為」となると、関わる人全てにとって有益なことをしなければならないのがポイントだ。「人の為」ってだけだと、先ほどのギャンブルや風俗なども含まれてしまう。ギャンブルや風俗の利用者だけを見れば有益に見えるが、家族や関係者にとっては有益なことではない。

「ひいては自分の為になる」というのは、世の中に貢献しているという自負を持って物事をこなしていれば、それが自分の幸せにつながるってことだ。人の幸福ってのは「誰かの為になっている」ということで得られる。自分と目の前の人だけ楽しんでいるような状態ってのは、単なる娯楽に過ぎない。"楽しい"と"幸せ" は根本的に異なることだと私は考えている。

つまり正しい夢とは、「世の為、人の為になり、ひいては自分の為になる」ようなことを目指す形だ。世の為になるってんだから、簡単に早くそれを実現できるはずがない。だから短期的な利益や欲を望む人にとってはたどり着けない領域なのである。

世の中に貢献する人間に俺はなる。私は心の中でそう誓った。