COBOLから逃げ出して退職してました

2013/09/30をもって、新卒で入社して4年半勤めたSIerと呼ばれる会社を退職していました。既に1ヶ月経ちましたが、せっかくなのでやったことでも振り返ろうと思います。

北海道にて、メインフレームアセンブラで作られたシステムを、画面系VBビジネスロジックCOBOLのシステムとして再構築するお仕事を行っている職場でした。もちろんウォータフォールです。30代前半~半ばの社員が少なくて、40代以降がいっぱい。オブジェクト指向?若いやつらにやらせればいいだろ?とか、そんなこと言うオトナな人は一部だけでしたが、最新技術動向とかあまり興味のない人が多い職場でした。・・・どこもそんなもんでしょうか?

VB+COBOL

新人として最初の仕事は、先輩の作った詳細設計書をもとにプログラムを書くことでした。VBは既に画面にコントロール配置済みで、詳細設計書にはボタンが押された時にCOBOLに渡すパラメータまで細かく書かれていて、まさにコーディングだけ、でした。COBOLは10本ほど書きましたが、いやあ、うっかり一行80文字オーバーしててコンパイルエラーとかしばらく気が付かなかったのがいい思い出です(´・ω・`)

開発基盤チーム

結合テストに入った段階で異動になり、退職までは開発基盤チームで過ごしていました。直接お客さんと接することはなく、社内の開発標準の改訂等々、社内の方と関わることが多かったです。あくまでも「標準」なので、各プロジェクトの共通項を見出す・・・という視点が求められていたと思います。実際に調べてみると、各プロジェクト好き勝手にやっていて頭を抱えまくりました。

自社製フレームワークの構築・運用

チュートリアルの作成と教育も担当し、この仕事のおかげで、オブジェクト指向という概念が理解できたと思います。でもXML地獄はもう2度と味わいたくない。学生の頃はPHPActionScriptしか触ったことはなく、手続き型でしか出来ていなかったなあ、と改めて思いました。

デブサミに参加した

Developers Summit 2012、2013と2年連続で参加しました。「世間の当たり前」と「現場の当たり前」との差を痛感するイベントとなりました。

ソフトウェア開発の三種の神器

社内標準はもちろんExcel方眼紙!でしたが、社内向けの仕事で制約もなかったので、Redmine、Jenkins、Subversionあたりを自由に使ってました。Redmineなしで仕事という状態がほぼないため、Excelだけでどうプロジェクトを進めるのか、想像できません・・・チケット駆動開発の本にはお世話になりました。

Jenkinsでのデイリービルド、リリース環境を作りましたが、もうちょっとうまく運用できなかったかなあ、と、もどかしさは残っています。

Subversionも入社後に初めて知ったものですが、最初は「更新とコミットだけしてればなんとかなる」と、そう教えられて、そんなもんか、と思考が止まっていました。が、バージョン管理について調べていくごとに、みんな・・・何もバージョンを管理できていない・・・!と気付きました。Subversion使ってて「本番リリースが終わってからコミットする」のがバージョン管理ってどういうことなの?(マジ切れ

仕事ってきっと、みんなすごい人達が集まっていて、何でもきっちりやってるんだ!という学生の頃からの思い込みが解消された瞬間でもありました。みんな結構適当だったんだね・・・・

その後、分散型VCSに興味を持ってSCM Boot Camp in Hokkaidoに参加して・・・と繋がっていきました。ちなみに、SCM Boot CampではMercurialを使いましたが、職場で広める際には「Windows環境で、Subversionもいまいちよく分かってないけど使ってる」環境ということから、Subversionに近く、push/pullをしなくても利用できるBazaarを選択しました。

アジャイルに進めよう

自分の周りの世界だけでも変えよう、と取り組みを続けていましたが、「好きにやっていいよ」というプロジェクトがあったので、好きにやりました。私はスクラムマスターのポジションで、複数チームのリーダーにスクラムの考え方を説明して、Redmine、Jenkins、Bazaar用のサーバを用意して・・・2週間毎の振り返りをしつつ、改善しながら進められました。勉強会もやりつつでしたが、最初は「それって何か意味あるの?」と言っていた先輩が、少しずつ「確かに言うとおりだったわ・・・!」と段々と共感してくれたのは嬉しかったです。アジャイルがどうとか、というよりは「日々考えて、改善しながら進めよう!」って意識が大事なんじゃないかと思いました。

Vagrant、Chef、Capistrano

せっかくなのでサーバは仮想環境で構築・運用してみました。今では当たり前みたいに流行ってますが、1年半前はあまり情報がなくて大変でした。こいつはくる!と思った予測的中でしたね・・!Redmineプラグイン色々いじってみたり、Ruby関連さわることが多かったですね。

なんで辞めたの?

音楽性の違いってやつですかね・・・。

サーバ運用まわりは色々勉強できましたが、インフラ専門のエンジニアになるつもりはなく、自分でもコードは書きたいという気持ちはあります。が、職場の同僚を見ると、メインフレームアセンブラを解析してCOBOLを量産・・・ん?この職場に残っていて10年後に何が得られているだろう?と疑問に思ってしまったり。「お金になる仕事」としてはいいのかもしれませんが、私にはどうにも続けられるとは思えませんでした。


違和感、っていうのが一番しっくりくるのかなと思います。

大学生活最後の1年間で、デザイナーの後輩と2人で組んで色々と作ったものが色んな賞をもらって、モノ作り!楽しい!と思っていたあの気持ちに戻りたいのです。UI?デザイン?画面にボタン配置すりゃいいだろ?と意図もなくただ項目を並べたりだとか、(そもそもメインフレームの画面をVBで再現しました!とかよくわかんないんですけど)Excel方眼紙で頑張って段落合わせて、フォントとか印刷のずれ直して、あれ?なんだろうこれ・・・これがモノ作りってやつ?


現状で社員の7割ぐらいが管理職で何を管理してるのかなあ、とか、役職上がったところで求められてるのは、単価の安い外注さんをいっぱい使ってとりあえず動くもの作れ、ってことだよなあ、とか。とりあえず手の空いたやつはどっかのプロジェクトに突っ込んでおけ、とか別に教育的観点なにもないよなあ、とか。色々と思うところはありますが、お金を稼ぐためには致し方ないのでしょう。人月でお金を稼いでるんだから。

既に組織としてそれなりに年数が経っている会社全体を変えるっていう事はすごく難しくて、10年20年かけたら、もしかしたら可能なのかもしれません。が、自分の人生の大半を費やしてやりたいことなのか、というと答えはNOでした。ですが、少なくとも、自分の周りだけは変えられたと思ってます。種は蒔いたので、育てるのは残った人にまかせて、自分は新しいチャレンジをしたいと思いました。

会社に残っていても勉強できること、ってまだまだあると思います。学べることがゼロになるなんてことはありません。なので、どこかで自分で決めなければなりません。隣の芝生が青く見えているだけかもしれませんが、それでも私は自分が楽しい!と思えるものを作りたい。

これから

次の職場はありません。ということで、10年振りに実家に帰りました。あまり焦って仕事を探しているわけでもなく、のんびりと来年になったらどこか東京でWebサービスとかソーシャルゲームあたりやってる会社探そうかな・・!と思ってます。ふわっとしてますが、フィーリングは大事にしたい。とりあえず勉強がてら、自分でWebサービスでも1個作ってみようかなあ、と思ってます。Ruby関係さわることが多かったのでRailsを使って、インフラはAWSあたりで・・!自分で好きなように決めれるって素晴らしい。