以前のところからのご指名のお仕事であるが、話を聞いただけでは「修正工数は1日間程度」「検証工数にプラス1日」だと見積もった。
ただ、本人たちが意図しているのかしていないのかは別として、実際に作業を開始すると「そりゃないでしょ」という位の修正にふくれあがる事はよくある。

で、今回は・・
・元のデータベースのテーブル構造の設計がヘタクソなので、変更が必要。
・説明ではさらっと流していて部分、詳細を見たら結構な修正ボリューム。
・画面レイアウトの修正もあるのだが、レイアウトが付いていない
・明らかに仕様のミスが・・

ということで、とても一日では終わりそうにない。が、納期はすぐそこ。

今宵は徹夜である。
業務で、事務方のツールをVBAで作ることになった。よくある、メンバーの週報から作業項目とそれに対応する作業時間を抜き出し、集計する、というやつ。

集計はどういう観点があるのか聞いても糠に釘なので、どうとでも使えるようにAccessへデータをつっこむことにした。

Excelからデータベースへのアクセスモジュールを新規で作るのはちょっと面倒くさい。過去の資産からDBアクセスをクラス化したものを取り出し、ちょっとアレンジした。元が少し環境依存であったこと、SQL Server 用であったことなど、直接は使えなかったが、ものお30分かからずに完成。
データベースとのコネクションから、参照系と更新系のメソッド、参照系の結果レコードセットも内包し、過去にハマったエラーの対策まで済ませてある。テスト工数も大幅にカットできた。


過去のノウハウが凝縮されているものなので、個人的には非常に使い勝手がよい。


こんなことをすると、やはりVBA Framework はあった方が便利だよな、と改めて思った。今回、DB周りのブラッシュアップができたので、そちらをもう少し汎用性を持たせて、公開を急ごうかな、と思っている。
たまに、恐ろしくなることがある。エンジニアの会話だ。

顧客には最適なものを提供する、はずなのだが・・。

「これっていつ保守切れ?」
「今年度いっぱい」
「なら、それを別のシステムに置き換えられる?」
「レガシーすぎて、通信プロトコルも独自なものらしい。リスクが高すぎる。」
「じゃあ、レガシーシステムのマシンを置き換えて継続させるしかないね。」
「それが一番のおすすめ案だな」

って、ちょっと待て。そんなものに客が投資するか!と思うのだが、そういう会話が平気で行われる。本人たちは「おかしなこと」だという自覚はない。心理学用語の、リスキーシフトだといえるのではないか。

技術屋の話は経営的視点に欠けるとかよく言われるが、これは「今度地デジ化され、アナログ放送がなくなるのに、今からアナログ放送用のチューナーをおすすめする」ようなものではないかと感じた。もっと酷い言い方をすれば、せっかく新しくて安い商品があるのに、賞味期限切れの商品をおすすめしているようなもんじゃないのか?自分たちの都合のいいものをおすすめとしていいのか?

なお、誤解のないように補足するが、オープンシステム至上主義ではない。レガシーにはレガシーのいいところもあるので、残る部分もあるだろう。しかし、上記のような理由でのレガシー存続はどうかと思う。


企業の部長クラスがこれだもの。ちょっと困ったものである。