おはこんばんちわ、カブクの足立です。
前回から約半年、第3回目となるカブクエンジニア開発合宿に行ってきましたので、そのレポートをお送りいたします。
初回、第二回のアンケートのフィードバックを取り入れての第3回目の開催です。
改善点1: 開発時間を拡大
開発時間がちょっと短いというアンケート結果から以下の2点で改善しました
1. 現地11時集合
2. お弁当の導入
今までの現地は最寄り駅でしたが、今回から現地をホテルの玄関としました。
これにより、11時過ぎからガッツリ開発を開始できます。
集合が11時になったので、お昼ごはんをどうするかが問題になるので、事前にお弁当を発注して対応しました。
また、翌日の12時から成果報告会を開催する予定でしたので、見ている側はお弁当を食べながらとすることで、時間を節約し、開発時間を拡大しました。
いつもお世話になっている「おんやど恵」さんは、こういったお弁当など柔軟に対応してくださり凄く助かります。
改善点2: テーマに自由度が足りない
開発テーマとして「自分の成果にコミットする」を第1回と2回つづけて行ってきました。
というのも、カブクのエンジニアは完全成果主義です。
成果によってのみ評価されますので、合宿でその成果の達成率を上げてましょうという狙いでした。
そうすると、短期的(カブクの成果評価は3ヶ月ごと)には良いのですが、6ヶ月やそれ以上の長い視点での開発や技術投資ができません。
そこで、今回のテーマを「ちょっと先の仕事に役に立つかもしれない何かにチャレンジする」としました。
テーマとルール
テーマは上述の通りで、ルールは今までと変わりなく、簡単に纏めると。。。
テーマ
ちょっと先の仕事に役に立つかもしれない何かにチャレンジする
※新しい技術を味見しましょう的な感じ
ルール
1: 就業時間を守る
ハッカソンみたく、夜中までガリガリやるのではなく、限られた時間で最大の成果を出すための会にしたい。参加者同士の懇親も大事にしたい。開発は18時半まで!残業無し!
2: 発表する
成果を必ず発表する。「できませんでした」も成果の一つととらえ、何にチャレンジしたのか、それがどうだったのか、何故うまくできなかった(できた)のかなどを発表してもらいます。
資料を作る時間がもったいないので、実際に動いている画面やらを見せながら発表します。
3: 自由参加
自治と自由を重んじるカブクですので、参加も自由です。個人の裁量によって参加してもらっています。
場所
神奈川県湯河原の「おんやど恵」です。
全3回、ずっと同じ場所です。開発環境、アクセス、ロケーション、柔軟性、ご飯、温泉、ホスピタリティもろもろ満足度高いです。
目新しさを求めて、別の宿を探すのですが、よい条件が整っているホテルが見つけられていません。
と書くと消去法的に聞こえますが、満足度の高いお宿なので、それと肩を並べるレベルの宿が見つけられていないのです。
スケジュール
今回の合宿のスケジュールはこんな感じ。
年々、スケジュールの項目が減ってきていますw
11月13日
10:50 / ホテルに集合(※勝手に来てください)
11:00 – 18:30 / オリエン、ランチ、開発
18:30 – 20:30 / 夕食
20:30 – / Free(懇親会&自由)
11月14日
08:00 – 08:30 / 朝食
09:00 – 12:00 / 開発
12:00 – 15:00 / ランチ、発表(聴講者はランチを食べなたら)
15:00 – / チェックアウト
今回は参加者9名で、発表時間が3時間!長い!
1人発表5分で質疑応答は5分(盛り上がったらこの限りではない)。
というスタイルで行ったのですが、質疑応答が盛り上がり、結局3時間まるまる使いました。
技術の話は楽しくてイイですね。
これがカブクの開発合宿の一番の醍醐味な気がします。
フォトレポート
集合場所をホテルにしても…
結局、同じ電車になることが多く、殆どの人がJR湯河原駅から一緒に歩いてホテルまで移動。
JR湯河原駅が改装され、きれいになっていました。温泉水(?)が流れ、旅行感UP。
ホテルに移動
4K動画撮りながら移動です。
JR湯河原駅からホテルまでは約2.2kmあり少し長いのですが、天気さえ良ければ川沿いを気持ちよく歩けるので、移動は自然と徒歩に。
ホテルに到着
俺はホテルに着いたぜッ!
まいどおなじみのアングルでも1枚。
開発スタート!
3回目ともなるとサクサクッとセットアップを完了し、各々、開発スタート。
ダラダラすること無く、切換え早いのは流石です!
参加者は事前に何に取り組むかを宣言しており、やることが明確になっているのも良いスイッチになっているかもしれません。
今回はお弁当支給なので、食べながら開発。
ゆっくり食べてから開発に取り組んでも良いのですが、食欲よりも開発欲が勝るのが開発者という生き物。
一日目終了
恒例の部屋割りアミダクジです。
今回は2部屋をお借りしたので、どちらの部屋になるかを決めます。
夕食です
懇親会も合宿の目的の1つ。
美味しいご飯とお酒でワイワイ楽しみます。
※写真からワイワイ感が漂ってきませんがwww
もちろん4K撮影も忘れません。
夕食後は温泉に入ったり、部屋で雑談。
Day2
2日目、みんなで朝食からスタートです。
4K撮影も忘れずに!
最後の追い込み
朝食後9時から12時までの3時間。
最後の追い込みです。
ひたすら、集中です。
殆ど会話はありません。
モクモクモクモク。
発表順を決める
発表順もやっぱりアミダクジで決めます。
なぜアミダにそこまで拘るのか?
知りません!
発表
いよいよ発表です。
発表5分、質疑応答5分で一人10分です。
ただし、今回はご飯(お弁当)を食べながらというスタイルなので、12時から15時まで3時間もあります。
議論がはずめば、質疑応答の時間は制限しないことにしました。
宣言どおり、発表資料無しで、デモとトークだけの発表なのですが、資料があったほうが説明しやすい人は資料を準備していました。
YOLO v2を試してみた
業務ではYOLOより良いとされるSSD(Single Shot multibox Detector)で物体検知をしていたけど、YOLO v2も良いらしいってことで、評価のため試してみた。
Polymer v3とかlit-html
Webフロント界隈はアプリ化に向けてフレームワーク戦争が激化していますが。Polymerもにぎやかになってきたので、実際に手を動かして理解を進めてみたり。
FCMでWeb Push
もともと実装したかった通知機能をこの合宿の間にFirebase Cloud Messagingを使ってWeb Pushでおおかた実装して機能を完成させちゃったり。
Spinnakerをつかってみた
会社ではGKEを主としてk8s/dockerなどを使っているので、GUIでサクサク管理できたらステキやんってことでSpinnakerを試してみたら、設定面倒くさいやん、設定のimport機能はよ、とか分かったり。
TensorFlowのモデル最適化と量子化
※Kenichi Takahashi撮影
量子化とか言ってみたいだけやん。
※4K動画撮影はこの途中で終了。SDカードの容量(128GB!)オーバー。4K/60fps恐るべし!
※発表が一番重要なのにw
※っていうか何故4K撮影してるの?w
ng-annotateの開発
AngularJSのminify対策でannotationを良い感じに変換するツールを作ってみたり。
2Dから3D変換
ベクターなんだけど意味的に纏まっていない2Dを3D化できるか検証してみたり。
意味付けからとか地獄なんですけどね…w
CMSをマークダウン対応に
会社ブログ(たとえばこの記事)とかは、独自開発のCMSなのですが、これをマークダウンに対応させるために、裏側のデータ構造やらソースコードをリファクタリングしつつ新規作成したりってことを全部1人でやっちゃったり。
新データ構造で3Dモデルの構造解析
Half-Edge構造で3Dモデルを解析しているとGPU処理化が難しく、劇的な性能向上が出来ないので、
別構造を試して、GPUで並行処理出来るようにしてみたり。
いままで、試してみたいなぁと思っていたことを、この際に思い切って味見できました。
おわりに
3回目ともなると、マンネリ化してしまうかと思ったのですが、やっぱり集中して開発して、みんなでワイワイ議論できるのは、ただただ楽しいですね。
前回の課題であった開発時間も少し長く取れて、開発としての満足度は高かったように思います。
※アンケートではもっと!という意見もありましたが…(汗)
あと、テーマに自由度をもたせたので、ギリギリになるまでやることが固まらない人もいましたが、合宿までには個人のテーマを決め、当日は深く取り組めたのではないかと思いました。
改善点
今回の参加者アンケートから、次の改善点は次のような感じです。
※常に仕組みや規則をデバッグしながらより良い形にしていくのがカブクの文化
・二日目の開発時間(3時間)が少し短い
・発表時間が少し長い(質疑応答はMAXを決めたほうが良さそう)
・お弁当のクォリティに改善の余地あり
・それぞれの開発テクニックをモブプログラミング形式で共有できると良い
・ベストスピーカー賞などあっても良さそう
・クラタス作りたい
では、また半年後。