見出し画像

自社サービス開発のエンジニアって裁量権多いってほんと?何やってんの?証拠は?

蒼き海の伝説ガチャで2万円分引いて爆死した漫喫です。

中途採用の面接で受託開発をやっている方から「エンジニアの裁量権が低く、自社サービスを開発している会社を探している」という話を良く聞きます。僕もREALITYの開発の前はXRの受託開発を仕事にしていたので大変良くわかるのですが、受託開発において一番大事なのは納期を守ることであり、自分がどう作りたいかは二の次になりがちです。

画像6

事前に「エンジニア 裁量権」でググって調べましたが、「うちの会社は裁量権があるのが魅力です!」みたいなエンジニアのインタビュー記事が多かったです。
なるほど。。。確かに裁量権を感じるかどうかは主観によるものなので「うちも裁量権ありますよ!まじで!」という感想で終わりでも良いのかもしれませんが、一応エンジニアマネージャーである僕が「ありますよ!」って書いても嘘くさいので、主観ではなく具体的にやっている取り組みを4つ紹介したいと思います!

なぜ裁量権が必要なのか

もう少しだけ前書きを書かせてください。。。
そもそもなぜエンジニアに裁量権が必要なのでしょうか。

「中長期でサービスを進化させるため」というのが僕の今の意見です。

REALITYは一見するとVTuberの配信プラットフォームのように見えがちですが、会社のビジョンである「なりたい自分で生きていく」を実現するために今後もめちゃくちゃ進化する必要があるし、そのポテンシャルを持ったサービスです。

エンジニアの方なら想像できるかと思うのですが、あるプロダクトをバンバン変化させると大量の負の遺産や、雑なコードが増えますよね?
それをヤバいと思っているのはエンジニアだけで、非エンジニアにそれを伝えても「まぁわかるけど作ってよ!」みたいなことになりがち。。。
それを積み重ねるとどんどんと開発効率やアプリの品質は下がっていくわけですが、エンジニアに裁量権があればそれを防ぐことができると思っています。

画像5

別の理由として「エンジニアに好き勝手やらせて辞めさせないため」みたいな意見もあるかと思います。実際過去に、某開発会社の社長と話してたときに「うちがVR開発やってるのはエンジニアのガス抜きのためだね!!」と言っていたんですが、潔いですよね。。。
REALITYではそういう理由ではなく実利的な会社の成長のために裁量権が必要だと考えています。

前書きが長くなってすみません。
そろそろ何を取り組んでいるか紹介したいと思います!
以下の4つの取組みはすべてエンジニア主導で行ったことです。

1. 終わりなき挑戦プロジェクト

エンジニア全員がサービスの根深い課題に対して2週間挑むプロジェクトです。詳細は別の記事に書いたのでそちらもぜひ。僕もエンジニアとして参加しましたが、みんなで同じ課題について取り組むのが文化祭っぽくて楽しかったです。成果もめちゃくちゃ素晴らしかったです。

画像1

2. SREチーム

SREってなんやねん、って話すると長くなるので省略します。
SREチームという名前で、エンジニアだけの独立したチームを作り「サービスの信頼性(安定性)を上げるためにはどうしたらいいのか?」というお題についてチームで考えて半年間行動してもらいました。

曖昧なお題を丸投げしたのでどうなるかドキドキしてましたが、実際にやったことはアプリのクラッシュ率やサーバーのLatency/Success Lateを可視化(ダッシュボードの作成)して、目標を達成するように取り組みました。目標を達成したことも素晴らしいのですが、ダッシュボードで安定性を定義してそれをチームで守るための文化ができたのがすごく良かったです。
SREチームの取り組みは半年前に終わったのですが、今でも「クラッシュ率が上がっている!直さなきゃ!」というコミュニケーションが日頃から行われており、REALITYの安定性を保つための大事な取り組みでした。

画像2

3. 品質改善プロジェクト

「REALITYの品質を上げるために我々は何をしたらいいのか...?」をエンジニア全員で真剣に話し合い、優先度の高い課題からプロジェクト化して解消する取り組みをしました。各プロジェクトのリーダーには比較的若手のエンジニアをアサインして、各リーダーが課題に対してどう技術的に解決するのか検討/提案し、開発着手後もスケジュール管理などの開発外の仕事もお任せしました。

↓の神アプデもこのプロジェクトの一つです。

このプロジェクトに関する記事も2つ貼っときます。

4. 改善Week

2ヶ月に1回ですが、開発効率向上のための改善やリファクタリングなどエンジニアがやりたいことをやる週を設けてます。やる内容は個人によってバラバラで、CI/CD周りを改善したりbotの新機能を開発したり。直近で面白かったのはWebAPIにProtocol buffersを導入してみるというのをサーバー/クライアントエンジニアが連携してやっていました。結果的には完全導入するという話にはならなかったのですが、実際に手を動かしてみないと見えてこないメリットやデメリットが反省会で議論できたのはとても大きな成果でした。

画像6

番外編: Issueクエスト

REALITYでは開発作業のほぼ全てをGitHubのIssueで管理しています。
2021年1月から6ヶ月間で、REALITYでは1153件のIssueがOpenされ、1066件のIssueがCloseされました。日々のIssue消化を少しでも楽しく行えるようにREALITYでは「Issueクエスト」というシステム(?)を導入しています。

毎日昼の12時になると前日にCloseしたIssueに対して、アイテムと経験値が付与され通知がSlackで飛びます。Issueクエストのレベルが上がるとエンジニアとしてのレベルも上がる、、、というわけでは必ずしもありませんが、1つ1つの小さな改善に対して何か積み上がっているように感じてほしくて作ったシステムです。

画像3

さいごに

REALITYではエンジニアが裁量権を持ちつつ、楽しみながら成長できる環境をこれからも作っていきますので、興味のある方はまずはWantedlyからカジュアル面談を希望してくれると嬉しいです!!