エンジニアに想うこと

[CYBIRD Advent Calendar](http://qiita.com/advent-calendar/2014/cybird) 1日目担当の島村友造です。

CYBIRDには2010年11月入社で丸4年が経過しました。思ったより長い。
現在、ゲーム事業本部プロデュース統括部でエグゼクティブプロデューサーやってます。
冠から既にエンジニアじゃない感が漂い、初日でこれだと後に続く生粋のエンジニア達のエントリーに影響が出そうで怖いのですが、とりあえず書いてみる。

## エンジニアに想うこと
さてさて私にはCYBIRDを日本一のテクニカルカンパニーにしたいという野望があります。
本当は世界一でも良いのですが、ひとまず日本一です。
CYBIRDを良く知る方は鼻で笑うかもですがいいのです。野望なので。
ナニを持って日本一かという話しですが自己判断で、いざとなれば「今、日本一！」て思えばそれで終りです。

とりあえず本質がどうかは別として社内エンジニアから聞こえてくる声について、
 
* エンジニアの数が割合的に少なくエンジニアの地位が…… という声が一部ある。
* 主力言語が[PHP](http://dekokun.github.io/posts/2014-10-14.html)だけとか。
 * 言語のスキルチェンジは大したコストでないので小さな問題かと。
 * 部門と人によってはPythonやRuby、Rなんかも使ってるし。インフラも様々のものを。適材適所。
* [CTOがいない](http://blog.livedoor.jp/kensuu/archives/54880276.html)とか。
* ネイティブアプリの開発力はもっと上げるべき。（大賛成！！！）

CYBIRD特有の内容ではないと思いますが、まぁ一つ一つですね。

当面はエンジニア達が活き活きと楽しんで意義を感じてもらえる会社にするために、上記も含み走り回りたいと思う。

また立場上、それぞれのエンジニアのキャリアプランを考えることがある。
といってもスペシャリスト目指すかマネージャーか、の２択みたいになってしまう。
もっと別の選択肢を提供できるのならしたいですがなんとかならんものかと。
最終的には自分で決めることなんですが、ヒントになることぐらいはと心掛けて話しています。

## 回顧
で、技術的な話しはないのかってことになりますが、正直ここ3-4年はまともにコード書いていなく。
技術ネタ書くにも実感値が少なく納得いくものが書けません。

では、なにをしていたのかというと、主にマネージメントと環境改善とかとか。

### マネージメント
マネージメントに関しては担当コンテンツの拡大に伴い、管理する人数が大きくなっただけなので簡単に記す。
（全社的にエンジニアも少し見てますが。）

* 2011年 4月の時点 社員0人 業務委託4人  
　→ 2014年11月の時点 社員17人 業務委託50人ちょい

### 環境周り
自分が入社した時点での私の知っているCYBIRDのエンジニア/開発環境は思い出してみる。
（違う点もあると思いますが当時の見える範囲です）

 * 自社のデータセンターのみ
 * OSは CentOS (32bitのみ)
 * WEBサーバは Apache1.3 （すぐに2.2もOKになった）
 * DBは PostgreSQL、Sybase、Oracle
 * PHP4
 * ほぼCVS 少しSVN
 * オリジナルのガラケー用Apacheモジュール（これはこれで素晴らしかった！）

ここがダメ、これがダメだよ的なこと

 * PHP5 というかオブジェクト指向禁止 = フレームワークだめ
 * MySQLだめ
 * 22, 80, 443ポート以外は社内ネットワークもNG
  * 申請すれば用途次第でOK。ただしfrom-toのIPアドレス固定。anyも基本NG。
  * PortForwarder大活躍
 * 影舞
 * mod_proxy NG
 * memcachedはもちろんKVS系サポート外
 * Chatツール NG
 * サーバ（仮想含む）調達の困難
  * お試しサーバ貰えない。フローがめんどう。申請しても遅い。スケールアップ不可。クローニングが1日最大3件 etc...）

なので簡単にTracやJenkinsも立てられなく、なんとかJenkins立てても、DCのCVSに繋げられなくて絶望したり。
セキュリティを考慮してなのは理解していますよ（これ重要）

最初の半年は本当につらかった。
途中から割り切って仕事に集中したけどSCPで本番に手動であげるのが本当に嫌だった。
しかも同じ内容の3キャリア別々のファイルをあげるのが。
CVSとテストと本番のソースが同期が取られていなくて気持ち悪かった。

あと「アジャイル」とか「スクラム」って言葉つかうと「その言葉使いたいだけと違うんかい」って空気になるので言葉を変えて表現することが多かった。

## やってきたこと、できたこと
入社して半年後、運がいいことに新しく担当したソーシャルゲームがそこそこヒットした。
でも一人で運用してて物理&仮想サーバ合わせて400台ぐらい見てた時は泣けたし、
社内のサポートが全くないわけじゃないけど、一歩引かれた感じでやっぱり辛かった。
クラウドの移行直後なんて、インフラと監視まで一人だった。

ただ、ヒットのおかげで予算も潤沢になったのでやりたいことできるようになった。

* サーバをクラウドに移行して楽々スケールアウト&アップ
* phpフレームワークのfuelPHPとMySQLをゴリ押しで導入。
* Jenkins導入 deployのみだけど。
* Redmineの本格導入。
* ChatworkとGitHubも全社導入させて予算を確保

２年経過するぐらいから仲間が増えていろいろチャレンジしてくれてました。

* AWS - Redshift、RDS、ElasticBeanstalk、etc...
* Zabbix
* Chef
* NewRelic
* MONyog
* fluentd
* ElasticSearch/Kibana
* GlusterFS
* LVS
* Serf
* Grunt、Backboon.js+Marionette.js、Scss
* Hadoop Hiv/Impala
* etc...

などなど次々と提案、検証、導入してくれて、世間に追いつくことができたのではないかと感じる。
私の見えない所でもっといろいろやっていると思いますが。

メンバー達もAWSにおいてZabbixとChefを利用してSpotInstanceを利用したAutoScaleを提案実現、結果[AWSSummit2014](http://www.slideshare.net/megadreams14/aws-summit-tokyo-2014-tc09)に呼ばれて登壇させることもできた。

セキュリティ関連ではいろいろ穴があって反省すべき点は多かったけど、CYBIRDの技術の進歩を何段か早く進められた/進めてもらったとは思えている。

いくつかのカンファレンスへのスポンサード([PHP](http://phpcon.php.gr.jp/w/2014/#sponsor)、HTML5 [2012](http://events.html5j.org/conference/2012/09/) [2013](http://events.html5j.org/conference/2013/11/)、[Scrum](http://scrumgatheringtokyo.org/2013/))も仕掛けられたし。

他にも社内LT大会を継続して開催してくれたり、分析チームのアナリストがEMRをグリグリ回してくれてたり、と私が関与していない/薄いところも進化していて本当によい状態になったなと思う。

ネイティブアプリははっきり言ってが弱いですが着実に進歩しつつあるし、大いに期待してるし盛り上げていくつもりです。

## これから
現場のエンジニア達には限界を作らずもっとチャレンジして欲しいと思う。
私がやってきたことは私だからできたことでなく、どんな会社でもどんな年次（1年目でも）の社員でもできることをわかって欲しい。ぜんぜん特別なことでない。
上司へ相談して、ちゃんとした提案をしてきただけ。

とはいえ、この数年でCYBIRDに入社してきた若者達の技術力や行動力にはびっくりすることも多い。世の若手はみんなあんな感じなのだろうか。
ある程度は自発的に動いてくれるし、社外のHackthonやセミナーで話してくるし、非常に賢い。
CYBIRDにおいては @dekokun が先頭にたって [いろ](http://dekokun.github.io/posts/2014-09-07.html) [いろ](http://dekokun.github.io/posts/2014-11-08.html) してくれているから改めて言う必要もないのかも知れないが。

今後も先輩達が築き上げてきたオープンソースコミュニティや勉強会、ブログなどから学び、得たものを、成果をフィードバックしてIT業界に寄与してもらいたい。
それが自分自身の為にもなるのでこれは切に願います。

あ、会社にいる以上はきちんと事業に、サービスとユーザの為にその技術を使うこと期待します。
実践してナンボってこともあるしね！

## 最後に
本当は私自身もっと手も動かしたいのですが、現場や会社にはそこはもう期待されていない節があるので老兵はそっと死ぬとして、プライベートで活動しているhtml5jのスタッフ活動をしたいと思うのでした。

あ、そうそう、**2015/1/25に[HTML5 conference](http://events.html5j.org/conference/2015/1/)をやるのでみんな来てね！！**

明日は二日目の[加島さん](http://qiita.com/advent-calendar/2014/cybird) です。