マネーフォワードCTOが考えていること(2020年6月)

こんにちは、マネーフォワード CTOの中出(なかで)です。

CTOの私が、普段「なにを感じて、どんなことを考えているか」について、社内へ四半期に一回共有している内容を一部編集し、エンジニアブログに公開したいと思います。

前回はこちら : マネーフォワードCTOが考えていること(2020年3月)

目次

  • コロナ禍のマネーフォワードの取り組み
  • 不可逆な社会の変化
  • デジタライゼーションの推進
  • さらなるエンジニアリングへの要求
  • 私たちのチャレンジ

 

コロナ禍のマネーフォワードの取り組み

新型コロナウイルス感染症(以下、コロナ)の感染拡大により、人々の生活や働き方が大きく変わりました。

私自身これまで40年以上生きてきましたが、こんなに世の中が急激に様変わりした経験はありませんでした。

幸いなことに、マネーフォワードは現在のところ、大きな影響を受けていません。

マネーフォワードのメンバーは、多少の不便こそあれど、「生活が困窮する」「明日からどうやって生きていけば良いかわからない」といった状況にはなっていません。それ自体は、こんな状況下においても有難いことだと思っています。

「自分や家族、会社の同僚たちの被害がそこまで大きくない」「リモートワークは快適で、むしろ今までよりも生産性が上がった」

ポジティブなこともあるかもしれません。

続きを読む

マネーフォワード京都拠点について気になる事

 

こんにちは。
マネーフォワード京都拠点の村上です。

京都拠点は設立から1年とちょっとが経ちました。

そして、京都拠点のホームページもOpenしました!!!!
https://kyoto.moneyforward.com/

1年間で沢山の方から応募がありました。1年間で多くの方とカジュアル面談をしてきました。
何人も話をしていると、気になる点に共通点があると思ったので今日はそれを書こうと思います。

「面談で聞くなよ!」と言うわけではなくて、面談の限られた時間の中でより深く、書けば伝わる程度の事は先に書いておいた方が濃密な面談を過ごして、ミスマッチを減らす助力になるのではないか?と思ったからです。
ぜひ自分自身に合う環境なのか?見てみてください。

今回は主にweb開発チーム向けのコンテンツです。
MLは一部違うので沢山応募がきたら書こうかなと思います。

(2020年5月1日時点の情報です)

拠点の話

なぜ立ち上げたか、そして何処へ向かうのか

まずは、こちらを読んでみて欲しいです!

はじめまして! 京都開発拠点 | Money Forward Engineers’ Blog

インタビュー形式でもお答えしたことがあります。
京都開発拠点の設立メンバーに聞く、立ち上げの経緯と今後の展望について | MoneyForward’s ROOM

続きを読む

如何にしてわたしはマネーフォワードの一員になったのか

TL;DR

こんにちは。
2020年1月から マネーフォワード 京都開発拠点で働いています luccafort です。

本日は、ぼくがマネーフォワードに入社してから3ヶ月経ち、試用期間という禊を終えたいまだからこそ書けることをしっかりと足跡として残しておきたいな、と感じたので筆を取らせてもらいました。

どうやってマネーフォワードを知ったのか。
どうしてマネーフォワードで働きたいと感じたのか。
マネーフォワードに入る前と後でどう変わったか。
今後マネーフォワードでどうしていきたいか。

もしぼくが将来マネーフォワードを離れる日が来たときにこれを読んで

「良かったことをより良く出来たと胸を張れるか」
「課題と感じていた部分をちゃんとやりきったといえるのか」

ということを見極めれるとよいなという気持ちで書いています。

超大作ポエムなので読む人は心して読まねばならないことをお伝えしておきます。

 

長過ぎるのでまとめから

なんかいろいろあってマネーフォワードの文化や働く人と入社前から関われてハッピー!だった。
そんなハッピーな経験をしたのでマネーフォワードで働けるようになって嬉しく思ってる。
誠実な人が多くてぼくはいまハッピーです、いぇいっ!
マネーフォワードの京都開発拠点、めっちゃいいところなので遊びにきてくれよな!

続きを読む

AndroidアプリのAndroidバージョンサポート基準を定めました

こんにちは、Androidエンジニアの syarihu です。

当社が提供するお金の見える化アプリ「マネーフォワード ME」のAndroidアプリ版では、2020年4月下旬にリリースのバージョン13.2.0からAndroidの最低動作バージョンをAndroid 6.0(API Level 23)にすることになりました。
対象のAndroid OSでAndroidアプリ版「マネーフォワード ME」を利用してくださっているユーザー様には重要なお知らせとしてすでに表示されていますが、今後はAndroid 6.0以上の端末にのみ最新のアップデートが配信されます。

今回のマネーフォワード MEの最低動作バージョンの引き上げを機に、当社で提供するAndroidアプリについてminSdkVersion(サポートするAndroid OSの最低バージョン)とtargetSdkVersion(アプリのターゲットとなるAndroid OSのバージョン)を判断する際の基準を社内で統一しました。

Android OSは毎年アップデートされるため、バージョンが増えるごとにサポートコストが増していきます。
AOSP(Android Open Source Project)によるAndroid OSのサポート(セキュリティアップデートなども含む)も古いAndroid OSには提供されません。
minSdkVersionを古いままにしておくことはセキュリティ面においても良くないため、minSdkVersionは定期的な見直しが必要だと考えています。
また、新規でAndroidアプリを提供する場合もこういったAndroid OSのサポート基準が定められていることでminSdkVersionを決めやすいため、そういった目的から今回Androidバージョンのサポート基準を定めることにしました。

minSdkVersionを上げることはプロダクトの利用ユーザーによって影響が異なるため、minSdkVersionを揃えるのではなく見直しをするタイミングや観点などの基準を揃えるだけにとどめて、実際に引き上げを行う判断は各プロダクトに任せるというスタイルをとりました。
会社全体で基準を揃えることで、引き上げを行った際に調査した内容などを知見として溜めておくことができたり、社内のAndroidエンジニア間で連携をとることが容易になるため、こういった基準を定めることは大きなメリットがあります。

本記事では、当社で定めたAndroidアプリのAndroidバージョンサポート基準についてご紹介します。

続きを読む

マネーフォワードCTOが考えていること(2020年3月)

こんにちは、マネーフォワード CTOの中出(なかで)です。

CTOの私が普段なにを感じて、どんなことを考えているかを、改めて言語化して、社内に共有するという取り組みをしています。
そうしたところ「当社のエンジニア組織に興味を持っている方にも読んでいただくのがいいのでは?」という社内の意見もあり、今回公開することにしました。

もちろん、日々考えていることは変化しているので、今後は四半期に一度ぐらいの頻度で、変更があれば更新していきます。
※公開用として、社内向けの内容を一部編集しております。

 

これからのマネーフォワードのエンジニア組織について

まず、マネーフォワードのエンジニア組織として「どこを目指すのか」という話をしたいと思います。

もちろんビジネスには「やれる・やれない」という議論も必要ですが、まずは私たちが「どこを目指すのか」という意志が必要です。

そして、「どこを目指すのか」を決めた時点で、どこまで到達できるかが決まると思っています。そのため、まずはその話をさせてください。

私たちよりも前を進んでいるIntuitという企業

海外には、先行して私たちと同じようなサービスを展開している企業があります。
その1つとして挙げられるのがアメリカのIntuitという企業です。

Intuitの社内にはJavaの開発者がいたり、ハーバードやスタンフォードのPhDがたくさんいます。

私たちよりも前を進んでいるプレイヤーに追いつくためにはどうしなければならないかを考えるときに、社内で働く人材の優秀さで追いつくことは最重要です。

もちろん一足飛びには出来ないですし、今はそれを口にするのもおこがましいのかも知れない。しかしそういう目線を持ち続け、それに向かって少しずつでも前に進めていくことが必要だと思っています。

会社のMission/Vision/Value/Cultureが魅力的であることはもちろんですが、待遇しかり、やりがいのあるチャレンジや自主性の発揮しやすさ、働きやすさなど総合的に魅力を向上させないといけないと考えています。

続きを読む

DroidKaigi 2020に登壇する予定でした & 登壇動画公開のお知らせ

こんにちは。
Androidアプリエンジニアのsyarihuです。

2020年2月20日、21日に開催が予定されていたDroidKaigi 2020ですが、昨今の状況により残念ながら開催中止となってしまいました。

中止になった経緯などについては、DroidKaigi 2020の開催予定だった初日の2020年2月20日に日高さんを始めとする理事の方々からライブ配信にて説明がありました。
まだご覧になっていない方はぜひ見ていただけるとよいと思います。

ライブ配信のあと、DroidKaigiスタッフの皆さまのご尽力があったおかげで、登壇予定だったスピーカーは任意で動画を撮影し、撮影した動画をDroidKaigi公式のYouTubeチャンネルで公開していただけるというアナウンスがありました。

DroidKaigi 2020にて登壇予定だった私は登壇動画を撮影していただくことにしました。
そして、2020年3月16日 14時からDroidKaigi公式のYouTubeチャンネルにてプレミア公開で登壇動画を公開していただいたのでここでお知らせします。

続きを読む

「Money Forward Techbook#2」を技術書典 応援祭に出品します

こんにちは、Androidエンジニアの syarihu です。

マネーフォワードの有志の社員が集まって立ち上げた「まねふぉ執筆部」では、前回の技術書典7 に引き続き、技術書典8でも技術書を出典する予定でしたが、技術書典8は昨今の新型コロナウイルスの影響により開催中止となってしまいました。
しかし、その代わりとして2020/03/07(土)から2020/04/06(月)まで約1ヶ月間に渡って「技術書典 応援祭」のオンラインマーケットと、それを盛り上げる各種オンラインイベントが開催されることになりました。

「技術書典 応援祭」を3月7日から約1ヶ月間に渡って開催します! – 技術書典ブログ
https://blog.techbookfest.org/2020/02/28/cheering-tbf/

まねふぉ執筆部は技術書典8で頒布する予定だった「Money Forward Techbook #2」を「技術書典 応援祭」のオンラインマーケットに出品します。

Money Forward Techbook #2:まねふぉ執筆部
https://techbookfest.org/product/5719802073055232

「Money Forward Techbook #2」とは

「Money Forward Techbook #2」は、マネーフォワードの有志の社員によって執筆した技術同人誌です。RSpecの再入門ガイドやKubernetesの移行プロジェクトにより得られた大切なポイント、「Kinsta」によるWordPressの運用などマネーフォワードを支える技術が盛りだくさんの内容となっています。

  • 電子版
    • 1,000円
  • 紙 + 電子版
    • 1,200円 + 400円(送料)

続きを読む

React Componentの実装ルールを決めてみた

こんにちは。
経費精算サービス「マネーフォワード クラウド経費」の開発チームでフロントエンドエンジニアをしている坂本です。

クラウド経費ではJSのライブラリとしてReactを採用しているのですが、最近クラウド経費で React Component を実装する際のルールをまとめたので、その話を書こうと思います。

 

なぜルールをまとめようと思ったのか

Componentの分割ルールとしてAtomic Design、スタイルの管理としてstyled-components、GraphQL用のライブラリとしてApollo Clientを導入し実装を進めています。
昨年の10月までは挙げた3つとも使用していなかったので、試行錯誤しながら進めています。

チームメンバーの各々が試行錯誤しながら実装を進めていくので、最近はチーム内で認識の齟齬や持っている情報に差が出るようになりました。
そこで一旦現状を整理して、クラウド経費でReact Componentを実装する際の各種ルールをまとめよう、となりました。

 

出来上がったルール

まとめたルールは以下のようになりました。

- Atomic Designを意識する
  - 各レベルのルール
  - 自分のレベル以下の要素で構成する
  - 最初から完璧に設計する必要はない
- ファイルの命名規則
- Functional Componentで実装する
- Container ComponentとPresentational Componentに分けて実装する
- Templates以下のComponentではuseQuery・useMutationを実行しない
- global state と local stateの使い分け
- スタイル管理
- その他
  - export defaultを使用しない
  - Componentを作成する際はclassNameを受け取ることが可能なようにpropsを定義する
  - Material-UIを利用する
- Componentの利用
  - RailsのViewへのReact Componentの埋め込み
  - client/Components/other/以下のComponentは原則利用しない

以下ではインデックスの中からいくつかをピックアップして、詳細を書いていきます。

続きを読む

Ruby の Enumerator とたわむれる

こんにちは!
マネーフォワード クラウド経費 というサービスで Rails エンジニアをやっている野田 (@quanon_jp) と申します。

クラウド経費の開発拠点は福岡にあるのですが、福岡拠点では不定期で tech talk というカジュアルな社内 LT 会を行っています。
先日、この会で Ruby の Enumerator クラスについてお話しました (個人的に大好きなんです 💖) 。

今回はその内容を本エンジニアブログでもお伝えできればと思います。

 

バージョン情報

この記事のコード例では Ruby 2.7 を用います。

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin18]

 

外部イテレータと内部イテレータ

配列などのコレクションの要素を列挙する仕組みとして イテレータ があります。
これは外部イテレータと内部イテレータに二分できます。

続きを読む

とあるエンジニアのマネフォ的 1日の過ごし方

こんにちは!
マネーフォワード クラウド勤怠』のエンジニアの @bino98 です。

今回は、 マネーフォワードで働くエンジニアの1日の過ごし方 をご紹介させていただきます。
この記事を通して「マネーフォワードで働く」イメージを少しでも持っていただければ幸いです。

 

過ごし方の基となった人物の特徴

この記事の出来事は以下の人物の1日の出来事を中心に、できる限り働き方をイメージして頂きやすくするために、一部内容を再構成しています。

名前は山本貴文(@bino98)。東京都在住。
2019年5月から、マネーフォワードの一員になり半年が経過
マネーフォワードクラウド勤怠を作るメンバの一員
最近子どもが生まれ、家に帰ると子どもが喜ぶ。その姿を観ると、とても癒やされる。

マネーフォワードでは、リモートワークによる勤務も認められています。
今回は出社する場合です。

続きを読む