hironomiu's Blog

こそっと書いていきます。twitter_id:hironomiu

今年も振り返ってみる!!

このエントリーは、VOYAGE GROUPエンジニアblog Advent Calendarの12/23分です。

こんにちは。システム本部 三浦(@hironomiu)です。

VOYAGE GROUPのAdvent Calendarも今年で3年目ですね。 去年一昨年と引き続き今年も23日を担当となります!(このブログが完全にAdvent Calendar専用になってるのは内緒です!)去年末からシステム本部内でERDG(Engineer Resources Department Group)と言うグループを立ち上げ担当職責もDBAから技術者育成責任者となり、より育成やエンジニアインターンにコミットする年となりました。

このエントリーでは三浦(@hironomiu)が今年1年で携わったエンジニアインターン、社内育成&勉強会などについて関わったクルーも含め時系列で紹介しVOYAGE GROUPの雰囲気や学びに対する取組みについて少しでも伝えられたと思います。

書きたいことが沢山あり長くなってしまったので短的に言うと「充実した1年でした!」「来年は更に頑張る!」です。

エントリー中の引用はTechBlog、TwitterFacebookにて発信している内容から引用しました。日々情報発信していますのでウォッチして頂ければ幸いです!

スライドについてはコーポレートサイトに三浦分、他のクルーも含めたのスライドのまとめがありますのでそちらもご覧頂ければ幸いです!


1月〜4月 SQLアンチパターン勉強会

スライド資料

1月中旬から4月一杯に渡って週に1回のペースで全章を読み解いていく勉強会を2期開催しました。こちらについてTech BlogにSQLアンチパターンのススメとして記載しています。興味を持たれた方はこちらも合わせてご覧ください。

第3期の開催

2015年も1月から第3期を14エンジニア新卒を中心に11週を目処に開催する予定です。資料などをブラッシュアップしながら更に有意義な勉強会にしていきたいと思っています。

意欲的な新卒メンバーで3期も楽しみ!

f:id:hironomiu:20141223144527p:plain


2月〜8月 15エンジニア内定者サービス開発

制作物のVOYAGE Challenge

f:id:hironomiu:20141223144535p:plain

2月から8月まで15エンジニア内定者が任意でJOINしドメインSSL証明書なども取得しWebサービス開発について学んでいくプロジェクトです。フォローでゆうくん(@yuu_ito)にも手伝ってもらい進めていきました。この開発については2つの軸を念頭に進めていきました。1つ目は純粋にリーンスタートアップに倣ったWebサービス開発です。2つ目は夏のエンジニアインターンTreasureに向けた準備です。エンジニア内定者はTreasureのTAを任意で参加出来ます。その際に必要なスキルセットをこの開発では身につけていきます。

リーンスタートアップ

VOYAGE GROUPでは「価値」と言う言葉を大事にしています。そこからリーンスタートアップの考え方は共感出来る部分が多くTreasureでは随所にエッセンスを取り入れています。そのため事前にリーンスタートアップに倣った仮説検証のフィードバックループを行いMVPの作成、更なるプロダクトへの昇華と言う手法をここでは進めていきます。

リモート開発

リーンキャンバスで言う「ターゲット」「課題」について仮説、検証を行いMVPに差し掛かろうとしたところで続々とエンジニア内定者がJOINしてきました。エンジニア内定者は住んでる地域も様々でかつ活動出来る時間帯も学業やプライベートな活動などとの兼ね合いもありリモート開発をベースとしたチーム開発の最適化を進めていきました。

GitHub

リモート開発を行う上でGitHub、Slackをフル活用しました。開発サイクルは各内定者が実装単位でissueを作成し対応したbranchを切りpull requestからdevにmerge、最終的にmasterに取り込むと言う流れで行います。開発中に必要となるコミュニケーション手段やGitHubリポジトリ上の進行状況の可視化(apiを利用しpull request、issue、コメントなどを通知)としてSlackを利用しました。ストックしたい情報は全てGitHubリポジトリWikiに集約していきます。

リモート開発コミュニケーションの救世主Slack

ちょっと大袈裟ですが当初は流れる情報の共有手段としてSkypeを利用していました。Slackの優位性について深くはここでは触れませんがロケーションの違う内定者達から一番大きな課題として出ていたのが「周りが何をしているのかが分からない」でした。Skypeに限界を感じていた中Slackに移行したことで上でも触れましたがapiを利用しGitHubのpull request、issue、コメントなどをチャット上に通知出来きることで開発の状況が可視化できメンションを使ってやりとりするなどで情報が埋もれず情報を発信する程好循環となる仕組みの土台が出来てきました。

ハブとなる大変さ

今年の開発は最終的に内定者8人が参加しました。開発が好調になるにつれGitHubのpull requestベースの開発サイクル、Wikiによるストック情報の集約、Slackによる開発状況の可視化だけでは賄えない部分が見えてきました。顕著に現れたのが三浦がハブになり各内定者間の細かい認識の擦り合わせの重要度が高まってきたことです。空いている時間も8人が程よくバラバラなため同じタイミングで現状を共有する事が出来ないことで内定者間の状況の認識のズレからコミュニケーションロスによる開発の停滞が顕著になることもありました。リモート開発を主体にすることの大変さは覚悟はしていましたが、各内定者毎の共有タイミングで認識の擦り合わせはどんなに二度手間になろうとも全員に同じ内容を都度都度丁寧に共有し、その繰り返しのサイクルを短くしないと開発が停滞すると確信する反面、繰り返しのサイクルを短くすることはハブの役割の負担が飛躍的に膨らむジレンマで苦心したことは今でも強く覚えています。

リリースを終えて

閉じたissueの数281、閉じたpull requestの数もほぼ同数の279と開発の内容をこの手の数字だけで語るのはナンセンスかもしれまんせが頑張って開発をやりきった15エンジニア内定者には拍手を送りたいです!


7月 京都1Dayインターン開催(GitHub編)

インターン後のソースコードレビュー風景(FaceBookより)

京都1Dayインターン

7月に15エンジニア内定者サービス開発でも実践しているGitHubの開発サイクル(issue -> branch -> 開発 -> pull request -> merge)にフォーカスを当ててGitHub入門編として京都で1Dayインターンを開催しました。ただGitHubの開発サイクルを説明しただけではHowを伝えるだけとなります。なぜGitHubの開発サイクルを使うのかWhyの部分について実際にGitHubの開発サイクル上でJavaScriptの簡単なアプリをテーマに開発を実践し体験しながらWhyの部分まで学んでいきます。

関西初インターン

Treasure、Sunriseと関東だけではなく地方の学生さんとも接する機会が多数あるのですが実際に京都でインターンを開催してみて予想以上に関西にはWeb好きなエンジニア志望の学生さんが多いことに驚かされました。


9月 Treasure2014開催

全体集合写真(TechBlog後半より)

9月頭からVOYAGE GROUP夏の風物詩となりましたエンジニアインターンTreasure2014が開催されました。実は2012から肩書きの上ではメイン講師と言う立場で携わっています。毎年早いタイミングからCTO小賀さん(@makoga)、人事のHさん(@339)とTreasureのコンセプト、想いなど様々な観点を詰めいくのですが、その中で今年はメイン講師としてTreasureはどうあるべきか?をより強く意識することが多かったインターンでした。

3週間ぶっ通しで全力で学ぶインターンの価値

夏のインターンは同業他社さんに限らず理系学生向けのインターンが沢山あります。その中でTreasureは3週間と言う比較的長いインターンです。学生さんが夏の貴重な時間を使ってTreasureに期待して参加した期待値以上の価値をどう造り上げて行くか難易度の高いテーマですがやりがいのあるテーマでした。Treasureで掲げている圧倒的成長を体現出来るインターンであるために講師、サポータ、Treasure生の全員が絡み合って造り上げる血が通った生き物になるように自分なりにどう働き掛ける事が出来るか特に意識しました。

こちらについてTech Blogに圧倒的な成長を目指す「Treasure2014」(前編)圧倒的な成長を目指す「Treasure2014」(後編)として記載しています。興味を持たれた方はこちらや講師のえびちゃん(@co3k)のエントリーWeb セキュリティに関するインターンで伝えようとしたことも是非ご覧ください。

Thanks

改めて講師、サポータ、人事、TA内定者の皆さん本当にお疲れさまでした!


9月 勉強会をテーマに社外で登壇

スライド資料

VOYAGE GROUPの成長する勉強会カルチャー

ご縁があって社外で勉強会をテーマにVOYAGE GROUPの成長し続ける勉強会カルチャーと言うお題で登壇させて頂く機会がありました。1クルーが社内の勉強会やカルチャーなどを胸を張って社外に発信出来る状況は健康的だなと思いました。

余談

このエントリーでは三浦が関わった勉強会などをあげていますが社内ではSICP勉強会を2年継続したり良書や気になる論文について気軽に勉強会が開かれたりと三浦以上に勉強会カルチャーを牽引するクルーが多数おり学びの多い職場だと思います。


10月 京都1Dayインターン開催(セキュリティ編)

講義風景(VOYAGE GROUP Facebookより)

セキュリティ編のインターンは進行サポートとして京都へ赴きました。内容に関しては前述していますが講師のえびちゃん(@co3k)のエントリーWeb セキュリティに関するインターンで伝えようとしたことにある通りスペシャリストならではの講義で三浦も勉強になるほどでした!事前に講義内容を詰めてる際に見えてきた課題としてこの素晴らしい内容を1Dayと言う限られた時間で手を動かす時間を取りながらどれだけ盛り込めるかが浮かんできました。その部分に関して実際に手を動かして確認の協力をしてくれた15エンジニア内定者のせんちゃん(@1000_ch)&わっさん(@YOwatari)の時間計測などの事前確認のおかげで完成度の高いインターンとなりました!ありがとう!


11月 Sunrise2014開催

全体集合写真(TechBlogより)

11月中旬からVOYAGE GROUP冬のエンジニアインターンSunrise2014が開催されました。初年度の2011から1から作ってきたこともありTreasureとはまた違った思い入れのあるインターンです。TreasureがWebサービスアプリ開発に比重を置いているのとは対照的にSunriseでは大規模Webサービスインフラにフォーカスを当てており、期間に関しても3週間から土日2回開催の4日間と限られています。限られた期間で出来る限り大規模WebサービスのDBを中心としたインフラ設計についての気付きを伝えられるよう全体のストーリーを練っていきます。

チューニングバトル

期間は土日2回開催と触れましたが間の平日5日間で何か出来ないかと考えた末にチューニングバトルと言う案が去年浮かびました。こちらの用意したクラウド上に構築したLAMP環境、PHP+Silexのサンプルアプリに対し負荷ツール(siege)で時間あたりの実行回数で競います。今年も同様の案を採用しブラッシュアップしたチューニング課題を提示してみたところ及第点として

  • RDBの領域で適切なインデックスを作成すること。
  • リバースプロキシの領域で静的コンテンツとして判断して良いと思われるエンドポイントについてはキャッシュすること。

を想定していたのですが

  • Apache + PHPからNginx + HHVM
  • PHPフレームワークSilexからSlim(サンプルソースも適切な書き換え)
  • MySQLからMongDB(データも完全に移行)
  • ulimit、I/Oスケジューラなどカーネルパラメータのチューニング
  • varnishのDSLにてキャッシュ対象、間隔の細かいチューニング
  • チューニングに特化した不要デーモンの停止

と想定以上の回答が多数現れエンジニア志望学生のスキルレベルの向上は年を追うごとに凄いものがあると痛感させられたと同時に三浦もウカウカしてられないととても良い刺激を受けました。

こちらについてTech Blogに100万人が使うWebサービスを創造せよ!!大規模サービス構築プログラム「Sunrise2014」として記載しています。興味を持たれた方はこちらも是非ご覧ください。

Thanks

改めて講師、サポータ、人事の皆さん本当にお疲れさまでした!


11月〜現在 15エンジニア内定者育成支援

会議室でのTDD勉強会の風景(tech_voyagetweetより)

TDD風景 TDD風景

図書スペースOASISで1DayTDD勉強会の風景(tech_voyagetweetより)

1DayTDD勉強会風景

11月からは15エンジニア内定者向けの育成支援プロジェクトが開始しました。三浦に加え4人のクルー(西郡さん(@_nishigori)、駒崎さん、さやちゃん(@sayadroid)、じゅえる(@jewel_x12))をメンターに迎え2015年3月までバックアップしていきます。進め方は全体のテーマを決め各自のペースでGitHubにてpull requestベースによるレビューで行います。こちらも「15エンジニア内定者サービス開発」と同様にリモートによる学習が基本となるため、pull requestのコミュニケーションを補完する形でSlackの利用や毎週水曜、午前と午後に各1時間を使って参加可能な内定者はpull requestの内容をSkypeによる音声チャット、出社出来る内定者は顔をつき合わせてより理解度を高めていきます。11月、12月のテーマはTDDで行いました。 又、隔月ぐらいのペースを目標にVOYAGE GROUPに集まり1Dayでワークショップの開催なども行います。

育成支援のあり方

入社が近づき卒論などの学業も忙しい中で新卒からグイグイ活躍したい、伸びたいと思っている姿勢に少しでも後押しが出来ればと考えています。入社後にVOYAGE GROUPの目指している方向性にフィットしながら各内定者自身が納得の行く活躍をするための助走期間として学び伸びていく環境作りの第一歩をサポータと共に作っていければと思っています。


終わりに

他にも14エンジニア新卒研修や社外向け#ajiting、勤続5年休暇などなどまだまだ書ききれなかったことが沢山ありますが今回はここまでにしたいと思います。関わったクルーの皆さんには改めて色々刺激を受けながら、助けられたなと思っています。冒頭に述べましたが来年もより一層頑張っていきたいと思います!

最終日の明日は15エンジニア内定者育成支援でサポータをして頂いている、じゅえる(@jewel_x12)からのエントリーです。最終日にふさわしい素晴らしいエントリーを期待しましょう!!それでは良いクリスマスを!!