y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

プログラムの趣味〜実際のケース←毒を出してます

・自分で何でも作らなくては気が済まない(趣味)
・コスト意識がない(コスト意識なんていうのは営業やマネージャが持つべきだと思っている)
・顧客の求めよりも自分のセンスを優先しがち(人の話を聴かない)
・何でも出来るという多幸感(自意識は非常に高い)
・チームのスキル平準化や教育に全く無頓着(弱肉強食、先輩の背中を見て自分で体験しろ!的な信条)
・スキルさえ向上すれば仕事が入ってくるという思い込み(宗教)
工数オーバーは気合で何とでもなると思っている(工程計画よりも気合だ!みたいな)
・個人のスキルアップ優先で案件そっちのけ
・ソースがあるだけでもありがたいことだよ(見るかよ!お前のソースなんか。ドキュメントを書いてくれ、頼むから)
職人的プログラマなんていうことを自慢にする人間がいる。
「あなた、社会不適合者スレスレですよ」と警告したくなる。

スキルなんてものは、披露する場(ステージ)が無ければクソの役にも立たない。
実現できていないこと、今現在できていないことは明日の勉強のネタとしてありがたく思う・・・などと言う
「いやいやそれ(あなたの成長、スキルアップ)に付き合わされる顧客、営業、SEはたまったものじゃありませんよ」
自分で作りたい(出来ない自分を許せない)という向上心は立派でも、世の中を見れば同じような機能ですでに実績を積んでいるOCXなりコンポーネントがわんさか出ているわけですよ。「ココは”一礼しながら”市販のコンポーネントを使いましょうよ」
安価に安定した品質のシステムを構築するのに妙な自前主義は毒にしかならない。あなたが本気で作れば、出来ることは分かりますよ。物凄いコストの覚悟と顧客の苦情処理のストレスと、差し迫った納期と、それから・・・色々・・・が無ければ!
「そう、制約条件の中で、ベストでなくても、ベターなものを選択する」ってのが大事なんですな。

もっと言っちゃえば、部品単位でなく、顧客が求めるモノ(システム)がすでに世の中に商品化されていれば、そいつを担いで提案するくらいの度量はないのか?と。「自社ですべてまかなわないと最終的にサポートできない」って「おぃ!無限にサポートできるだけの時間もコストもスキルもあるのかぃ?」
よくある勘違いは「客はお前さんのスキルなんぞこれっぽっちも欲しがっていない。欲しいのはコストに見合う価値を持ったソフトウェアだ!」っていうこと。しかもそのソフトウェアは○○さんが作った、○○さんにしか最終的なフォローができないソフトでは無く、むしろ誰かが引き続き、長期に渡って、保守できる代物である必要がある。
標準的な、出来れば鼻で笑っちゃうくらいシンプルで安易な仕組みであった方が望ましい。特別なトレーニングを積まなくても取り掛かれて、いくらでも代替が利くような代物。

具体的な決断を迫られた例として

■ 「.NETで開発すべきでは?」という問いかけに対して「いや、敢えてASPだ」という選択。

.NETはWindows2000、XP+フレームワークをクライアントに強要する。ASPならピュアなHTMLとJavascriptを生成するだけなので、クロスブラウザで技術的にも廃れることが無い。Windows2000でも動作するし、何よりも技術者の確保が楽(VB経験者であれば即戦力)。
.NETで開発してもメリットとなるのはポストバックやデータバインド機能だけであり、そういう機能が(クロスブラウザやWebクライアントで広範囲に活用されることよりも)本当に必須なのであれば、それこそ黙ってVBで組んでしまえば良い。.NETが狙っている方向性は本当に微妙だ。イントラネットをインターネットに拡大したいだけなのでは?と邪推してしまう。

ASP.NETのWebフォームは、ブラウザの互換性をサーバサイドで吸収する仕組みを持っているらしい。
Javascriptの互換性をコンポーネント単位で確保するよりも楽かも)
http://msdn2.microsoft.com/ja-JP/library/428509ah.aspx
http://ja.gotdotnet.com/quickstart/aspplus/doc/webformsintro.aspx

■ 「Linuxで安価に構築できるのでは?」に対して「いや、MSDEASPがベストだ」という回答。
PHP,MySQL(Postgres)は確かにソフトウェア購入費としてはゼロであり、OracleSQLサーバの高額なCPUライセンスを購入することで、受注金額が圧迫されてしまうのはかなり痛い。PHP自体も悪くない(はずだ)。
しかし、お客がデータを簡易に扱えて、サーバー、データベースの保守性に優れていて、取得が楽(抵抗感が少なくて、馴染んでいる)でトータルはMSDEASPなのである。大規模になった時点でSQLサーバにアップグレードするという”スモールスタート”で”費用対効果を見ながら”なのである。
MSDEは1DB2GBまでの属性データまで、同時接続数5までしか扱えないという制限があるものの、数万件扱っても100MBに満たないことから考えても100万件規模までは対応できるだろうし、急激に肥大化するログ的なデータを別DBとして構成すれば、全く問題ない。同時5ユーザで最適化されているといっても、すでにインターネットの検索サービスでMSDEを使った例もあり、ものすごいトラフィックを受け付けるDBで無ければ(・・というか殆どのサイトは小さくはじめて、大きくしていきたいと思っている)全く問題なし。
加えて、MSDEはフリーの管理ツールでバックアップ、リストア、スケジュールバックアップ、SQLツールがあるし、Accessから接続してユーザがテーブルをメンテナンスできる。これはありがたい。管理機能をWebアプリとして作らなくても良い=費用が安くなる。
Linuxの世界はフリーだから安価に押さえられる・・・というのは大規模でライセンスが高額になってしまう案件では有効かもしれないが、殆どの小規模〜中規模案件には全く当てはまらないと感じた次第。

「うーーーん、かなりロックだ」(「そこらじゅうで聞きかじった音楽にインスパイアされて3ピースで演奏してます」って感じ。「みんな好きだろ?こういうの」って)