レガシー企業を変えようとしている

タイトルは大げさになってしまったが、ようは特定の案件にアサインしないから、がんばって社内改善してちょ と言われているわけだ。

テストコードという概念も無ければバグ管理もコードレビューも無く、SVNへのコミットはなるべくまとめて最後に一括でドン!
ソースの修正はかならずコメントアウトして直接は書き換えず、修正履歴コメントを残す必要があったりとか、そういうよくあるレガシー企業。
主に使うJavaフレームワークStruts2JDKは6。世間ではフロントをSPAにして、サーバー側はRest APIで構築みたいなことが当たり前のように行われている中、弊社ではそういったワードを知っている人すらいない。

まだRestで消耗しているの?どころの話ではない。サーバーとはHTMLを返すものなのだ。JavaScriptはブラウザでアラートダイアログを出すための言語なのだ。
単体テストというのはエクセルにこのボタンを押したらDBのどのテーブルにコレが登録されるとか、この値がセッションに保存されるとか言うのを書いて、Eclipseのデバッガで処理を止めて変数の値を表示してスクショを撮ることなのだ。

とまあ現状はそんな感じである。つらい。
もう何から手を付けていいのやらわからない状態ではあるが、とりあえずテストコードを書くようにするのがいいんじゃないか?と思い、デモ環境の構築にとりかかった。

社内の空きPC(去年まで自分が使っていたWindows 32bit メモリ4G)をCentOSに入れ替え、私物の16GBメモリを搭載しサーバーとして利用。Dockerで JenkinsやらGitBucketを導入してみた。
Struts2,Spring,MyBatisという、社内でよく使われている構成の適当なプロジェクトをサンプルとして、テストコードのデモを作成。まあ1000行くらいある適当なメソッドをクラスに切り出してこれまた適当にテストを書いてみただけだが・・・

それをGitBucketにあげてJenkinsと連携。GitBucketにPushしたらJenkinsでテストが走ってカバレッジも取得されて結果をSlackに通知するというだけのシンプルなものだ。

とりあえず、テストってこういう感じのものだよ〜というのは見せられる準備はできたのだが、これをどうやって社内に展開していけばいいのだろうか。やっぱりどこか実際のプロジェクトで導入実績を作らないと広まらないよなぁ。手頃な小規模プロジェクトがあればいいのだけれど・・・

そして弊社ではWindows FormsとVBの組み合わせの案件が未だに多いみたい(自分はやったことない)なので、その環境でテストを書いていくには?というところに今は取り掛かっている。
いやもうWindows FormsもVBも勘弁してくれという話なのだが、それしかできない人が多いから仕方がないようだ。つらい。

ちょっと調べたところ、Windows Formsでいい感じの開発をするためには、もはや自分でフレームワーク作るみたいなイキオイになりそう?WPFであればPrismという定番フレームワークがあるみたいだけど、Windows Formsにはないのかな?

ああもう進めて行き方がわからない。いっそ転職してしまいたいが、こんなレガシー開発しか経験のない26歳をどこが雇ってくれるというのか。もう第二新卒ですらないのだぞ。
やはり趣味で何か実績をひっさげるべきなのだろう。しかし趣味ではゲーム作っていたいからなあ。今年は技術書展でGodot本も出したいしな。むむむむ・・・

つらみ。