engineers_blogマネーフォワードの中の人を知ってもらうため、当社でフルタイムのRubyコミッターを務める卜部昌平が、マネーフォワードのエンジニアにインタビューをするこの企画。孝太郎さんへのインタビューです。社員ですら初めて聞くような、マネーフォワードに関わる人のストーリーをお届けします。ACCESSに約5年間勤務。IoTソリューションやHEMSの企画・開発を担当。2015年9月にマネーフォワードにジョイン。Androidアプリケーション開発に従事。簡単なプロフィールから。児玉プログラミングは大学から始めました。情報工学系の学科の授業でC言語やJavaを学んで、4年から所属した研究室では無線通信の研究をしていて、そこでデータの解析時にPythonを使ってました。その頃から本格的にプログラミングを書くようになりました。就職するならITの分野でモノづくりをすることが世界を変えることだという思いがあり就職先を決めました。今マネーフォワードは2社目です。近隣に住むことで通勤ストレスを無くす卜部さて、何から聞きますかね。徒歩3分ぐらいの距離に。児玉めっちゃ近いところに住んでます。卜部この会社に入ってから引っ越してきたとかですか?児玉はい、元々は千葉に住んでいたのですが、そこからだとドアツードアで2時間ぐらいかかってしまい、流石にそれは厳しいので近くに引っ越してきました。近隣だと家賃補助もあるので。前職は幕張のあたりにオフィスがあったので千葉に住んでいました。家から自転車で30分ぐらいの距離をロードバイクで通ってました。転職する前ぐらいにその自転車が盗まれてしまいまして、バスと電車を使う事になり通勤がつらくなりましたね。転職してからは家も近いし、楽な感じで。交通の状況には左右されずに来れるので、ストレスがなくてすごい楽ですね。近いと土日にも仕事しちゃったりとかですか。児玉そんなに会社に出てきてやったりはしないですが、家で自分が書きたいコードを書くことはあります。土日に会社行っている会社じゃないんですね。自分で言うのも何ですが多趣味でして。ロードバイクは盗まれてしまったので走れなくなってしまったんですが、テニスをしたり、ゲームが好きなのでゲームをやったりもあるんですけど、色々DIYするのも結構好きです。この前はスピーカーを作りました。卜部その辺の話は、またのちほど掘り下げましょう。サービス『マネーフォワード』のiOSのアプリの開発をメインでやってます。入社当初はiOSアプリの開発とAndroidアプリの開発をスイッチングしながらやっていましたが、今はiOSアプリをメインに開発していますね。サービス『マネーフォワード』のアプリって機能が沢山入っていて、大きめなんですね。そこへ機能が増え続けているので、メンテナンスがしづらいような技術的負債が溜まってきている状況があり、それをリファクタリングするためですね。両方やっているところから、一方へ注力するのってどうでした?児玉そうですね、iOSアプリの開発とAndroidアプリの開発ではフレームワークも実装文化も違うので頭の中身を切り替えるようなコストはかかっていました。iOSアプリに注力することで、そのコストが無くなり効率は良くなってます。そもそも、リファクタリングに注力できることで、全体の開発効率も上がってきているので良かったなと思ってます。同じアプリのiOSアプリとAndroidアプリを作るという観点でも、結構スイッチングコストはかかるもの?児玉はい、コストはかかりますね。具体的な話を聞くと、読む人が嬉しいんじゃないかと思って。iOSアプリとAndroidアプリって基本的には同じ機能を提供してますので、バックエンドのAPIは同じです。iOSとAndroidで根本的な推奨UIが異なるので、そういった作りが違うというのはありますね。タブの位置だったり、ボタンの並びだったり各プラットホームのユーザーが慣れているUIを意識しています。デザインもそうですが実装自体が異なることもあるので、そういう観点ですね。卜部UIのボタンの並べ方とかは、どのように決めてるんですか?児玉デザイナーが責任を持って、デザインを考える、というのはあります。AppleのiOSヒューマンインターフェイスガイドラインと、ユーザーが慣れている今流行っているアプリがどういうUIを採用しているかというのも見つつ、バランスを取りながら、マネーフォワードが価値を発揮するデザインを取り入れる感じです。基本的には、デザイナーがデザインしたものを当てていくという作業になる?児玉そうですね。卜部アニメーションってどういう風に指示が渡ってくるんですか?児玉ベースは、デザイナーさんがiOSアプリ、Androidアプリ含めてそれぞれこういう風にしたいというのを提案してくれます。そこから、各プラットフォームに適切なアニメーション、もしくは揃えるか、などをデザイナーとエンジニアが一緒になって決めていきます。卜部そういう話し合いは沢山ある感じですか?児玉あります。デザインの話は多いですね。基本的には席自体が近い所で働いていますが、議論する時は社内のオープンスペースに行って話すことが多いですね。どちらかの席へ行ってすぐに議論することもあります。卜部デザインのことを話し合うときって、ツールとか使ってます?児玉デザイナーさんが普段使っているツールを使っています。Zeplinとか、Sketchとかを使ってます。基本的に、デザイナーさんが使っているツールはエンジニアも使えるようにしてます。それをお互い見ながら話し合っていきます。卜部Zeplin、へー、こんなのあるんですね。児玉モバイルアプリだけでなく、Web系の開発でも使えます。各プラットフォーム用のデザインを管理してます。前の会社は組み込み系の開発をしていました。そこで、家電などの組み込み開発をガリガリやってました。C言語を使ってました。その後、会社の方針が切り替わって、WebだとかAndroidアプリなども手がけるようになったタイミングでそうした新規事業に手を上げて、WebだとかAndroidアプリの開発に携わるようになりました。卜部では、前職の後半ぐらいからということですね。沢山の人に直接使ってもらえるインターフェースを持っているものを作りたかったんです。Webアプリケーションの開発をするのも選択肢の一つでしたが、元々組込系の開発をしていてネイティブアプリケーション開発をしていたので、モバイル開発を選択しました。選択してみてどうですか?児玉すごい楽しいですね。マネーフォワードにやってきて、沢山のユーザーさんに実際に使ってもらえるサービスに携われるので、ユーザーさんからフィードバック貰った結果を次の開発に活かしていくというのがモチベーションにも繋げられます。卜部フィードバックの近さはいいですよね。組み込み系も沢山の人に使ってもらえる可能性はあるけどもフィードバックという意味だと少し遠いのかな。児玉そうなんですよね、はい。組込系はC言語で開発していましたから、それと比べるとやりやすいですね。スキル的にiOSに寄っているというのはありますが、Androidとの開発と比べてもiOSの方がやりやすさを感じますね。Objective-CとSwiftでいうと、Swift自体はすごく書きやすくて、コードを書く量も少なくなりますし、勢いがあるものあって情報も多いですね。Swift3対応とかも大変なんですけど、Swiftは楽しいですね。Swiftはビルドが遅い問題もあったりして、そこで苦しんではいますね。Objective-Cの方がビルドは速いので、それを抜けばSwiftはいいですね。組み込みのC言語とは全然世界が違うじゃないですか。考え方から変わりますよね。児玉メモリを気にするのは、組み込み開発よりは減りましたね。モバイル開発でもメモリリークなどを気にする必要はあるのですが、C言語で書いていたときのレベルで気にする必要はほとんど無くなったので、より作りたいものにフォーカス出来ています。『MFクラウドシリーズ』向けのiOSアプリケーションでは、すでにほぼ対応完了してますね。サービス『マネーフォワード』のiOSのアプリはまだ途中で、私がまさにやっているところですね。今やっている話はこれぐらいにして、今後やりたい事とかってあります?チャレンジしていきたい事とか。今は意図的にモバイルアプリケーションの開発をやっているんですが、サーバーサイドも分かっていると、全体の設計も分かった上で話ができるかなと。当社ではサーバーサイドはRailsなのでRails側もやってみたい気持ちはあります。サービス『マネーフォワード』は、知る・見るという現状の可視化の段階なので、その先の「家計をより良くするためには何をすべきか?」をやりたいです。お金をたくさん使うライフイベントとして、結婚や・出産・家の購入・車の購入などありますよね。いうところにフォーカスして、「こういう風にお金を貯めたら、お金のかかるライフイベントを安心して迎えられますよ」という提案だったり。マネーフォワードというサービスが身近にあることで、お金を使うイベントを安心して迎えられる世界観ですね。卜部なるほど、見える化の先にある提案ということですね。いう風にアプリ側から見せるかというのを考えるのは楽しそうですね。児玉どう提案していくか、アドバイスしていくかというのは、もしかしたらアプリじゃないかもしれないですし、それは考えていかないとですね。個人的には別にした方が良いんじゃないかな。現在のお金の情報を可視化するハブとなるための機能追加いいですが、単純に機能を詰め込みすぎて複雑化するのは良くないと思ってます。現状すでに高機能なので、ユーザーさんが初めて触るときの課題はありますし、今後どうしていくべきかというのは、大事なところかなと思ってます。卜部ボタン押すと「くるん」ってなって、新しいアプリが起動するとか(笑)児玉どんどん他のアプリに展開していけば使いやすいかっていうとそうとも限らないので、バランス感覚ですね。ユーザーさんが自然に使えるようにしたいです。今の仕事の延長上以外でも仕事以外でも、今後やりたいこと。卜部さっき言ってたライフイベントとか、今後これをやるぞとか、車買うとか。それでいうと、千葉に住んでた時に社会人2年目で家を買ってまして。今売りに出していて、売りたいですね(笑)家賃とローンのバランスを考えるとそんなに損する訳じゃないから買ったんです。言えやっぱり当時は、まだそんなに知識もなくて。今の例は不動産の話ですが、お金の知識を得るような学習の機会って今まで余り無かったですね。株式にしても投資の話とかはネガティブな印象を持たれがちですが、知識は知っているべきだなと思っていて、正しい知識を付けていくのが当たり前な文化にしていきたいですね。卜部なるほど、文化的な所も。単純に情報を提供するだけだと、知りたい人だけが情報を得るだけになるので、特に意識していない人でも知っているのが当たり前な状況にするには、もっと頑張らないと。話を変えて、代表作とか。世の中にオープンにしていないものですが、結婚式の2次会の余興でクイズをやるアプリを前の会社の人と作ったりしてました。「新婦と新郎はどこで出会ったでしょう」みたいなクイズを出して、スマホやガラケーから4択で答えられるものです。全部で10問ぐらいだして、正答数が多くて短時間で答えた人が優勝という感じですね。公開直前まで行ったんですが、やっぱり安定性というところで、ちょっと気になるところがあって。仲間内の結婚式では便利に使ってます。多くの方が関わってくれていたので、もしサービス化して収益が出たときの分配とか考えると中々進まなくて。卜部なるほど、でも実績があって楽しんでいるんだから、公開してみるのが良い気もしますけどね。公開まで進めてみようかなという気持ちになりました。卜部あ、さっき話していたスピーカー。スピーカー作成ってなんですか、という話を聞きましょうか。児玉スピーカーは音が鳴るボックスですね。そんな雑な説明で良いのかってのはあるんですけど。アンプから音声の信号が出たら、それを実際に音として出力する筐体です。基本的には音が鳴る部分のユニットは自作せずに買ってきます。箱の中の体積やどんなユニットを設置するかという設計だったり、高音部が鳴るツイーターと中音部が鳴るミッドレンジスコーカー、低音部が鳴るウーハーの各周波数をどう区切って分配するかという電気回路の設計をします。どちらかの音が大きくなったりしないように調整しながら回路設計して組み立てるという感じです。箱は基本的には木で作っていますね。最終的にアンプに繋いで音を出すというのをやっています。スピーカーづくりは大学の頃からやってますね。僕は回路設計は何となく分かるので、こうすればいいんだなというのは想像がつくんですけど、箱というか音響側の設計って、どうやってするのかとか全く想像がつかないんですけど、どうやるんですか?児玉ユニットからしか音が鳴らないんであれば箱はどんな大きさでも良いんですけど、箱の中から小さい穴を開けて、音が穴から出てくるようにするときには、音が箱の中のどういう経路を通りどんな面積を経たかによって出る周波数や特性が変わってくるので、そういうのを計算する感じですね。箱の内積とダクトの長さとダクトの太さが周波数に関わってくるので、それらをパラメーターとして設計します。音は波なので、波の掛け合わせでどの周波数が強くなるかというのをだいたい計算できるので。そんなに理論通りにいく訳じゃないんですけど、基本的にはなるべく理論通りに組み立ててみて、実際に聞いてみて調整しながらっていう。えっ、調整ってなにやるんですか。穴の大きさを変えるとかですか。回路の抵抗値を変えてみたりしてどこかの音圧を大きくしたり小さくしたりとか、そういう調整をやっています。卜部へー、まぁ楽しそうですねー。児玉すごくギーク感あるんですけど。テレビを見るときも音楽を聞くときもゲームするときもスピーカーから音を出しています。家はそんなに広くないんですけど、音が漏れないんですよね、そういう家を選んだというのもありますけど、隣の家の音も殆ど聞こえないんで、すごい良かったなと思ってます。千葉の家に住んでいた時は一軒家だったので割りと自由というか、その頃は結構大きいスピーカーを作ってました。貼ったりしなかったですね。本当に本格的にするんだったら、部屋の間取りというかレイアウトからちゃんと決めないとだめになっちゃうので。卜部この部屋にこう響くなら、ここに置かなきゃみたいな?児玉はい、そうですね。部屋に物がほとんど置けなくなっちゃいますね。越川あ、変に反射するからですか?児玉はいそうですね。スピーカーが一番良く聞こえる位置って、人の声とか中音域になるので、中音域がだいたい耳と平行な位置にユニットを付けないといけないのとか。座ったときの耳の位置に中音域が鳴るユニットを設置出来るように箱の大きさを決めてあげないといけないです。楽器店とかで、売れているスピーカーなんであんなに背が高いのって、そういう理由なんですね。児玉はい、そうなんですよ。下を浮かせているやつとかは大体そういう調整をしているんです。椅子の高さも重要です。卜部なるほど、知らなかった。あなたの知らないスピーカーの世界。児玉スピーカーは拘れば拘るほど奥が深くて。良いとか悪いとかの評価が客観的には難しい。児玉そうなんですよね、はい。自分で作ったスピーカーで普段音楽聞いたりテレビ見たりしているとやっぱりいいなとか、思い入れも出てきますし。プライムのミュージックをずっと流したり、YouTubeを流しっぱなしにしてますね。何かのサービスに固執せずに、いろんなサービスを巡回しています。スピーカーを作る割に、何かの音楽に拘りがあるわけじゃなくて、普段過ごしている中で音楽が常に鳴っているというような。音楽ある生活が好きって感じなんですね。ゲームとかどうですか?児玉ちょうど先日公開されたスター・ウォーズ観に行きました。映画は公開されたら直ぐ観に行きますね、とくにSF系が好きです。ゲームは、ちょうど先日スプラトゥーンの甲子園の予選があったんですが、そこでSplathonで知り合った仲間と参加してきました。ベスト16まで入ったんですが、準優勝した強いチームに当たって負けてしまったので悔しい思いをしました。ゲームは、そういった大会にも行って楽しんでます。卜部ゲームの大会は楽しいですよね、見ている方も楽しいですからね。児玉ほんとそうですね。会場もスプラトゥーン好きな人が集まっているから、やる方も見ている方もすごい盛り上がって、楽しかったですね。卜部ゲームの話もっと掘り下げてもいいですよ。他はポケモンとファイナルファンタジーですね。新しく出たサンムーンを?児玉ですね。2日ぐらいでクリアはしちゃって、そっからは、ひたすら強いポケモンを作ってバトルに挑んでいるみたいな。ファイナルファンタジーは、仲間とドライブを楽しむみたいなゲームですね。出るバグも楽しめるレベルで。面白いバグは意図的に直していないんじゃないかなと思うぐらい結構面白いものが沢山あって。後なんか、これはやっておいたほうが良いというのがあれば。児玉スプラトゥーンをやったほうが良いのは間違いないですね。マリオだとかポケモンにならぶ任天堂を代表する作品になったと思うぐらい面白いゲームで、いろんな年代の人が楽しんでますし、大会でも家族連れも多かったり、ギークの人だけのゲームじゃないですね。任天堂、そういうところがすごいですよね。ユーザーにどんな価値を与えられるかを一緒に考えたい卜部さて、組織と人。急に仕事の話に戻るんですが。施策ごとに小さいチームを組んで、進めることが多いですね。小さい感じで、ぱっと集まってぱっと解散してみたいな。基本的にはそうですね。卜部そして、どういう人と働きたいか。私自身は、マネーフォワードの「お金を前へ、人生をもっと前へ」というミッションを持って働いています。お金の不安を無くしたり、お金の知識を色々な人につけてもらったり、お金の見える化をして、根本的な問題解決をしたりとか、お金の使い方のアドバイスしたりとか、一緒にそういうことを解決したり、より良くしたいと思っているような人と一緒に仕事がしたいです。エンジニアとかディレクターとかデザイナーとか役割はあんまり関係なくて、同じ問題や課題を解決する仲間だと思うので、ケンカとかはせず、ユーザーにどんな価値を与えられるかを一緒に考えて建設的な議論をしていきたいです。卜部なるほど、ビジョンに共感してもらって、という感じですかね。児玉せっかく一緒に何かをするのであれば、その情熱をちゃんと伝えた上で開発していくのが良いと思ってます。卜部どんな組織で働きたいですか?児玉それぞれ自分の専門以外にも、自分が関わろうと思えば関われるところに対して、ちゃんと責任を持って関わっていく組織。デザイナーだったら、デザインしているところだけじゃなくて企画しているところだったり、作っている開発のところにも積極的に関わっていったり。エンジニアであれば、デザイナーがデザインしているものに意見を伝えたり、企画に関しては自分で企画してもいいと思います。いうことが当たり前に出来ている組織です。卜部このインタビューやっていると、みなさん専門だけに縛られない働き方が良いと言ってますね。児玉もしかしたら、このインタビューも含めて外でそういったアウトプットをしていることが多いので、そういう人が自然と集まってくるんですかねえ。座右の銘とかありますか?児玉そうですね、座右の銘とは違うかもしれないんですが、今までだいたいのことは「やります」と言ってきました。前の会社でも大変な炎上案件に、割りと積極的に参加しました。スキルを付けたいというのもあって、新規プロジェクトも積極的に手を上げることが多いですね。新しいことを始める時は、そのプロジェクトが始まるまでに勉強してキャッチアップすればいいと思ってます。やって何でも新しいことに挑戦してきましたね。今、組み込みもサーバーサイドも、AndroidもiOSも一通り出来るようになったのかなーと思ってます。開発だけでなく、企画を考えたり、実際にお客さんに売りに行ったりとか、色々やって来たんですけど、チャレンジ精神でやってきたおかげで色々出来るようになったと思います。いうのが今の自分の根幹なのかなと思ってますね。児玉さん自身が個人的にこうなりたいみたいなことって聞きましたっけ。エンジニアとしてでもいいし、社会人としてでもいいし、人としてでもいいし。児玉なにか新しいことをやったり、世の中を良くしたいと言った時にまずモノが作れないと実現できないと思うので、それができるエンジニアになるべきかなと思って今エンジニアをやってます。個人的にはお金のことだけでなく、世の中の課題に対して解決出来る人でありたいというのが有ります。今後、何かやりたいと思った時に、自分がエンジニア以外にもっともパフォーマンスを出すことが出来るのであれば、いつかエンジニアを辞めてもいいとも思ってますね。最後に今回のインタビューを読んで、マネーフォワードに興味を持たれた方は是非、以下のボタンをクリックして頂ければと思います。