REALITYでチャレンジしてきたこと まとめ
ごあいさつ
REALITYでAndroidテックリードをしているメタルおじさんです。
わたくしごとで恐縮ですが、今年いっぱいでREALITYを退職することになりました。
2020年1月にREALITYの開発チームに参加してから約5年が経ちました。この間、数多くのことを経験し、様々な環境・立場・役割を通じて大きな学びを得ることができました。自分の社会人人生の中でも特に濃密で貴重な期間だったと思います。
REALITYはいろいろなチャレンジができる会社です!
そのことを皆さんにもお伝えしたいので、私がこれまでどのようなことに取り組んできたのかをご紹介したいと思います。
2020年 iOSエンジニアはじめました
私は2010年(Android 1.5の時代)にAndroidでプログラミングを始め、2013年(Android Kitkatの頃)からAndroidエンジニアとして働き始めました。それ以来ずっとAndroidエンジニアとして仕事を続けてきました。iOSについては、いつか機会があったら学んでみたいと思いつつ、なかなかきっかけがつかめない状態が続いていました。
そんな時にREALITYの開発チームに入ることになりました。当時REALITY内ではiOSエンジニアが若干不足気味になっており、マネージャーからも「iOSエンジニアやってみない?」と声をかけていただきました。せっかくの機会だということで、人生初のiOSエンジニアに挑戦することになりました。
とはいえ、iOSについてはなんもわからんという状態だったので、まずは基礎から学ばなければと思って入門書をいくつか読むところから始めました。開発環境を壊してしまうような失敗をしたこともありましたが、「致命的でない失敗なら大丈夫!チャレンジできてえらい!」と周囲の人達は優しくサポートしてくれました。
約1年かけてiOSのコードベースに集中してコントリビュートさせてもらい、AndroidとiOSの似ているところや違うところ、良いところ悪いところをいろいろと知ることができ、勉強になりました。
2021年 Androidエンジニアに戻る
1年が経過すると社内の状況も変化し、今度はAndroidエンジニアが不足気味となっていました。そこで、私の本来の専門分野であるAndroidエンジニアに戻ることになりました。
しかし、2017年から2020年までの約3年間はAndroidネイティブの開発から離れていたため、その期間に登場した数々の新しい技術について知識が不足していました。この間に登場したAndroidの技術(REALITYでも使用していたもの)は以下のようなものがありました。
ViewModel
LiveData
Retrofit
Moshi
Kotlin Coroutines
Koin
Navigation
Paging 2
(詳しくは当時の記事でも解説しています)
REALITYのAndroidチームは、モダンかつ広く採用されている技術を選択し、開発しやすい環境を整えていました。Androidエンジニアなら誰もが読んだことがあるであろうアプリアーキテクチャガイドを実際のプロダクト開発で実践できる良い環境でした。
これは必ずしもREALITY Android内の全てのコードがアプリアーキテクチャガイドに準拠しているという意味ではありません。むしろ、過去に様々な思いで書かれたコードを尊重しつつ、これらを壊さないように・他の機能開発を邪魔しないように・どのように適切な状態に移行するかを考え、実際にリファクタリングを実践していく経験をすることができたのが非常に貴重な学びだったと思います。
そして、REALITYのコードへの理解をさらに深めるために、ドキュメンテーションやリファクタリングを積極的に進めていきました。そんなことを続けていたら、Androidのテックリードを任されるようになりました。
2022年~2023年 エンジニアリングマネージャーに挑戦
REALITYのクライアントアプリのエンジニアは「Native Appチーム」として一つにまとめられていたのですが、チーム内の人数が増えてきたこともあって「Androidチーム」と「iOSチーム」の2つへ分割されることになりました。これをきっかけに、Androidテックリードだった私はAndroidチームのマネージャー兼テックリードになりました。
(その後しばらくして、テックリードは別のメンバーに引き継ぎ、マネジメントに専念することになりましたが)
今までずっと技術一筋でやってきた私にとって、部下のマネジメントをするという仕事は完全に未知の領域でした。メンバーとの1on1や目標設定がなかなかうまくできないこともありました。会社のマネージャー研修プログラムはありましたが、それだけでやっていくのは難しいと思い、いくつか本も読みました。
ちょうどマネージャーが増えてきた時期だったため、みんなでマネジメントについて勉強しようということになり、本を輪読したり議論したりする勉強会が始まりました。そこでは以下のような本を読みました。
勉強会ではみんなで議論することを通じて一人で本を読んでいるだけでは得られない気付きが得られたり、先輩マネージャーの経験談を聞けたりしました。とても学びのある時間でした。
その他、採用面接や人事評価などを実際に行うことで、本を読むだけではわからないマネージャーならではの経験と苦労を数多く積むことができました。
2024年 再びテックリードへ
その後、組織体制の変更やら、なんやかんやあって再びAndroidのテックリードに戻りました。Androidエンジニアが実装や設計方法について悩んでいたらサポートをしたり、当人は困っていないように見えても「この人はこの領域についての知識が足りない感じがするな…?」と思う場面があったらじっくり説明をする時間を取ったりしました。
それから、今までAndroidエンジニアとしてコードを書いてこなかった人に対してもAndroidにチャレンジしてみたいという人がいたらサポートするようになりました。一緒にペアプログラミングをしてみたり、Androidの入門者が読むべきドキュメントを案内したり、あがってきたPull Requestをレビューしたり…総じてREALITY Androidのコードにコントリビュートする人たちをサポートする役割に徹しました。
2022年にテックリードをやった時は、Androidエンジニアの数が少なく、私一人で周囲を牽引していくイメージで活動していました。それから2年経って、Androidエンジニアの数が増え、チームの技術力も向上しました。
そのため、テックリードとしての役割も変化しました。一人でなんでもやるというよりも、問題の性質・解決するのに必要な技術とメンバーの能力・直近の開発内容などを考慮し、チームで分担・協力して改善に取り組むための方針策定をするという動き方になりました。これもまた新しいチャレンジでした。
おわりに
今の時代、インターネットや書籍からいくらでも情報を得ることができます。単にたくさんの技術領域を学ぶということは、個人の努力次第でいくらでも可能だと思います。
しかし、組織の中でエンジニアリングマネージャーやテックリードといったチームリーダーの立場を任せてもらうというのは、個人の努力だけではなかなかできることではないと思います。そのような貴重な経験の機会をいただけたREALITYには、本当に感謝しています。
REALITYはいろいろなチャレンジができる会社です!
この記事を読んだ方に
「仕事を通じていろいろなチャレンジをしてみたい!」
と思っていただけたら何よりです。
そして、もしREALITYで働くことに興味を持っていただけたなら、
スカウトを待つフォームから送信していただくと、良いご縁に繋がるかもしれません。
長い記事になりましたが、ここまで読んでいただきありがとうございました。