2年目エンジニアのなはなはなはです. 最近Meta Quest 3でのAR開発を始めて目が疲れています. この記事では1年間ラティスで働いて感じたことを書いてみます.
ちなみにトップの画像はMetaQuest3から見える景色をキャプチャしたものです.
目次
本来やろうとしてる仕事よりその準備や周辺のことが大変
冒頭で述べた通りAR開発を始めたのですが, 開発環境を整えるのにすごく時間がかかりました. とりあえずARに関する社内仕様書や使用するライブラリの公式リファレンスを読むことから始めました. 百戦錬磨のエンジニアなら初見のライブラリでもフルボッコできるのかもしれませんが, なはなはなははそもそもJavaScriptの知識が不足していたのもあり, ARの枠組みを理解するまでに時間がかかりました.
しかし本当に苦労したのはその後で, Meta Quest 3をPCからリモートデバッグできるよう開発環境を整えるのが大変でした. Meta社のマニュアルが情報不足だったこともあり, これは時間がかかりましたねぇ.
別にMeta社に限らずドキュメントってあまり丁寧に書かれてないことの方が多いんですよね. ラティスの社内文書にしても, 読んでみたもののいまいちよくわからないことの方が多いですから.
他人のコードを読むのはむずかしい
これは文法的・ロジック的に複雑で理解できないということではなくて, 処理の意図がつかめないという意味です. 特にコメントがないものですね. これは当時の実装者に聞かないと十中八九無理です.
以前担当した開発で, 修正した箇所の周辺に2~3行のシンプルな処理がありました. それは過去の実装者が記述したもので, 基本的な文法で書かれており処理内容は容易に理解できるのですが, どういう意図でこの処理が施されているのかさっぱりわからず困ったことがありました. コメントがなかったんですね.
配属されて半年ぐらいは「早く製品内部を理解するぞ!」と意気込み, 目を充血させながら読んでいたんですが, ひと月たってもふた月たっても理解できた!という実感がわかず, 「なんて自分は開発職に向いてないんだろう!」と思っていました.
もちろん一般的なプログラミングスキルや3Dの専門知識がつくのに伴い, 少しずつ理解できる範囲が広がっているのは事実ですが, 市井の製品というのは入門者がすぐに把握できるほどきれいにわかりやすく作られていないようです(単純にうちの製品の問題かもしれませんが). 今はもう半分諦めて, 5~6年かけてゆっくり理解を深めていければいいやと思っています(でないと精神的にきつい).
社内ミーティングの会話を理解できるようになってきた(ものによる)
社内ミーティングではいろんな前提知識すっ飛ばして話が始まりますから, 配属してしばらくは「何言ってんのこの人たち?www」って状態でした. 一年経つとなんやかんや大雑把には理解できるようになりますね. 所属するグループの開発者で毎日進捗ミーティングをしてるんですが, そこの内容はおおむねついていけるようになりました. グループ外のミーティングもときどきありますが, そちらはものによりますね.
特に開発者以外の話を理解できるようになりたいですね. 開発者は製品が現場でどのように使われているか直接見聞きするわけじゃないので, コンサルや営業職の方の話を聞いてそれらを知るんですが, 彼らの話が理解できないと何のために製品作ってるのかわからないまま開発してることになるので, 異なる職種の話を理解するのは大切ですね.
なはなはなはは素直で正直なところが取り柄なので, 思うがままに書いたら若干ネガティブな側面も露出してしまいました. まぁ就活してる人とかからすると, こういう裏表無いことのほうが知りたいですよね.
困難があることを認知した後はそれに対処する方法を身に着けることが大事なので, 自分なりにどう向き合っていくかも書くべきなんでしょうが, それはまた機会があれば書くことにして, 紙面の都合上今回はここまでとさせていただきます.