February 11, 2005
お恥ずかしい話。人材採用で最近、企業システムの開発経験がある方を多く面接していて、今一つしっくりこなかったり、スキルギャップがあるなぁと考えて、ようやく認識できた、きっと当たり前のこと。
企業システムと、いわゆる「Webサイト」との間では、その技術要件が全然違うのではないか?
Web制作会社として不要なテクノロジおよびスキル
・EJB
・サービスオリエンテッドアーキテクチャなる概念などでのXML Web Services
・高度で複雑なMVCフレームワーク
・当たり前だがその他Enterpriseが宣伝文句に出てくるシステム(ERP、EIP)
・分業体制での限られた範囲の経験しかしていない専門プログラマ
Web制作会社として必要なテクノロジおよびスキル
・RSSや、pingで使われるようなシンプルなXMLテクノロジ、XML-RPC、そしてそういうライトな技術への追従性。フットワーク。
・Flashのスキル、Flashの泥臭いところを嫌わないマインド、Flash未経験者は普通だから、空気を読むセンス
・Webが好きで、全体を見渡して、一人でも物が作れるスキルと貪欲さ。
・すぐ修正、更新できるシステム、更新時に差し替えが簡単であること。
・割と適当なプログラムを書いても動く。(というと怒られるが、真実だと思う)
前者のリストは、開発マネジメントも含めてJavaが得意とするところだし、ウリのポイントだ。後者はむしろJavaには向かなかったり、設計で自由度を縛れるというJavaのメリットが生かしきれないところではないだろうか。
SIとお付き合いして、RIA的な線で企業システムのプロジェクトに協力したりするが、Javaで作るには作るなりの外注分業体制もあるし、仕様書もしっかり書く。そして何より開発期間が長く、アサインされる設計者の人数が多い。システム設計自体が分業体制というのは、うちの会社では滅多にない。
ようやく「情報設計(画面設計)」と「システム設計」という見積もり項目を、専門業務として立てられるような体制を作ったところだ。(逆に、SIでは、我々が必要とする「画面設計」の専門業務がないようだが。)
ここのコメントでも何回か頂いていて認識しつつもしきれていなかった、WebアプリケーションとWebサイトの違いがここにあるのだろうか。
Javaとか.NETという括りの中では、なかなか見極めきれない概念のような気がする。僕が、ずっと勘違いしていたように。技術選択が、時代のトレンドの中で曖昧になってしまっているような気がする。(Javaの方が良いよね、やりたいよねという、技術者の趣味も含め)
Javaジャバ言ってる間にも(4) - FriendSterはJavaからPHPに乗り換えていた
Javaやら.NETだけでなくPHPやperlなどのLL(Lightweight Languages)も、ことWebシステムにおいては非常に有望な選択肢であることが、特に中規模以上の企業においてあまりにも見過ごされすぎている気がしてならない。
うちの案件規模だと、比較的簡単な案件はPHP、そうでない場合はJavaというのが多くて、自分が関わるものはJavaでやることが多いのだが、PHPもきっちり作れるような経験をつけておかないとマズイな。Perlコンプレックスがあるので、Perlもやりたい気持ちは大きい。
工数の効率化という意味では、ひょっとしたらColdFusionでも良いのかもしれない。新しいColdFusionの価格体系はなかなか魅力的だ。ただ、エンジニアスキルの向上という意味では微妙。
そもそも再利用する気も起きない(契約としても微妙だし)受託のWebサイトでクラスをきっちり設計することに微妙な印象がなかったわけではない。
あと結構、トラブル多いし・・・Tomcat、JDBCあたりでいろいろある・・・あえてエンジニアの対応スキルを含めたとしても、Javaだから云々という強い信頼を置いているわけではなかったりして。頑張って動くという意味では、ASPの方が根性があるなぁと思うこともある。あくまで僕の経験の範囲なので強く主張するつもりもないし、信じなくて良いけど。