ひさびさなので、空白の5ヶ月間のことを思い出して書いてみる

(空白と言ってもココログはその間ちゃんと更新してたので、当時のナマの日記はそちらに。ピアノのことばかりで技術ネタは皆無。。)

EJBプロジェクト

4月の時点でやっていたプロジェクトはメンバーが頑張ってくれたおかげでなんとか予定どおりにリリース終了。
計数的には、多少利益が予定より少なかったものの黒字で終えることができました。
PMやったわけじゃないけど見積もりをやったのが自分なので、計数的な問題にならなくて心底ほっとしました。見積もり時にはさんざん「高い!」と社内で言われたけれど、意見を曲げなくて良かった。

でも大変でした。
「自分が死んだ方がプロジェクトがうまくいくんじゃないか」とか思いました。。列車事故があった時には、前途のある方々が突然命を絶たれてさぞ無念だったろうに、今死んでも構わない自分がどうして生き残ってるんだろう、とか。
体調も崩したし、精神的にもヤバかった。

(こんなに大変だったのに、終了後にPMもほとんどのメンバーも間髪入れずにトラブルプロジェクトのヘルプに送り込まれるという残酷さ.・゜・(ノД`;)・゜・)

この仕事が大変なのは「あらかじめ変更を予想して汎用性があるように作りこんでおく」というYAGNIの真逆を行く方針のためだと思いました。あらゆるところに無用な複雑さが作り込まれ、また新規の機能にも考えつく限りの変更への汎用的な対応が求められるという。。
あまりに複雑なので品質の確保も困難だし、実際には汎用性を盛り込んだところとは全然別のところで変更が発生するので修正作業が非常に高くつくことに。汎用性のために盛り込んだ機能の2/3くらいはリリース後全く使われた形跡がないのに。
デメリットを説明して説得を試みたけれど失敗(ヘタレでゴメンよ…)。この時点で二度とこの仕事はしないと誓いました。

計数的な問題が小さかったことと、技術的な問題がほとんどなかったことが救い。

技術面の目標達成状況

  • 「(少数精鋭ではない)スキルがまちまちなプロジェクトでも軽量コンテナが使えるか?」

DIは理解してもらいやすいです。自動生成用のタグとか、ごく一部手動設定用のファイルはメンバー各自に書いてもらったし。
ただ、AOPを説明するにはSpringではつらい。たぶんわかってもらえていないと思う。AOPの説明をする時にはSeasarを使って見せて、「同じようなことをSpringでもやってるんだよ」とかすれば良かったかも。

もともとSFSBならではの機能をあまり使っていなかったので、SFSB→HttpSessionは意外なくらいスムーズ。SLSBはPOJO化だけなら難しくないけれど、とにかく複雑なロジックを複数SQL+コードでダラダラ書いてあるところを書き換えるのは大変だった。。

  • テスト

ちゃんと「テスト」を書くまで行かなくて、単にJUnitで呼び出し側を書いてデバッグ、という使われ方が多かったけれど、いちいちデプロイしてデバッグするのに比べれば格段の進歩かと。
何人かはモックを使ったテストまでちゃんとできるようになってくれて嬉しかった。

プロジェクト終了後

休職してから辞めるかどうするか考えようとか思っていたら別の仕事の話が。
他の人にやってもらおうと思ってギリギリまで粘ったけれどダメだったので自分でやることになりました。とにかく休みたかったのでスタートを遅らせてもらって夏休み等も使って1週間弱の休みを2回取ってからプロジェクト開始。

現在のプロジェクト

久しぶりに女性のみプロジェクト。なごやかです。

またまた非EJB化をやりましたが今度はCMP EntityBeanだったので楽ちん。xDocletで生成するDTOにビュー層までが依存している状況でも、生成したファイルを残して流用すれば問題ないので。
2日くらいで非EJB化は終了。

いまのところ順調で、もうすぐ最初のリリース。
ユーザからどんなフィードバックが来るかがちょっと怖いなぁ。