【 ビジネス奮戦記 】

その他の部屋へ戻る



仕事が欲しい。
これからは仕事を取ってこなければならなくなった。
というわけで、ここはそんなキクメンのビジネス奮戦記を書くぞというコーナーだ。

出来ればこれを見て「 ホウ、このキクメンという奴に仕事をさせてみたいのう 」という、
素敵な事業主や会社のエライ人がいたら素敵、などとありもしない妄想を抱いていたりもする、
ちょっぴり悲しく情けないコーナーでもある。

前の奮戦


ビジネス奮戦記ファイルその5

〜 ピンからキリまで2 〜

2003年3月27日執筆

「 SQL は正しい結果が返ってきて半人前、パフォーマンスを考えて1人前 」

のハズなのだが、正しい結果のところですら怪しい人達がタップリいる。

前にも書いたが、新人ルーキーというのならそこまでは問わない。
或いはこれまで全然そういうのとは無縁のジャンルの開発だったとかいうのならばそこまでは問わない。
( だけどベテランだったら予習くらいはして欲しいが・・・ )

しかし、一応基幹業務アプリケーション開発経験者ならば、
それくらいはクリアしていないのはマズイ。

それも一応大手一流 IT 企業代表として高い単金を支払われている技術者ならばなおさらだ。

SQL は書き方次第で劇的に速度が変わるのでアプリケーション開発者でも、
最低限度の知識でいいから一応は知っているべきことだ。

書き方ひとつで、例えば取得するのに数時間かかった処理が、
1秒以下で瞬時に終了するなんてことがあるのだ。

本来 SE として DB 設計まで担当しているのならば作っていて当たり前のことなのだが、
ほとんどの現場で PLAN テーブルを作っていなかった。

それどころか PLAN テーブルそのものを知らないという SE が結構多かった。
もちろんそういうわけだから AUTO TRACE も知らない。
そういうわけで行く先々で何度 PLAN テーブルを作ったことか・・・

DBA ではないアプリケーション開発者なので、
TKPROF や、EXPLAIN PLAN で実行統計をとれないとダメだとまでは書かないが、
せめて AUTO TRACE くらいはかけて調査出来ないとマズイ。

また、SQL 1発で取れるのにわざわざプログラムでループさせたりして、
処理をいちじるしく低下させているようなものも結構あった。
( しかるべき道理に基づく理由があるなら別だが )

話を SQL から変えよう。
しかし、パフォーマンスという点では一致している話題だ。

この前とある客先で話をしにいった時のことだ。
JAVA で組まれたシステムで処理速度を改善したいという旨の要望があり、
JAVA なのでマルチスレッドを考慮してチューニングをしようと思うのだが、といっていた。

つまり CPU の処理効率を高めるチューニングが分かる人はいないか?
ということなのだが、ちょっと待って欲しい。

CPU での処理実行待ち時間のチューンなんて、いくらやったところで、
かせげても数ミリとかナノ秒の世界である。

一番遅くてボトルネックになるところとはなんといっても I/O である。
I/O は数秒、数十秒の世界である。
これだけで CPU 処理時間の数百数千倍も違うのである。

ファイル I/O 、といってもまぁ大抵は、
データベースへのアクセス部分などを見直すほうが断然速くなるのである。

ようするに結局のところプログラムを見直すのが最も速くなるのだ。
それすらも見尽くして、それでもなお速度を稼げる場所はないだろうか?
という時点でようやく CPU がどうしたこうしたと考慮するのである。

----------------------------------------------------
注:オラクルなどのミドルウェアは、
初期パラメータなどでメモリチューニングをしてやれば、
速度向上が表れる場合は確かにある。
----------------------------------------------------

しかし、一流 IT 企業などは、自社製品のサーバやワークステーションを売って、
銭を稼ぎたいから、高性能マシンを買わせることを薦めるのである。

それによって速度改善を薦めるのである。 まぁそりゃ売るほうからいえば当然といえば当然だが、
買わされるほうはその道のプロじゃないので、
はいそうですか、と、素直に従っていたりする。

しかし大規模システムの中核とかいうならともかく、そうでもない場合の方が多いと思う。

この場合アプリケーションプログラムをベテランに見直させるほうが、
コスト的にも処理効率や速度的にも大幅に改善されるのだ。

じゃぁそのベテランをどこから調達してくるんだ?
という点を指摘されるとつらいといえばつらいが・・・

まぁとにかく、これまであちこち訪問した先々で、
一流 IT 企業から来たという人達と一緒に仕事してきたが、
うひゃなんじゃこりゃという人達の方が多かった印象ばかりある。

私の師匠や知り合いの SE に聞いてみたが結構皆同じ感想を漏らしていた。

ひょっとして本当は別の会社から来ているんじゃないかしら、とも思う。
結構この業界にあることなのだが、
A社 → B社 と経由して来る場合も結構あるからだ。

B社で人手がないとか、その筋の専門家がいないとか、
そもそもB社はただのビジネス仲介業者的ポジションだった、
とかいう場合にこういう図式が該当する。

ただ、誤解を避けたいので書くが、一流 IT 企業と呼ばれる会社には、
確かに間違いなく私なんかよりもはるかにはるかに出来る SE はいる。
これは間違いない。
自分なんかよりも優秀なエリート SE はゴマンといる。

ただ、そういった人達は当然だが、その会社にとって、
儲かる仕事や、戦略的に価値あるところに、投入されるので、
私みたいなチッポケ SE 君が赴く小規模プロジェクトに、
彼ら精鋭がいないというのも当然の帰着として頷けるのだ。

でもやっぱり大企業はそれだけ社員が多いということで、
中にはキリもいるだろう。

というより、大企業だろうとなかろうと、
ピンよりもキリの方が圧倒的に多いだろう。

ピンというのはピラミッドの頂点的存在なので、
そういう人はやはりどこにいっても一握りなんだな、
と、いうことにして、この回を終わりにする。

ビジネス奮戦記ファイルその6

〜 プログラマーは穴掘り人夫? 〜

2003年3月27日執筆

この業界、 IT IT と書けば聞こえは良いが、
実際その中で身を投じて働いていると、
実は土建屋と大して変わらんのじゃないかと思うことがよくある。

丸投げ、談合、飛び石、使い捨て、当たり前の世界だ。

ビジネスのコネがある企業だけが仕事を請負取れて、
そのまま中間マージンだけとって、下の会社に丸投げなんて日常茶飯事だ。
或いは、人員だけ別会社から雇って名目上自社開発、なんていうのも茶飯事だ。

プログラマーと書くと、さもインテリジェンスな気風があるが、
大多数はこの業界じゃ最下層だ。

超一流プログラマーが大活躍という世界もあるにはあるが、
そんなのは一部の一部の一部だ。

システムなんていってもシステムなんて、
それこそいくらでもそこらじゅうに溢れているのだ。

その全てに超一流プログラマーが割り当てられて仕事をしているわけではないのだ。

大体ビジネスというシビアな観点からいくと、
頂点のピラミッド順に儲けを吸い上げていって、
最後の一番末端はどこかというと、
やっぱり実際にプログラムを書いてるプログラマーなのだ。

しかも時代に呼応して、システムにかける費用も年々下降している。
プログラマー花形商売時代などというのは既に過去のものなのである。

このままいくとどんどんシステムのコストは下がり、
下手をすると応用のきかない単純プログラマーは将来、
炭鉱夫や穴掘り土方のように職をなくすかもしれないのだ。

仕事が取れる会社だけが利潤を得ることが出来て、
単なるプログラマーは、より安い賃金で使われ、
そういう人員しかいない会社の利潤はほとんどないに等しいという、
まさしく図式としては、ゼネコン>下請け土建屋、
という構図と同じ構図が出来上がっているのだ。

自分としては、小さくてもしっかりした物を作れる会社はあるので、
そういう会社に仕事を依頼して欲しいのだが、
この連載の最初に書いた理由から、
大手 IT 企業に頼む方がリスクは少ないという判断はなかなか変わらないのだ。

でも、ヤルキと実力がある会社も確かに存在するので、
大手 IT 企業よりも安い金額で高品質な物を作る会社もあるのだと、
エンドユーザーさんには分かって欲しいなぁ、と思うのであった。

であるからして、こういう場違いな場所で、
ひょっとしたら、どこかの企業の担当者さんや、
企業主のエンジェルのような人が自分に相談を持ちかけてくれないかしらと、
乏しいショボイ期待を込めて書いてみたりするのであるが、
まぁ多分それはないだろう・・・・

やはりただの魂の遠吠えだろうか。



前の奮戦

その他の部屋へ戻る