一分一秒真剣勝負!

Ruby, Railsなど。Web系の技術ネタを充実させたい・・が、そうなるかは分からない。

Validation Nightに行ってきた

ページャNight <[1]>が想像以上にクオリティが高かったので、今回も参加しました! 登壇者が徳丸さん奥野さんなどとても豪華だったなぁ。

で、個人的にはサーバサイドとクライアントサイドのバリデーションが分離してしまう問題を解決している人がいるかなと期待したのですが、これって方法はないですねやっぱり・・・。 RailsだってDRYとか言ってもJSを考えるとDRYになりきれないし。 ただ、懇談会で「うちはサーバサイドとクライアントサイドのバリデーション部分を動的に生成している」って話は聞いた。やっぱりそういう感じで解決するしかないのだろうか。バリデーションは全部サーバサイドに寄せてAPIを叩く感じにしてもいいんだろうけど、サーバに負荷かけたくない時とかはそれじゃダメだったりするだろうし。やっぱりページャーと同じでこれが正解ってのは無いのかもしれない。

YoutubeにRubyKaigiのチャンネルが出来てる!

RubyKaigi - YouTube

全く気付かなかった。はやく教えてよもー。

InputMan

自分が20代の頃、1次受けの会社に常駐という形で某業務系システム開発にJOINした時の話。

その会社は汎用機の開発経験があるエンジニアしかいないのだが、オープン系の受託開発を受注して開発を開始。しかし今のままでは不安なのでオープン系の開発経験者を入れようか?そんなところに入ったのが自分と他社の2人のエンジニアだった。

開発言語はVB6.0で、最初にコードを書いていたのはプロパーのエンジニアだった。業務の説明の後にとりあえずコードを見ることになり、 ああ勉強しながら書いてる感じだなーとか思いつつコードを流し読みしていて、おや?と思った。「InputManを使っていない」のだ。ま、VBでの開発自体初めてなのだから知らなかったのだろう。

どんなソフトかWebエンジニア向けに簡単に説明すると、Datepickerのようなもので、日付だけでなく電話番号や金額など業務系のシステムでよくつかう様々な入力フォームを実装しているミドルウェアといった感じだ。業務システムの開発で、開発言語にVBを使っているプロジェクトなら、当時はどこに行ってもほぼ100%採用されていたソフトウェアだ。

InputManを使っていれば必要のないコードを自前でゴリゴリと書いているので、その為に無駄な工数を使っているのは明らか。 一緒に働いていた他社のエンジニアも気がついてPMにInputManを紹介したのだが、採用は却下された。理由は以下のとおり。

  1. 今まで作ったコードを修正しないといけないので時間がかかるのでは?
  2. 学習コストがかかるのでは?
  3. ライセンス代が30〜50万円(当時)で高い

だけど、1に関しては実装を見る限りさほど時間はかからず、2に関してはVBができる人なら学習って言うほど学習がいらない。3に関しては使わない方が稼働時間が増えたり、人出が足りなくなって人件費の方がかかってしまう。この点をPMに説明したのだが、彼は汎用機の開発経験しかないという事もあり、ピンとこなかったんだろう。説明しても納得してくれなかった。 それ以上は誰も突っ込まなかったが、自分が所属している会社ならもう少し頑張ったのだと思う。まあ下請けではそこまで深入りしないですからね。

で、結局その後工数が膨らんでしまってエンジニアを2人増員することになりました。1ヶ月あたり人件費に100万以上払うことになったわけですね。エンドユーザーは人が増えた分だけ予算を増やしてくれるわけではないので、人が増えれば増えるほど1次受けの会社の利益は減ります。。。結局、InputManのライセンス代を払うより高くついてプロジェクトは終了しました。

ソフトウェア開発だけに限らず、あらゆる状況で「InputMan」のような存在はあるのだろう。 自分に知見が無い分野のInputManを、うまく使いこなせるようになりたい。

PowerToolsシリーズ InputMan Pro 6.5J

PowerToolsシリーズ InputMan Pro 6.5J

今年のテーマ

つまり「今年の目標」なんだけど、年明けから暫くはごたごたしてて、そういうものを設定していなかった。というわけで区切りのいい4月で決めました。 「基本を学び直す」 に決定。 何をするかまだ決めてないけど、とりあえずは定期的にホッテントリに書評が上がる「UNIXという考え方」を読み返してみます。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学