はじめに
私が所属する株式会社キッズスターのエンジニアチームでは、隔週くらいのペースで「開発合宿」なる勉強会を開催しています。
今のところ内輪での開催で、社員と業務委託のパートナーさんとで開催しているイベントなのですが、今日はそのコトについて綴ります。
なにやるの?
主に Unity に関する技術的なトピックについて、みっちり3時間とか*1掛けて勉強します。宿泊するわけではありません。
きっかけ
元々週一回開催しているエンジニアチームの定例ミーティング内で「Unity に関する技術的な話」や「Docker の概要について」など、トピックを絞った簡易勉強会的なモノを突発開催したりしていました。
ただ、最近は業務委託のパートナーさんも増えてきて、パートナーさんは開発定例に出ないこともあるので、「勿体ないよね…。」「いっそ、しっかり時間取って開催しよう!」という流れになったのが経緯です。
どんな流れ?
普段の流れとしては、以下のような感じです。
- エンジニアチーム定例ミーティングで「これやりたいよね」というトピックを決定
- 会場を押さえる
- id:lycoris102 が会場選びや予約をやってくれています。ありがとう!!!
- 開催を Slack とかで連絡する
- 会場に集まる
- 私がモブプログラミングする
もうちょい詳しく
扱うトピックとしては、株式会社キッズスターのプロダクト開発で用いる技術について取り扱うことを前提にしています。*2
例えば、以下のようなモノが挙げられます。
- Clean Architecture の考え方を共有
- UniRx についてちょっと詳しく解説
- umm についてちょっと解説
- 既存のプロダクトのコードをリファクタリング
- 冒頭の写真はその回の写真です。
- 私含めて7人のオッサンがマンションの一室で同じ方向向いて座っています。
これらのネタを、時にはコードを読みながら、時にはコードを書きながら、時にはホワイトボードに図を書きながら、延々語ります。
また、語っている最中も参加メンバーから「え?これってどういうこと?」「今の操作どうやったの?」「こういう考え方もあると思うんだけど。」とざっくばらんに発言が飛び交う感じに盛り上がっています。
で、どうよ?
私は前で喋る側なので、開催の成果を直接的に感じることはできませんが、チーム技術力の向上には寄与できているんだろうなぁと思っています。
が、メイントピックを喋っている中で「あ、そいえば、こんな機能があってね…?」みたいな枝葉の話をすると、「うおー!知らなかった!すげー便利じゃん!」みたいな流れになるコトがあるので、そういった点でも開催の意義はあるんだろうなぁとか感じています。
逆に喋る側の立場として見ると、事前調査をしたり喋る前や喋っている最中にコードを深く読むことになるので、「知っているつもりで知らなかったこと」や「キャッチアップできていなかった新機能」などの学びがあるので、とても有意義なモノだと考えています。
未来のおはなし
この先取り扱うテーマとしては、個人的に以下のようなモノをやりたいと思っています。
- umm について深掘り
- Clean Architecture についてもっと研究
- テスト
- Edit Mode, Play Mode
- Testing Framework
- Zenject
- 採用したいと思っているので
- Unity の新機能
- Timeline を深掘り
- ECS: Entity Component System
- Assembly Definition
- PlayerLoop
- シェーダ*3
- エディタ拡張
- AssetBundle
- 実機ビルド
- Xcode 関連
- Jenkins おじさん
また、年内は厳しいと思いますが、将来的にはもうちょい規模を拡げるのもアリかなぁ?とか妄想しています。あくまで個人的な妄想です。
まとめ
「社内勉強会楽しいよ!」っておはなしでした。
「Clean Architecture とか興味あるんですけど!」「umm って何…!?」って人は Twitter とか Facebook とか口頭とか何でも良いのでお声かけください〜!
あ、それと、2018年4月現在、株式会社キッズスターでは、一緒に「なりきり!!ごっこランド」のパビリオン*4をつくるデザイナーさん・アニメーターさん・プロデューサーさんを募集しております!興味ある方は Wantedly からでも私個人でも良いのでご連絡くださいませ!