標題の通り、6/1から今の会社の3年目を迎えることになります。
今
現在、ありがたいことに某"モバイル向けサービスをPerlで開発する"企業に籍を置かせていただいています。業務的には開発、運用をまんべんなくやっている感じです。
今でこそ、へなちょこながらPerlも書けるようになりましたし、DBのチューニングの真似事をできるようになり、つたないながら外でも発表する機会を得ることができるようになりました。
しかしながら、2年前の入社当時では、WEBアプリケーションフレームワーク? DjangoとCatalystをちょっと触ったことありますよ。Perl? Pythonの方がまだ書けます。ああ、use strictは書いてますよ。Linux? ああ、ls打てますよ。 MySQL? リファレンスを見ながらならSELECTを打てますよ。多少誇張はありますが、そんな感じでよく今の会社に採用されたなという感じでした。
そんなでしたが、頻繁な社内勉強会や外部勉強会への積極的な参加奨励など制度的な援助や自身の学習の成果もあり、なんとか0.7人前のエンジニアとして業務を遂行できるようになりました。こうしたエンジニアを大事にする制度を維持し、助長していただいている上長および会社にはとても感謝しています。
昔
さて、2年前はそんな感じの人材でしたが、なんで今の会社に入ることになったのか、良い機会なのでふり返ってみたいです。当たり障り無く書きます。もう時効なので良いかもですが。
前社は"ネットワーク系の業務アプリケーション"を海外から仕入れて"大手通信キャリア"さんや"通信系の研究所"さんに売る代理店業、そのアプリをサポートする保守/サポート業、そのアプリをカスタマイズする開発業の3つを大きな生業とする会社でした。私は部署的には開発部に所属していました。
1年目
私がこの会社での3年間で大きな部分を占めていたのは"大手通信キャリア"さん向けに売っていた業務アプリケーションのカスタマイズとサポートでした。
当時、新卒1年目のぺーぺーながら、重要なプロジェクトを任されたわけですが、当時の開発部長と当時の営業部長がプロジェクトメンバーということもあり、メンバーには恵まれていた思います。また、お客様は技術部門の方ということもあり、わりかし技術的にむつかしい部分についてはかなり譲歩していただき、かなり恵まれていました。
プロジェクト運営的には順風なはずなのですが、開発に関しては最大の悔いあります。今思い直すと、可能なら全部書き直したいくらいプログラムはヒドイ出来だったと思います。文字列処理なのにC言語で書かれていたり、内部処理も目も当てられないものだったり、(グローバル変数の多用はそれでもなかったよ、)と今思うと目も当てられないものでした。余談ですが、当時2ヶ月かけて開発しましたが、今書き直したらたぶん、4日くらいで書ける気がします。テストコード込みで。
転機
で、そんな感じの仕事始まりだったのですが、このままだったら0.1人前のエンジニアのままで、今のこの場に立っていなかったと思います。一番の転機になったのが、入社1年目の1月に社内の開発標準チームに入ったことです。このチームでは部内の開発標準を作ることが目的だったのですが、まず開発標準を作るにあたってプロセスやプラクティスをちゃんと勉強した上で、作らなければ行けないと言うことで、レビュー、UP、XP、アジャイル、テスト、TDD、UML等 普段業務を単に遂行するだけでは得られなかった多くの知識を得ることができました。
開発標準チームのリーダのKさんにはとても大きな影響を受けていて、この人のおかげで社外にも開発者のコミュニティがあるということを知りました。この当時Jasst、XP祭り、デブサミ、Python Code Readingなどの勉強会・カンファレンスに参加して自分自身大きな衝撃を受けたのを覚えています。この人がいなかったら今の自分がなかったのではないかというくらいKさんには感謝をしています。今ではほとんどKさんとは交流が無いのですが、テスト関係では名前をよく見るので活躍しているようです。
2年目
さておき、開発業務に話が戻って、一次開発でC言語を使って痛い目を見た訳ですが、二次開発ではPythonを採用することになりました。つたないながらも開発標準で学んだ様々な知識が役に立ちました。前半は開発自体もわりかしうまくいっていて満帆でした。また、2年目ながらお客様と一緒にアメリカへ海外出張に行かせていただき良い経験をできたと思います。
違和感が出てきたのは2年目の半分くらいの頃だったと思います。私は開発部に所属していたのですが、実際にやっている主要な業務は開発ではなく、"業務アプリケーション"のサポートでした。正式なサポート部署があったにも関わらずです。前述の通りお客様はエンジニアであるため、話が通じますし、また、業務的に新しかったり高度なことをやっているため、仕事としてはとても面白いのですが、部署とやっていることが違うという違和感が大きくのしかかってきました。部署が違うと言うことはサポート部署が持つ暗黙知や形式知にアクセスすることが出来ない。サポート部署のサポートも得られない。サポート部署とのシナジーも無い。ということです。会社として今の業務を自分にアサインするままであれば、サポート部署に移るか、アサイン変えて欲しいとこの頃会社に主張していたと思います。それ以外の部分で言うと、この当時基本的に1人で仕事をしており、仕事内容的に技術的に相談できる人は誰もおらず、この頃、転職を意識するようになってきました。
3年目
この後、開発部なのに席はサポート部署のところにあって週報もサポート部署に提出するという謎状態がありましたが、いろいろあってお付き合いしていた会社さんの次期開発が無くなり、"業務アプリケーション"のサポートも正式にサポート部署に移ることになりました。ちょっと不本意な形ではありますが、プロジェクトは解散の運びになったわけです。
チームで開発できるところに配転して欲しいとの希望が通り、4人ほどのチームにjoinすることになりました。ここではCatalystを使っており、本格的にperlを扱うのはここが初めてとなります。しかし、晴れて開発オンリーでひゃっほいという風にはならなかったのでした。
お客様の事情でいくらたっても発注がおりず、ゆるゆる検証作業と言う名の機能開発をしていました。時間が無駄にあるので、かなりだれていたのは確かです。このままじゃ、技術者として大きな成長はできないと転職をしようと決めたのはこの頃です。そんな感じの状態が次の春まで続いたのでした。
みぢかい4年目
最大の転機が4月にやってきます。詳しくはアレなんですが、まあごにょごにょありまして、4月末で会社都合で退職せざるを得ないことになりました。いったん、同僚の強い働きかけで退職が取消になったようなのですが、自分としては一度宣言されてしまってもう糸が切れてしまったのと、新しい場所に移りたいという気持ちが強かったので、そのまま退職という運びになりました。引き継ぎとかの関係とかいろいろで結局5月末の退職になりました。もちろん会社都合で。
前社が悪い環境だったかと言われると、決してそういう環境では無かったと思います。目指したいと思う先輩はいたし、外部カンファレンスとかも申しでれば普通に行かせてもらえましたし。ただ、自分のやりたいこととは大きく離れてしまったというところが大きいです。自分は開発がやりたいのでした。検証とか調査作業がやりたいのではなかったのです。そして特定少数の人では無く多くの人に使ってもらえるようなサービスやアプリケーションを作りたいと思っていたのでした。当時は。
5月いっぱいは有休消化でゆったり(だけど、余裕は無く)転職活動することができました。中途なのに開発経験が少ないというのはやはりどの企業でも採りにくい人材なのかわりかし、書類選考で落とされることが多かったです。(資格だけは無駄に持っていましたが、あまり役に立った感はありませんでした)。その中で運良く今の会社と面接していただくことができ、とんとん拍子で内定まで至りました。
面接に関しては数社受けさせていただいたのですが、今働いている会社が一番技術に対しての質問が多かった印象を持ってます。また、一番人を見ようとしている感が良い印象だったのでここならやっていけるのでは無いかという気分になり、入社させていただく運びとなりました。
そして現在の会社
面接時にはプログラミングに関してはもっと頑張る必要があると言われてたので、ポテンシャルと買われたのだと認識しています。そのため、入社前、入社後半年くらいは自分としてはかなり努力していたつもりです。(他の人に言わせれば、大したことじゃないと言われそうですが)
今までWindowsで開発していたのに、これからは全部黒い画面でやらないといけなかったのは最初辛かったです。また、PerlやSQLも人並み以下だったので、最初はソースコードが読めなくて死にそうになってました。またバージョン管理も前社ではGUIでSVNを使っていたのですが、CUIでsvk(svn)でコマンドを打たないといけなかったのもなかなか慣れませんでした。(後にgitに変更されますが) 何もかも初めてで全然戦力になっていなかった自分を捨てないでいただけたのは感謝しているのと同時にこの当時の仕事ぶりを申し訳なく思ったます。
ちょっと前までは"多くの人に使ってもらえるサービス"にはちょっと遠かったのですが、ここ最近作っているサービスはこれに近い感じで運用されつつあって、仕事的には楽しくやっています。多くの人が使っているというのがあり、いわゆる"大規模サービス"にはとうてい及びませんが、それなりに負荷があって、技術的にはいろいろ面白い要素が試せて楽しいです。当分はこのサービスを楽しく運営していくのでしょう。
未来
前述したとおり、今働いている会社は技術を大事にする風土であるためこの2年間自分自身大きく成長することができました。ここから先は自分自身の成長にとどまること無く、自分が得たものをはき出して、チームとして供に成長していける環境を助長していければ良いかなと思ってます。
また、自分が成長できたのは社内環境だけで無く、社外のコミュニティの大きな役割を果たしていたと思ってます。その中で、アジャイル系のコミュニティやPerlコミュニティにはとても大きな恩を感じています。もらったものを少しでも返せたらいいなと思い、いくつかのイベントや勉強会のお手伝いを今水面下で進めています。自分のようにコミュニティからいろんなものを得ることが出来る人がいっぱい増えるといいなと思います。
文章力が無いので、長々と書いてしまいましたが、就職してから5年と2ヶ月の間自分と関わりがあった全ての人とコミュニティに感謝してます。これからもよろしくお願いします。
俺たちの戦いはこれからだ!