何か着ていればいいよ

ソフトウェア技術者の日常や技術の話を書こうと思います。

退職しました(旧職でやったことまとめその1)

本日(4/30)をもって新卒から12年働いた会社を退職します。
ここで、自分が旧職で行った仕事のうちで公開しても問題なさそうな部分を中心にいろいろ思い返してみます。

Javaによる新人教育問題作成

自分の入社時(2003年)はVB6による新人研修を行っていたのですが、入社4年目くらいでVB6は時代遅れってことでその当時Javaの案件をやっていた自分が業務の片手間で新人教育用の問題をVB6の問題を元に作りました。
ただ使うというのと、人に教えるということの違いに戸惑いつつも非常にJavaの文法や教育というものについて考えさせられる経験でした。
その後、一昨年まで断続的に新人教育のJava研修担当をしていましたが、同僚の意見や新人の反応を見ながら毎年ブラッシュアップする機会を得て(Javaについてやプログラム学習についての)自分の理解を深められたと思います。

xUnit普及

JUnitの導入については先輩が先鞭をつけてくれていました。
ただ、そこから進まず特定の案件(というより一つのプロジェクト)のみJUnitのテストコードがある状態。
それではいかんなと思い、JavaのプロジェクトにはJUnitを入れてまわり、.NetのプロジェクトではNUnitを入れました。
xUnit不要論も最初はあって(上司や顧客に)よく反対されたのだけど、 マクロの視点で考えればプロジェクトの利益になることは論理的に間違いなかったので説得したり無視したりして周りを巻き込みテストを自動化しまくりました。

CI導入

xUnitを導入して開発者がテストを自動で流すことができるようになったのですが、xUnitを流すかどうかはそれぞれの担当者任せみたいな点に嫌気がさし、かつ規模の大きなプロジェクトでテストを定期的に流したくなり、丁度その頃世に出始めていたHudson*1を導入しました。
この辺から、何か新しいことを始めるにしても顧客は理解してくれないし、上司もなんやかんや消極的(というか多忙でプロジェクトの納期とかそういうの意外には多くリソース割きたがらない)。
そんな状態では「とりあえず一人で勝手に初めて良さげだったら周りを巻き込む」というやり方が良いのだなと学習しだした頃だと思います。

カバレッジ

xUnitでCIしていれば、見たくなるのがカバレッジIDEのpluginとかでたまに見ていたのですが、これも開発者全員やってくれるわけもなく。
というわけで、ビルドスクリプトに混ぜてデイリーテストのカバレッジもとるようにしました。

ER図作成自動化

新規開発の案件で、顧客要件が詰まってない案件をやった際に基本設計でER図まで超頑張って書いたのに、実装入ってから要件が変わってER図(Excel)をなんどもて編集するのに心底嫌気がさして自動化できそうなツールを探しました。
色々試行錯誤した結果、バッチからSchemaSpyでER図をhtml1で生成してJenkinsのリンクに出すのが一番楽という形にまで進化させましt。

にこにこカレンダー導入

こう言ってはなんですが、自分が入社して5年ほどはひたすら炎上案件を渡り歩いて火消し*2をしてました。
まぁ、簡単に言えばデスマからデスマを渡り歩くことになるのでメンタルが疲弊します。
その、疲弊度を見える化したくてにこにこカレンダーを組織内に意欲的に伝道しました。
当初、紙で各自カレンダーをだしてシールでにこにこを表現するというのが、その時の採用担当だった上司的に見栄えが良かったのか採用関連で(うちの会社はこういう取り組みをしているよと)比較的広報され、徐々に周りの人たちも使うようになりました。
*3

プロジェクト振り返り

入社以降自社案件ではうまくいかないプロジェクトに参加することが多かったので、その状況をなんとか改善したいなと思って始めたのが"プロジェクト振り返り"です。*4
それまでは、自社の請負の各チームを見たところプロジェクトが終わったらそれで解散・終了。
その教訓等もあまり共有されていなくて、同じ失敗を繰り返すみたいな部分もありました。
また、プロジェクトの教訓を生かすにしても経験を積んだ誰かが人間力で伝導するような形。
若手のうちから右も左も分からず、チームリーダーをやることが多かった自分は常に手探りでその非効率さをなんとかしたいと考えました。
そんな折、何かの本で見た*5プロジェクトの振り返りは徐々に自分のチームから自部署へ広がり多少なりとも経験値の見える化に貢献できたのではないかと思います。

以下後で書く

チケット駆動開発

レビュー文化

サーバー監視導入

ランチタイム勉強会

イテレーティブな開発

デイリースタンドアップミーティング

議事録のExcel廃止MarkDown化

*1:今のJenkins

*2:もっと燃え上がらせてしまった気もするけど、最後は消した。

*3:紆余曲折を経て自分が退職する時点ではWebアプリを使うようになっていました。

*4:そして振り返り結果を社内へ公開する。

*5:多分アジャイルプラクティスだった気がする。