学長がアプリエンジニアの劉さんにいろいろと聞いてみた。
―劉さんこんにちは!早速ですが劉さんは今どこで仕事をしているのですか?
今は中国の実家で仕事をしています。中国の真ん中からちょっと南の方にある湖南省っていうところにあります。
―どうして実家に戻ったんですか?
特に複雑な理由はないですね。家族と一緒にいるために戻りました。
―劉さんは元々日本に住んでいて会社にも通っていたわけですが、国が違っても問題なく仕事はできてますか?
そうですね、日本にいる時と大体同じ感じで仕事をしていますね。違うところでいうと、中国は日本と1時間だけ微妙に時差があるので仕事の時間を間違えたりしないように常に意識しないといけないところですね。あとは、今まで会社で直接会っていた人と直接話すことができなくなったので、そこはちょっと寂しいです。
―中国からでも問題なく仕事はできているってことですね。
そうですね、私があまり気にしていないだけかもしれないですけど、時差以外は特に影響がないですね。
―劉さんはみんマに入って何年になりますか?
2019年に入社したので、もう5年目に入りました。
―そんなに経つんですね。中国というと世界的にもIT企業の成長が注目されていますよね。中国のIT企業で働こうとは思わないのですか?
もちろん中国にも優秀なIT企業はたくさんありますが、今の時点ではみんマを辞める気はないですね。
みんマ唯一のアプリエンジニアとして活躍
―入社してから今まで、みんなのマーケットで劉さんはどんなお仕事をしてきたんですか?
入社した当初は、iOSエンジニアとして「くらしのマーケット」のアプリと「店舗管理システム」のアプリ、両方の開発からリリースまでの一連の業務を担当してました。その当時は僕一人しかアプリエンジニアがいない状態でした。一人でiOSとAndroid両方を作るのは大変なので、業務の効率化や生産性の向上という目的で、CI/CDの改善や、Flutterを導入してAndroidアプリをリプレイスするという作業をやりました。今はFlutterの開発をメインに、iOSやAndroidの開発もしています。
―現在の劉さんのチームでの役割を教えてください。
今は「即応チーム」というところにいて、結構人数が多いチームなんですが、アプリエンジニアとしては今私を含めて3人います。
私の仕事は、簡単に言うと新規開発やメンテナンス、不具合修正等の案件に対応するのと、アプリ周り、開発フローとか技術とかの改善案を考えて実行する役割をやっています。
―やっぱりチームにアプリエンジニアがいると違いますか?
違いますね。AndroidアプリをFlutterにリプレイスする前は、アプリエンジニアではないメンバーがレビューしてくれたこともあったんですが、アプリの開発の経験がないと細かいところのミスとかを見つけることは難しいので、やっぱりアプリ専門のエンジニアがいた方がレビューされる方も嬉しいかなと思います。
―では、業務のワークフローや使用しているツールについて教えてください。
ワークフローとしては基本的にはPMからアサインされたタスクに着手します。ローカルで開発完了したらslackとかで他のエンジニアにコードレビューの依頼をします。コードレビューが終わった後QAテストを行い、問題なければそのまま本番リリース、という流れになります。
開発ツールの方は特にルールはないんですけどiOSの開発だったらXcode、AndroidだったらAndroid Studioとか、Flutterの開発だったらVSCodeを使ってます。ソースコードの管理はGitLabでやっていて、CI/CDについてはGitLab CIとFirebase Distributionというサービスを利用しています。
仕事や他人の為ではなく、自らの意思で行動できることが一番大事
―今の仕事で難しいところってどんなことですか?
例えば何か新しい機能を作ろうとする時に、新しい仕様と古い仕様の間に生じる矛盾を解決するのが難しいですね。どの会社でもよくある話だと思いますが、この矛盾をそのまま放置しておくと今後どんどん開発がやりづらくなってしまうので、新しい開発に着手する前には必ずそこの部分を考えないといけないのが結構大変だなと思います。
―前の仕様との矛盾と言うと、例えばどんなものがあるんですか?
技術的な話でいうと、例えば新しい機能を作りたくても、既存のコードの作り方だとできないことがあるんですよ。なので新しい機能を作るために古いコードを変えないといけないんですが、一気にコードを変えることによって予想外の影響が出て不具合が発生したり大変なことが起きてしまうことがあります。なので、リファクタリングとか改善とかを常に意識して行なわないといけないということですね。
―そういう面では、ビジネスモデルの理解という部分も開発において重要ですか?
そうですね。特にくらマだと出店者とかユーザーとか、そういった概念を理解しないとシステムを開発する時に疑問が発生すると思うので、そういった面でも難しさがあると思います。
―確かにそうですよね。これはみんなに聞いているんですけど、劉さんの考える「優秀なエンジニア」ってどんな人ですか?
一番大事なのは、仕事や他人の為ではなく、自らの意思で行動できることですね。エンジニアは勉強しないと生き残れないという話があります。それはちょっと大げさかもしれないですけど、私的には「エンジニアは勉強しないと優秀とは言えない」という話を信じています。
仕事を通しての勉強はもちろんですが、仕事で携われる内容はプログラミングの世界ではほんの少しだけです。なので、プライベートや他の時間で勉強するのが大事かなと思います。
―自分の意思だからこそプライベートの時間にも勉強できるということですね。実際に劉さんはどんな勉強をしてるんですか?
そんなに大したことはないですけど、色々やってきましたね。私、実はもともとアプリエンジニアではなかったんです。新卒で入社した会社ではどちらかと言うとバックエンドエンジニアをやっていて、javaとかでWebシステムを作っていました。その時は新卒で何も知らなかったので、バックエンドの知識とか、Webのフロントエンド側の知識も勉強してサンプルアプリとかを作りました。その後、新しいアプリ開発の案件を私が担当することになったので、一瞬だけアプリエンジニアにならないといけないことになりました。それで、アプリについても色々と勉強し始めたという流れです。私はアプリの開発が好きなのでこれからも続けていきたいと思っていますが、フロントエンドなど、アプリ以外の勉強ももちろん引き続きやっていくつもりです。
―アプリの勉強だけではないのですね!劉さんがプログラミングに興味を持ったきっかけはなんですか?
プログラミングに興味を持ち始めたのは中学生時代ですね。ゲームボーイアドバンスの牧場物語っていうゲームにはまったのがきっかけです。牧場物語にはまって、RPG Makerというゲームを作るツールをちょっと触り、そこで初めてプログラミングという概念を知りました。そして、大学ではプログラミング関連の学科を選んで本気でプログラミングを始めました。
―その後、どうして当社で働くことになったんですか?
私はもともと、日本の大学院に進学してそのまま日本の企業に就職しました。みんマを知ったのは、たまたまネットでキャンちゃんの写真を見たことがきっかけです。でもその当時は転職とかは全然考えていなかったので、本当に会社名も覚えていないくらい、猫しか覚えていない感じで終わりました。その後、そのまま日本で転職活動をしている中でみんマからスカウトメールが届いて、それを見て「あれ、なんか昔見たことあるな」と思い、いろいろ調べてみたところ、あの時の猫の会社だと気づきました。使ってる技術も自分に相応しいし、活躍できる環境だと思ってみんマに入社しました。
能力があれば大きな仕事を任せてもらえる
―劉さんは「辞める気はないです」と話していたのでお聞きしたいのですが、エンジニア視点でみんマの良さって何ですか?
一番のポイントとしては、裁量権が大きいところですね。能力があれば大きな仕事を任せてもらえるし、CTOとか社長の承認さえあれば自分の意思で進めることができます。それはエンジニアとしてはかなり魅力的なんじゃないかなと思います。例えば私の場合で言うと、新しい技術、Flutterを使ってアプリを完全にリプレイスすることは、世の中のほとんどの会社ではなかなかやりづらいことだと思いますね。古いプロダクトを完全に作り直すというのは、本当になかなかできないこと、認められないことだと思います。だけど、みんマではちゃんとメリットを説明できて自分の能力があれば、スムーズに進めることができました。
それ以外にも、優秀で技術に熱心なエンジニアもたくさんいますし、普段から勉強会やLT会などのイベントもやっているので、業務以外でもエンジニアとして成長できる環境かなと思います。
―裁量権が大きいのはやりがいに繋がりますね。エンジニアとして成長できる環境も大切ですね。他にもあったりしますか?
例えば、今の評価制度はエンジニア同士での相互評価になっているので、自分が成長すればするほど自分の評価にも反映されます。それも、自分が成長するための原動力になっているかなと思います。
―逆に、みんマに入社して大変だったことはどんなことですか?
そうですね、やっぱりみんマのカルチャーに慣れることですね。
―具体的にどういうことですか?
会社なのに意外にルールが少ないので、何かをやる前に「自分はやらかしてしまうかもしれない」という恐怖心を克服しないといけないことですね。
―確かに、ルールが少なくて自由度が高い反面、やって良いことと悪いことがわからないということですね。
はい、そうですね。
―なるほど、面白いですね。自由なカルチャーを守るために、一人ひとりに高いモラルが求められるというのは、みんマらしいですよね。ところで、くらしのマーケット全体を見た時に劉さんが課題だなと思うのはどんなことですか?
なかなか難しい質問ですね。私が思っているのは、くらマの事業はこれからもどんどん伸びていくと思うんですが、その一方で組織としての成長は今後どうなるかっていうのはちょっと気になっています。人手不足とか色々な問題によって成長が減速する問題が起きるかもしれませんし、利用するユーザーが増えることで「自分の技術力で本当に大丈夫なのか」みたいな、自信がなくなってしまうこともあるかもしれないですね。なので、エンジニアも会社も一緒に成長しないといけないかなと思っています。
新機能の追加は「目的」ではなく、ユーザーを喜ばせる「方法」の一つでしかない
―もし劉さんがCTOや社長だったら、その問題に対してどのようにアプローチしますか?
正直に言うと、CTOや社長は自分には向いてないです。アプローチの方法が分かったとしても、社長として命令を出すのは自分にとっては本当に難しいことです。
―自分が活躍できる領域はそこじゃないっていうことですね。先程「優秀なエンジニアは自らの意思で行動できる」っていう話があったじゃないですか。劉さんの場合の「意思」っていうのは、組織の成長ではなくて、技術の成長にあるっていうことなんですね。
そうですね。
―では劉さんは、今後くらしのマーケットのプロダクトをどのように進化させたいと思っていますか?
一言で言うと、誰もが使っているプロダクトにしたいです。そのためには多くの機能をどんどん作るだけじゃなくて、もっと便利に使えるように進化させたいです。
エンジニアとしては新しい機能をどんどん追加していくのは嬉しいことだと思うんですけど、プロダクトを利用しているユーザーとしては逆に使いづらくなるっていうケースもよくあります。
―それは具体的にどういうことですか?
新しい機能を追加するのはプロダクトを進化させるための「目的」ではなくて、ユーザーを喜ばせる「方法」の一つでしかないと思っているので、そこを忘れずに開発に取り組んでいきたいですね。
―かっこいいですね!最後に聞きたいのですが、さっきから映っているその子はたぬきですか?
妹が飼ってる猫の癫癫(ディエンディエン)です。かわいいですけどかなりデブですね。