SIerを退職し、Web系に転職しました。memo2014-08-01SIerを退職し、Web系に転職しました。いう記事を書いたところ、想像以上の反響がありました。それから一年経ったので、その後のことなど書いていこうと思います。1.変わったこと2.変わらなかったこと3.これから1.変わったこと・COBOLとJavaAppletを書いていたかつてのシステムエンジニアはフロントエンドエンジニアになったそれっぽく言ったけどjavascriptを書く人になったということですね。今の会社はGoogleApps上でのクラウドサービスを提供していてサーバーをGAEで書いています。私はjsで書かれたフロントを主に、たまにpythonで開発をすることになりました。・仕事へのモチベーションは上がった受託で常駐で、というかつてのビジネス構造的から発生していた理不尽さが減りました。github閲覧できないとか。紙と印鑑ありきのフローであるとか。・出社時間を強制されなくなった名目ばかりではない裁量労働制になっているんだなあと思います。・会社でブルックスのコーヒーがおいてあって好きに飲んでいい大したことない感じするかもしれないが案外こういうのが日々のやる気につながってくるのだと知りました。ところでみなさんレッドブルとかは本当に今この瞬間だけがんばりたい、という時以外は飲まないほうがいいですよ。・Windowsの世界で生きてきたからMacというかUnixを使うのは大変だった右クリから空のファイル作ったりできなくてつらいとか、SSどうやって撮るのとか、そもそもこのコマンドボタンというものは一体なんなんだ?とかありました。開発に関する作業は結局ターミナルからやるのがいいのだと思い至ります。昔はCOBOLをコンパイルするときくらいしか黒い画面触らなかったものなのですがね。・昔のような方眼紙の設計書はなくなったもちろん設計書自体がないわけではなく、プログラムの処理を日本語で書いたいわゆる詳細設計書がなくなりました。納品とかありませんし。ドキュメント的に残すのはサーバーはAPI仕様、クライアントは特にまとまったものはなく、あとはソースとかモデルのコメントみてね、という感じです。最初は何から手を付けていいかわからなくて途方に暮れましたが、慣れると案外なんとかなります。小さく始める、を地で行けるやり方です。・スケジュールだけが決まっている開発、が基本なくなったアジャイルっぽくやっているおかげで、ストーリーとそのベロシティで線を想定しています。リリース先ぎめの物も存在しますが、その時は機能のスコープで調整します。あっこれアジャイルサムライで見たやつだ!ってなりました。・ユニットテストとCIをするようになった業務でユニットテストを書くようになりました。今までどうしてそういう現場がなかったのかと思っていましたが、ユニットテストは設計時に予めそうできるような構造しておかねばいけないのであり、そしてその技術はしっかり考えて身につけるべきものであって、なんとなくでできるものではないのだ、ということがわかりました。今まではそういう現場に出会わなかったのでしょう。ユニットテストがあるので、デグレしていない証明のために全てのテストパターンを手動で1週間かけてやるというようなこともしなくてよくなったわけです。自分の書いたコードが既存の仕様を壊せばJenkinsから通知が来るのですから。・手動でぽちぽちしてExcelにSSを貼るテストはやらなくなったユニットテストを通してあるため、手動でやるのは実際のストーリーに沿ったところだけで済みます。いわいるシステムテストのレベルです。・総じて、開発時に感じる理不尽さや非合理さは以前より減ったコードで解決できることはコードで解決しようという方針が実践されていて、これがプログラマなんだなぁという気持ちになりました。2.変わらなかったこと・残業リリース前には忙しくなり、帰るのも遅くなります。これは想定済みですし、慣れてもいるので特に所感は湧きません。・絡まったスパゲッティのようで誰も手が出せないが重要なので使わざるをえないレガシーコード想像はしていたしまあそうだよね、という感じです。それが問題だと認識する素地があるし、なにかにかこつけてリファクタしたり、あわよくば作りなおそうとしていて大変よいと思います。・勉強しなくてはいけないということ覚えなくてはいけないことが多すぎてこれはもはや死ぬしかないのではとと思っていましたが、自分の及ばない部分にまで無理に手を出すのがいけないのだと気づきました。今業務で使っているものを理解する、しかしそれを完璧に理解しようとすると死ぬのでほどほどにする。次にその周辺を理解する、しかし完璧に理解しようとすると以下略。