「ユーザーの求めているものを考え、それを最適な技術で」カラダノート逆算思考の開発哲学

※こちらは2018.05.31に公開したものです

自分の専門分野を持つことは、多くの職種で必要なこととされています。しかし、専門分野への強すぎる思いは、ときに足かせにもなります。サービス提供で大切なのは、ユーザー目線で使いやすいものにすること。今回は、専門分野にこだわらず、新しい技術でアプリ開発に取り組んだWebエンジニアの思考に迫ります。

・・・

専門分野以外での開発に挑戦。それは、より良いものを最速で提供するため

画像1

▲カラダノートにて開発を担当する嶋田(左)と梶山(右)

IT技術が急速に進化していく中で、各企業でIT人材が貴重な存在となっています。私たちカラダノートでも、「子育Tech™️(こそだてっく)」を提唱し、さまざまなアプリやツールを開発していく中で、エンジニアの活躍が不可欠です。

Webエンジニアは、大きく分類すると、サーバーサイドエンジニア、フロントサイドエンジニア、インフラエンジニアの3つ。多くのWebエンジニアは、自分の専門分野を持ち、サーバーサイドならサーバーサイド、フロントサイドならフロントサイドの技術を追求していくため、ほかの分野の技術を使うことに抵抗がある場合も少なくありません。

多くの人が抵抗を感じてしまう理由のひとつには、分野によって使用するプログラミング言語(以下、言語)が違い、開発における考え方も違うため、その都度学び直す必要があることがあげられます。新たな学習コストをかけるくらいなら、得意分野を伸ばしたほうがいいと考えるからです。

しかしサービス開発は、ユーザーが使うためにあるべきものと私たちは考えています。

当社は、2018年5月24日に、アプリ「授乳ノート」内でチャット型コミュニティ「深夜かけこみ部屋」を設置しました。この開発の中心となった嶋田寛は、このサービス開発にあたり、ユーザーに提供するサービスから逆算して言語を選択していきました。

エンジニア歴15年以上の嶋田が、ほぼはじめて使う言語での開発に挑戦した背景には、「ユーザーに求められているプロダクトをつくる」というポリシーがありました。

アプリで使うチャットの機能を、Webの技術を使って開発するという挑戦

画像_02

▲もともとはサーバーサイドでの開発が専門分野だった嶋田。
ユーザーへより良いものを最速で提供するという逆算思考で、フロントサイドに挑戦した。

2010年に入社した嶋田は、当時当社で提供していたソーシャルゲーム「島のお医者さん」の開発に携わったり、2018年現在も運用しているカラダノートのWebサイトをいちからつくったりと、長くサーバーサイドエンジニアとして活躍してきました。

今回の「深夜かけこみ部屋」は、2017年11月に試験的に開始したインスタグラムでのライブ配信をきっかけに、アプリ内に機能拡張することが決まりました。

嶋田 「インスタグラムでライブ配信していて反応がいい部分でしたし、もともと当社にあった掲示板形式のコミュニティ運営をやっている中で感じたのは、『ユーザーは必ずしも解決を求めているわけではなくて、“共感”や“不安が和らぐもの”を求めている』ということでした。
それで、そこに特化したチャットのサービスをつくろうという話になって。インスタライブだと限界があるところも、チャットの部屋にしたらカバーできるんじゃないかと」

このサービスはアプリ内に機能が付けられていますが、Webの技術が使われています。しかし、Webの技術といっても、これまで嶋田が主に行なってきたサーバーサイドではなく、フロントサイドの言語を使った開発です。


プロジェクトのディレクションなどを行なう梶山雄史は、このような試みは他社にはあまりないことであると推測します。

梶山 「エンジニアって、たとえばアプリをつくるにも、iOSならずっとiOSの開発をやりたいという人が多いんです。だから今回のように、アプリの開発をWebの技術で行なったり、普段使っていない言語を使ったりするのは、他社ではあまりないことだと思います。大きな会社だと特に、専門分野がはっきり分かれていますから」

「深夜かけこみ部屋」は、こんなエンジニアたちの挑戦の中から生まれたのです。

挑戦してみて感じたのは、先の見えない不安とやり抜いた達成感だった

画像3

▲これまで携帯キャリアのアプリ開発等に従事してきた梶山。
専門分野に固執しずぎない開発スタイルがカラダノートの特徴だと言う

Webのサーバーサイドとフロントサイドで大きく違うのは、サーバーサイドがユーザーには見えない処理の部分を担うのに対し、フロントサイドは直接ユーザーの目に触れる部分を担っていること。つまりフロントサイドの言語は、よりUI(ユーザーインターフェース)やUX(ユーザーエクスペリエンス)を高めることが意識されています。

梶山 「フロントサイドの言語の方がアプリに近い動きをさせることができるんです。Webって画面が切り替わるときに1回真っ白になるものが多いですよね。一方、アプリはそうならずに切り替わる。Webでも、ああいう動きをさせるのがフロントサイドの役割です」

今回、嶋田は「JavaScript(ジャバスクリプト)」という言語を使ってサービス開発に踏み切りました。JavaScriptは、Webのフロントサイドの言語で、画面を遷移せずにメッセージなどを表示できる技術です。

嶋田 「サーバーサイドは、ひとつの情報に対して処理がひとつしかないんです。でもフロントサイドの処理は、いわゆるSPA(シングルページアプリケーション)という技術。ユーザーが操作するいろんな可能性を想定して、対応策を張り巡らせておく必要があるんです。それが一番難しいところだと感じています」
梶山 「フロントサイドはマルチタスクなんですよね。たとえば、画面をめちゃくちゃ連打する人とかいるじゃないですか。Webのサーバーサイドだと、10回連打されたら10回応答するだけです。でもフロントサイドやアプリだと『10回押されたけど期間が短いからそれは1回にしちゃおう』というところまで想定しておく必要があるんです。」

嶋田にとってメインで使うのははじめての技術だったため、その都度勉強しながらの開発。戸惑いも感じていました。

嶋田 「普段自分の使っている言語だと、だいたいこれくらいで終わるなっていうのが見えるんですけど、JavaScriptを本格的に開発するのは初めてだったので、どこで苦戦するかわからないし、先が見えない不安はありました。
でもそれによって自分のスキルは上がりますし、たくさん悩んだ末にできたものに対しては、達成感もあるし、やりがいもあるだろうと考え開発に取り組みました」

これからも技術は変わっていく――手段として技術を使うというマインド

画像4

▲エンジニアの型にはまらない嶋田と梶山は、最近では機械学習の分野の勉強をはじめたそう

JavaScriptは、昔はほとんど使われていなかったものの、グーグルマップがJavaScriptを中心につくられていたことなどで使い方の幅が広がり、急速に伸びてきた言語です。
この先も、そういった技術の流行り廃りは訪れるでしょう。そのときに大切なのは、情報を常にキャッチアップし、特定の技術に固執しない姿勢ではないかと、嶋田は考えています。

嶋田 「今の技術って、僕が仕事をはじめた頃には使うことが想定されていなかった技術なんですね。JavaScriptもそのころはWeb開発者のあいだで『オフにするのがセオリー』と言われていました。そう考えると、5年後や10年後に、また違う言語が流行るかもわからない」

エンジニアは、『この技術を使って何かつくりたい』という技術的な欲求が高い人が多いと思いますが、僕はそれよりも、手段として技術を使っていくという考え方。今は機械学習やディープラーニングなどが流行っていますけど、それも、『今困っているこれが便利になるなら使ってみる』という発想ですね」
提供したいサービスから考えて、最短でつくるための技術を選んでいくこと。嶋田はそれが自らの幅を広げることにもなったと感じています。

嶋田 「やれることが増えたので、これから開発のアイデアもより多く出てくると思います。Webに関しては大体のことはできるなと思っているので、あとはこの会社でどういったものを求められているのか、開発者としてやるべきことは何かを考えて、実務に落とし込んでいくことですね」

彼が常に大切にしているのは、仕上がりにこだわりを持つということ。「深夜かけこみ部屋」でも、その点に気をつけて改善を加えていく心づもりです。

嶋田 「何でもそうですけど、最後のところにこだわりを持ってつくらないと、ユーザーの感じ方が大きく変わってきます。なのでまずはユーザーがなるべく不快に思わずに使えて、話しに来てよかったなと思ってもらえる場所にすること。ちょっとした演出なども工夫しながらつくりました。リリース後もユーザーの声を聞きつつ改善して、満足してもらえるものをつくっていきたいと思います」

・・・

自分の得意分野はありつつも、それにこだわりすぎないこと。目的から逆算で考えるそのマインドを大切にしながら、カラダノートは今後もさまざまなサービスを開発し、提供していきます。