こんにちは。 マネーフォワード京都拠点の村上です。
京都拠点は設立から1年とちょっとが経ちました。
そして、京都拠点のホームページもOpenしました!!!! https://kyoto.moneyforward.com/
1年間で沢山の方から応募がありました。1年間で多くの方とカジュアル面談をしてきました。 何人も話をしていると、気になる点に共通点があると思ったので今日はそれを書こうと思います。
「面談で聞くなよ!」と言うわけではなくて、面談の限られた時間の中でより深く、書けば伝わる程度の事は先に書いておいた方が濃密な面談を過ごして、ミスマッチを減らす助力になるのではないか?と思ったからです。 ぜひ自分自身に合う環境なのか?見てみてください。
今回は主にweb開発チーム向けのコンテンツです。 MLは一部違うので沢山応募がきたら書こうかなと思います。
(2020年5月1日時点の情報です)
拠点の話
なぜ立ち上げたか、そして何処へ向かうのか
まずは、こちらを読んでみて欲しいです!
はじめまして! 京都開発拠点 | Money Forward Engineers' Blog
インタビュー形式でもお答えしたことがあります。 京都開発拠点の設立メンバーに聞く、立ち上げの経緯と今後の展望について | MoneyForward's ROOM
開発しているプロダクト
統制管理機能を備えたクラウド型会計システムを開発を行なっています。 プロダクトは採用状況に応じて増やしていきたいと思っています。 マイクロサービス化が進んだり、サブシステムの開発も行なっています。
チーム構成
拠点には会計Plus開発チームと、機械学習&データ基盤チームがあります。 会計Plus開発チームは大きいので、更にその中で開発チームが仮想的に2~3チームに分かれています。
メンバー
拠点全体
契約形態 | 人数 |
---|---|
社員 | 12名 |
アルバイト | 1名 |
業務委託 | 2名 |
学生インターン | 8名 |
合計 | 23名 |
会計Plusチーム
ロール | 人数 |
---|---|
プロダクトオーナー兼ドメインエキスパート | 1名 |
デザイナー | 1名 |
エンジニア(フロント) | 2名 |
エンジニア(RoR/Go) | 14名 |
エンジニア(インフラ兼アーキテクト) | 1名 |
合計 | 20名 |
多能工チームなので、職能としてどちらかというと…という感じで振り分けています。 それぞれ専任という訳ではないです。例えばフロントエンドエンジニアはサーバーサイドやってるケースも、プロダクトオーナー業をやっているケースもあります。イメージ掴む程度の情報としてご参考に。 開発言語等については後述します。
開発環境の話
オフィス
人が増えてきたので右半分はもう埋まってしまう勢いです。リフレッシュエリアもいつまで維持できるか…(笑) Meetupを開催したり、リフレッシュエリアで雑談、ランチしたり、オフィスエリアで集中して仕事したり出来る様な間取りになっています。
来社の際は中までご案内します。是非。
道具
昇降デスクとokamura Sylphy(椅子)のセットを用意しています。 外体格差が大きくても快適に執務可能になっています。
最強のエンジニア・デザイナー開発環境向上施策 | Money Forward Engineers' Blog にある通り、概ね最新機種&メモリはMax搭載を基本としています。 開発環境補助費としてモニター、メカニカルキーボード、ノートPC台を買う方もいます。 エンジニアにとってはプロの仕事道具ですので可能な限り快適な環境を維持しています。
「エンジニアにコミットを求めるなら、コミットできる環境は会社が用意しません?」 なんてカッコイイ事を言っちゃう渋谷VPoEも、京都拠点で開発しているプロダクトのマネージャーだったりします。 今でこそ最新環境は人権だ!って世間では言われてますがこの制度創設当時は2015年で創業3~4年目の時期ですからね。エンジニアの会社っぽくて嬉しかった事を覚えています。
クラウドサービス
「一般的なWeb開発で使っているクラウドサービスは大体使っていると思いますよ」とお伝えする事が多いですが、具体的にも書いておきます。挙げきれないので興味あれば聞いてみてください。
用途 | 京都拠点での利用サービス名 | 一言 |
---|---|---|
コードリポジトリ | Github/Gitlab | ほぼ全てGithubで、アグリゲーションチームのコードの一部だけがGitlabです(普段皆さんが触る事はないです) |
コミュニケーション | Slack / Chatwork / Discord | slackです。顧客とのコミュニケーションや歴史的背景によりchatworkも利用しています。リモートワーク時においては音声コミュニケーションのハードルを下げる為にdiscordも利用をはじめました |
タスク管理 | JIRA | チームによりけりですが、京都拠点の開発チームはJIRAを利用しています。社内ではJIRA/backlog/asana/trello/github projectを見かけます |
CI | CircleCI | 社内は概ねCircleCIでインテグレーションテストを実行しています。モバイル等はOSに合ったサービスを使っています。Github Actionsは利用可能ですが社内ではまだ小さな利用に留まっています。 |
CD | CircleCI + Slack Chat Bot | 京都拠点の開発チームはCircleCI と ChatBotを使ってデプロイをしています。社内ではJenkinsを使っているチームもあります。 |
インフラ | AWS / ECS / Docker / Heroku | 京都拠点の開発チームはフルAWSです。ECSで運用しています。共用開発環境やレビュー環境としてHerokuも利用しています。 |
ジョブスケジューラー | -- | 京都はまだないですがcircleci や、sidekiq cron等が候補です。全社的にはjenkinsもあります。 |
アラートマネジメント | Rollbar | アプリケーションからのエラーはRollbarを使ってとりまとめています。 |
モニタリング | Datadog | Datadogを利用しています。インフラ監視、アプリケーションパフォーマンスモニタリング(APM) を利用しています。 |
開発手法の話
プロジェクトマネジメント
プロジェクトマネジメント…というと語弊がありますが、プロダクト マネジメントとしては京都拠点ではスクラム開発を採用しています。 俗に言う「オレオレアジャイル開発」ではなくて、まるで書籍そのままの様なスクラム開発をしています。割とスクラム原理主義くらいに見えるかもしれません。
属人性を減らし、スキルマップを広げ、多能工化する事が求められる環境です。ユーザーレビューを実施したり、デザインプロセスや業務仕様を決めるプロセスにも入っていきます。 価値基準は 「ユーザーにとって価値あるものを作る」 です。チームがワークすることを最大化するためにエンジニアや個人のエゴが抑えられる場面もあります。
文化としてとても色が強いので人によっては全く合わない可能性もあります。 カジュアル面談等で是非質問してください。
開発プロセス
開発フロー
GitHub flow · GitHub Guidesで開発してます。 ForkはせずにFeatureブランチの運用です。この辺りは強いこだわりと言うより振り返りを通じて最適化された結果です。 スクラム × JIRA × Github を利用する中で調整されてきました。いまいちな点があれば振り返り会等を通じて改善がされていきます。
開発体制
開発チームのロールは概ねスクラムに登場するロール + デザイナのみです。 例外としては、拠点長と、組織図上の上長が東京にいます。
スクラム/デザイン
The Scrum Guide にほぼ忠実に沿っていると思います。 (忠実になるのが目的ではなく、結果的に道を逸れなかった感じです。)
ここにのってないプロダクトロードマップとデザインのプロセスについて補足します。
- プロダクトオーナーは1~3ヶ月先までの大きなマイルストンを持っています。これらはエンジニア、セールス、カスタマーサポート、そしてユーザーにヒアリングした結果から総合的に決まっていきます。また決めたものも確定ではなく、スプリントに入るまでは仕様のボリュームを変えたり、優先順位をやりくりしたりする事ができます。
- 開発するストーリーの規模によるのですが、1ヶ月程度開発にかかる機能のイメージだと概ね1~2ヶ月前くらいから徐々にヒアリングを進めたり、ラフデザインを創ってもらったりして情報設計やユーザビリティ、業務プロセスを明確化していきます
- 1ヶ月前くらいから開発面での設計や懸念点の洗い出しも行なっていきます。この頃にデザイナーはラフデザインからしっかりとしたデザインデータに落とし込んでいきます。その過程でフロントエンドエンジニアと実現可能性等を詰めていきます。
- スプリントに入ったあたりからはスクラムガイドそのままです。
オンボーディング
「入社直後ってどんな風に始まりますか?」「事前に勉強しておく事はありますか?」という質問がございます。
入社直後はオンボーディングプロセスを通じて、
- 京都拠点についての理解を深める
- 開発するプロダクトについて業務側の理解を深める
- 開発するプロダクトのコードや設計指針についての理解を深める
為に、オンボーディングMTG、解説動画、モブプログラミングを通じてチームへ馴染んでいく事を進めています。 ドメイン知識については確固たるプロセスはないのですが、チームで必要に応じて勉強会を開催しているので 推薦図書を読んだり、過去に実施したユーザーストーリーマッピング動画を見て背景を理解したり、 カスタマーサポート職の方が実施するサービス勉強会に参加する事が出来ます。
スキルアップ
オンボーディング以外に、社内で特定の研修の手配やスキルアップの勉強会は定型的に用意しているものはあまりありません。 例えば資格をとったら手当がもらえる。とか、研修が整っているとか。 ベンチャーなのでという言い訳もありますが…。自己学習が基本です。自分達でコミュニティを作り学び合っています。
提案に応じて外部研修を呼んだり、参加したりもたまにしています。(京都拠点ではまだ実績なし。) ジョブローテーションについては、強制的なものはないですが、「チャレンジ制度」という社内転職公募制度があるので それの応募する事ができます。受入側が承認すればほぼ強制的に異動する事ができます。 京都では技術力の違うチームへの短期留学ができないか計画しています。
技術スタックの話
カテゴリ | 現在の言語、ライブラリ | 目指してる方向 |
---|---|---|
フロントエンド | jQuery、CoffeeScript、SCSS、slim、部分的にReact,、TypeScript、mocha、webpack | 次のフェーズに進めるための転換期で、適切な開発を実現するための技術選定と導入に取り組んでいます |
バックエンド | Ruby on Rails , Golang | WebはRoRが主流ですが、Golangの方がマッチしている機能等はマイクロサービス化の中で使用しています。Golangにフルリプレースする事はまだないと思いますが、GolangもRoRもしばらく並行して適切に使っていきます |
データベース | AWS Aurora | Auroraいいよね! |
インフラ | AWS色々、ECS、Docker、Heroku、SendGrid | そのうちk8sにいくかも知れない。今は将来の大規模データへの対応と非同期処理や分散処理、マイクロサービスについて取り組んでいます |
文化の話
マネーフォワードらしさ
マネーフォワードのカルチャーはブログや採用サイト等でも沢山掲載しているのでぜひ目を通してみてください。 文章では上手く伝わらないので、さらに面談の際にも聞いてみてください。 我々も必ずお話するようにしています。
Let's make it!! | 株式会社マネーフォワード採用ページ マネーフォワード公式note MoneyForward's ROOM Engineers' Blog | マネーフォワード エンジニアブログ
京都拠点らしさ
京都開発拠点の設立メンバーに聞く、立ち上げの経緯と今後の展望について | MoneyForward's ROOMでもお話している内容とかぶりますが
東京と同じ事やっていたら、地方拠点は「東京の劣化版」になってしまいますからね。 拠点だからこそやれる事があるはず。それを立ち上げメンバーの私と谷口は「Give it a try!」という言葉に込めました。
人が少ないからこそ、チャレンジしやすく、成功しやすいと考えました。どこよりも先に試して、小さく失敗して そして大きく成功する体験を全社でも先導して実現していきたいと思いました。そしてその成功体験が全社に広がっていく。 こんなにワクワクする役割は中々ないと思っています。
1年経ってみて社内からは
- 京都拠点って新しいことやっているよね
- 何か色々上手くいってるよね
と声かけてもらえることが増えてきました。人が少ないという事はチャレンジする時にはアドバンテージです。 そしてこれは人が増えても生かせつづけたい。と強く思っています。
京都拠点のこれから
これはまた別途ブログを書こうと思いますのでお楽しみにしておいてください。
オープンソース / コミュニティ運営
一定のルールはありますが、活動を妨げる様なルールはほとんどありません。 ぜひ熱意を持って取り組んで楽しんでください。
少し古いですがこの頃から指針はほとんど変わっていません。 マネーフォワードとオープンソース・ソフトウェア | Money Forward Engineers' Blog 初めてOSS貢献体験と、それにより変化した考え方について | Money Forward Engineers' Blog
コミュニティ活動についてはこちらも御覧ください。 マネーフォワード京都開発拠点はコミュニティ活動も応援しています | MoneyForward's ROOM
採用の話
カジュアル面談
マネーフォワードでは面接にいきなり入る前にカジュアル面談のフェーズをご用意しています。 主にマネーフォワードを知ってもらう場として、そして働く職種のイメージが湧くかを確認する時間です。
ご自身のキャリア感や、経歴を元にマネーフォワードで働くのがいいのだろうか?という情報収集に是非お越しください。 その後、面接を受けたいかを決めて頂けると幸いです。
面接回数/フロー
人や職種によって違うのですが、概ねカジュアル面談1回、書類選考1回、面接2回 +α です。 インターン生はもう少し少ない事もあります。 誰と会うかはこちらで考えていますが、働く際に身近になる人(同じ職種や職能)の方をアレンジします。 面接の場ですが、マネーフォワードに聞きたい事があれば聞いてみてください。
技術課題
ケースバイケースですが技術課題を出すこともあります。内容は秘密。
評価制度
これは面接時にお話しますので聞いてください。 基本的には拠点にいる人が評価レポートをあげる方針です。(最終決定者は別として)
最後に
つらつら、書くだけで伝わりそうな情報を書いてみました。 もしかしたら都合悪くて書いてないのでは!?って所もあるかもしれません(笑) 書いている側のバイアスがガッツリ入ってますからね!!
面談ではここの内容を聞いてもらっても全然構いません。そして更に深堀りして本当の所どうなの?とか、こうゆう時どうしてるの? と聞いてみてください。お互いを知るいい時間にしていただけると幸いです。 京都拠点はまだまだ発展途上です。なおかつ、先頭を走ろうと一生懸命手を動かしています。 外からみたらいまいちな場所も沢山あると思います。
ぜひ楽しめる所があるか探してみてくださいね!
--
マネーフォワードでは、エンジニアを募集しています。 ご応募お待ちしています。
【採用サイトのご案内】 ■マネーフォワード採用サイト ■Wantedly
【プロダクトのご紹介】 ■お金の見える化サービス 『マネーフォワード ME』 iPhone,iPad Android
■ビジネス向けバックオフィス向け業務効率化ソリューション 『マネーフォワード クラウド』
■だれでも貯まって増える お金の体質改善サービス 『マネーフォワード おかねせんせい』