退プロしました。

退職しましたエントリがあるのなら、退プロしましたエントリがあってもいいんじゃないか、ということで書いてみる。
プロジェクト在籍期間は1年半でした。

前提

4年間勤めた富山のSIerを2012/3に退職。
SIerでは3次請けやら4次請けやらのプロジェクトに、プログラマとしてアサインされることが多く、 Javaでのコーディングはできるけど、設計ナニソレ状態でした。

ジョブチェンジ&プロジェクトに参画

2012/4 にモンスター・ラボの社員に。
その日からこのプロジェクトに参画しました。
最初の説明としては、「FacebookみたいなSNSで、写真を投稿するサービス」ぐらいの説明で、なんとなく理解できてしまったのが、B2Bとは違うところだなーと感じました。
B2Bの案件で、「N社の債権債務システムみたいな感じで・・・」とか言われても、そのシステム見たこと無いしーってなりますし。

技術的なこと

4年間サーバサイドJavaオンリーで仕事してきたところへ、言語的には

のプロジェクトに入り、「Javaだとこのクラスを使えるけど、PHPのそれに対応したものはどれだー」状態で、
そこへきて、「Redis使って更新通知を作ってみて」・・・って、Redisってなんじゃー状態になりながら、
知らなかったことをたくさん吸収できたかとは思います。(成果も"それなり"には上げたと思ってます)

そして常駐へ

1,2ヶ月たった頃から、お客さんの方で内製化の機運が高まり、7月の中旬に客先常駐となることになりました。
自社からは自分含め3名で。
直後はまだ受託の契約で、口頭で「ここはこんな風にできません?」みたいなのに、どこまで対応してよいのやら、難しかったです。(そもそも時間がないから無理、ってことも多かったですが。。。)
で、8月の後半リリースに向け、十数名の体制になり、楽ができるかと思いきや、質問やら修正依頼やらが自分に集中してしまい、当時は自分でもよくやってたと思います。(被害妄想?+自画自賛。。。

ちなみに、常駐前は週休1日制でしたが、週休2日制にグレードアップしました。

リリース、そして最後の一人

無事リリースを終えたものの、
バグだーと言われれば直し、
機能追加だーと言われれば追加し、
認証基盤様からの要求じゃーと言われればそれを実装し、
キャンペーンを始めるぞーと言われればそのページやら仕組みやらを実装しました。
そうこうしている間に、自社から行っていた人は、退職やら、別プロジェクトへ異動やらで、一人になりました。
それから1年ぐらいは、自社に帰るのは月1回、自社の人たちに会うのもそのタイミングぐらいって日々でした。
自分はどこの社員なんだろう・・・?って思うこともありましたが、前の会社でも似たような事があったので慣れてました。

人の入れ替わり、受託時代の負の遺産

月日が経つと、それぞれの事情によりプロジェクトを異動だったり、契約が終わったりで、人が抜けて行きました。
ただ、会社としても期待されていたプロジェクトらしく、抜けた分ぐらいの人は追加で入ってきました。
その頃ぐらいから言われてたのが、
なんじゃこのコードはーとか
このアーキテクチャはおかしいーとか
でした。
ここらへんに関しては、自分もそのころには感じておりましたが、初期の製造段階での質もあまりよくなく、
その負債を回収する暇もなく進んでいました。
プロジェクトメンバーも悪い人はおらず、直接自分が糾弾されることは無かったのですが、精神的には地味にきつかったですね。

書き直し

そんな経緯もあり、コードを描き直そうという動きがあったのですが、直近のタスクが溜まっていたり、人の入れ替わりによりスキルセットが変わってしまったりもあり、なかなか進みませんでした。
それが、なんやかんやあり、2013/7 ぐらいから、サーバ側はRuby on Railsで書き直すことに決定しました。
で、同時にデザイン・マークアップ・JS・iOSネイティブ・Androidネイティブ の全てを書き直すことにもなりました。
そのため、自分だけが知っていたことなども、他の人に引き継ぎやすく、タイミングとしてはよかったと思います。

メインはRubyでの書き換えをやりながら、ちょっとは運用系のタスクでPHPを修正し、家に帰ったらPythonやらObjective-Cをやる、という混乱は引き起こされましたが。。。

退プロ

途中の予定では、退プロするまでにALL書き直ししたものがリリースされる予定だったのですが、いろいろあって、リリースされる前に抜けてしまうことになりました。
ここに関しては、すこし残念でした。
機会があれば、完成形がどうなったかは知りたいです。

まとめ

  • PHPの経験が1年3ヶ月増えた!
  • iOSの経験が2ヶ月(ぐらい)増えた!
  • Java(Android)の経験が2ヶ月(ぐらい)増えた!
  • Ruby on Railsの経験が3ヶ月増えた!
  • Redisの経験が増えた!
  • MySQLの経験が増えた!
  • RabbitMQの経験が増えた!

ただし、本番のインフラはさわれなかったので、その辺のスキルはまだまだだと思います。。。

ということで、外部記憶の意味も込めて、書き殴ってみました。
NDA的にとか、問題ありそうなら即刻消しますので、ご連絡ください。