コメント代わりとして、「効率化」について語る
2010/01/15 17:00:00
しばらくとっても忙しいので、コメントが返せずすみません。遅れて返すとおかしくなりそうなので、コメント代わりに書かせていただきます。
基本的にIT技術者というのは、効率のために存在しています。顧客は人間がやるよりも、コンピュータシステムでやる方が効率的だから、コンピュータシステムを導入するわけです。
「効率化すること」は最も重要な大原則です。「効率だけじゃない」と思う人もいるかもしれませんが、+αはいくらあっても良いので「だけじゃない」は正しいけれど、+αで効率を置き換えれると思うなら、顧客が見えてないでしょう。
例えばWeb(HP)であっても同じです。会社案内を配って歩いたり、TVでCFを流すよりも、24時間世界中に営業できることになり効率的なので採用されるわけです。
RDBMSを使う限りSQLを使うことが最も効率的です。最もコーディング量が少なく、最も単純な言語で、パフォーマンスも出ます。
- できる人にとっては、開発・保守効率も高くなります
- できない人がいると、開発・保守効率も低くなります
できない人にとって、効率が下がるのはSQLやプログラミング言語に限らず何でも同じです。
例えば、わたしがコの業界に入る前にいた会社は、年商20億ぐらいの会社でしたが、経理部長はそろばんを使っていて、全部の書類が手書きで、荷札なんて上得意分はガリ版印刷でした(荷札にぴったりのサイズのガリ版、どこで売ってるのか不思議でした。特注だったのかな? 懐かしいな~)。
社長以下、幹部の全員がコンピュータは使えませんから否定的というか……。コンピュータを導入して欲しいと、家のPCで提案書を書いていったら、「社内の文章なのになんで清書してくるのか!!」って2時間も怒鳴り続けられるぐらい理不尽なところでした。社長なりに大変効率にこだわる方で、その社長にとってはPCで文字を打つのは手書きの何倍も(というか無限大に)大変なことなのです。
PCで文字が打てる人が「手書きのよさ」を訴えるのと、PCで文字が打てないから「手書きがよい」というのは、根本的に意味が違います。SQLも同じで、できない人が非効率だ、自分ができるモノが効率的だ。といったところで、それは片方ができないから正しい評価ができていないだけの話です。
できない人には、できないことはすべて非効率で、できないことを肯定するとそこから先は議論にはならない。
逆に、PCで文字を打てる人が「手書きのよさ」を訴えその方が良いときもあります。例えば、DMのレスポンスなどは、手書きと印刷されたモノで極端な差が出ます。それをもって「ほら、効率じゃない」って思った人は間違っています。
掛かるコスト ÷ レスポンス数 = 1件のコスト
で判断します。つまり「手書きのよさ」で選んでいるのではなく、悲しいかな、あくまでも効率で選ぶのがビジネスです。もっとも、非効率さを無視できるときは好みを出してもよいですし、ビジネスが関係ないお付き合いには、手書きだろうが、携帯メールだろうが、耳元でささやこうが、好きにしたらよいのですが、「効率が悪くてもよい」と思ってSIerに頼む顧客はいないので、IT技術者はあくまでも効率にこだわる必要があります。
ですから、もし、「手書きの方が効率がよい」と判断したら、手書きの提案をしなければいけません。ちなみに(成約金額にもよりますが)、1000枚までなら確実に手書きの方が効率がよいです。枚数が少ないというのは厳選されたリストで、高額商品のはずで手書きの効果は高い。1000枚を超えるなら、その人の筆跡を再現する「オリジナル手書きフォント」を作る提案をする。というのがIT技術者の仕事です。
何度も書いているけれど、「初級シスアド」は顧客がメンテナンスをしたり、SIerに依頼するために最低限必要な知識を持っていることを証明する試験です。高校生でも毎年数千人が通るぐらい簡単で、日本のIT関連の資格で最も有資格者が多い、一般的で入門レベルとされている資格です。その「初級シスアドレベルぐらい出来て当たり前」という、極めて単純で当たり前の意見に対して、堂々と「できなくてもプロだ!」という人が出るのは、情けないことだとは思いませんか?
そういう人が出るのは、医者と看護士の話を書きましたが、看護士の世界では「注射器は使いまわしてはいけない」とすでに常識になっているのに、経験を積んだ医者の方が「注射器は使いまわして当たり前」といってるのと同じです。
数多くの初心者が初級シスアドを取るためにいったんは勉強していますから、それを伸ばすように教育すればいいのに、この業界で仕事をしている既得権者が上から潰すから、おかしな業界になってしまうのです。
繰り返しますけれど、初級シスアドは日本のIT関連の資格で最も有資格者が多い、一般的で入門レベルとされている資格で、初心者の多くは、いったんは「現役のプロができないレベル」まで教育されているのです。その教育が終わった直後に、既得権者が上から潰すという馬鹿なことを繰り返しているから、結果的にできない人が増えることになり、「保守できなくなる」という主張をする人が出ます。
http://www.jitec.jp/1_11seido/h13/ad.html 役割と期待する技術水準を見て、未経験の高校生も取ってきたという現実を見れば、「保守できなくなる」とプロの側がいうことが、どれほど戯けたことか分かると思うけれど……。
できない人が多いというのは現実ではありますが、いったん、教育を受けても現場で使わなければすぐに忘れるのは当たり前の話。上から潰さずにそのまま現場で使えるようにすれば、それが一番効率的なのは明らかです。ですから、「上から潰すな」と何度も主張しているのですけどね。
一部に成功しているプロジェクト、会社(エンドユーザー)があるのはコメント欄を見れば分かると思いますし、逆に舵を切っている会社が多いというのが現実だということも分かります。
現実であっても、くどいですけれど初級シスアドレベル(高校生レベル)を否定したら、プロとして常識的におかしい。顧客が気づいたら言い訳できないですよ。
「できるけれど使わない」と「できない」は根本的に意味が違います。
効率には、短期的な効率と、長期的な効率があります。
できる人が少ない手法を採用すると短期的には教育コストが大きくなりますから、短期的な効率を追い求めたらメンツが揃い易いO/Rマッパーを使った方針の方が楽で、安くできるかもしれません。わたしよりもっと長期的な効率を考える人は、RDBMS以外のモノを作ろうとするでしょう。
どの時点の効率にフォーカスするかは、経営者の判断であり、自身のキャリアパスを考える各人の判断です。
反対意見が非常に多いというのは、O/Rマッパー「&Javaなどの言語」というのは非常に習得し易いモノなのでしょう。であるなら、SQLができない人がいるということを認めると、O/Rマッパーにシフトした方が確かに効率的です。
ただし、そちらにシフトするということは、より習得し易い? 単純作業に近い方にシフトしているということです。ここを読んでいる人の多くは、普通の人よりも技術者として高い好奇心を持った人達で、そのような人達がそちらへシフトするのはわたしは悲しく思っています。
単純作業化されたモノは、若い人や海外の人が競合相手になります。実際になってますし、オフショアするにはO/RマッパーやFWは必須でしょう。しかし、SQLの部分は海外に持って行かれる確率が少ないのも事実です。複雑なSQLになる部分は、ほぼ同じ内容の仕様書が必要で、こっちで書いた方が早かったり。
競合相手に負けた人を残すのは、すなわち勝った人を見捨てるという不合理になりますのでできません。となると、若い人や海外の人と競合して勝ち続ける必要が出てくる。わたしは、そんな不毛な戦いは避けたいし、特化したいので(ベンチャーなら当然ですね)バカと言われようと「逆張り」するだけの話です。
経営者としては、無理をせずにリスクの少ない方を選ぶべきですから、技術者がO/Rマッパーの方を向くならそれで短期に儲けた方が良いのです。今のような苦労もない(苦笑)。
それでも、わたしはもう少し先を見たい「夢見る僕ちゃん」なわけで、わたしは経営者として、人間として、技術者を使い捨てにはしたくはないから、「できるようになれ!」って警告はしますけれど、無視した人がどうなっても、わたしとしてはそれ以上どうしようもない。
将来、どちらに転ぶかは神のみぞ知る。
わたしはVB4の頃からSQLにこだわってきたお陰で、少ないコストで生き残って来ました。逆に舵を切った人も多かったけれど、そちらの人達が今どうなっているかは想像できると思います。その経験からも、今の状況を見ても(会社を立ち上げるならもっとリスクのない方法を採るべきですが)、SQLの方が有利と予想しています。SQLができる人は虐げられているので、同時に経験していますから、どっちもできるようになります。どっちにに転んでもSQLを選んできた人は(安易に逃げなかったってことですから)生き残ると思います。
ちなみに、SQLが難しいのは業務知識と直結することです。他の言語は積み上げて徐々に考えるのですが、SQLは「基本設計 = プログラム」となるため、業務知識がないとできない。わたしも、SQLと業務知識を同時に教える方法が分からない。これがわたしの最大の悩みです。
SQL自体は若い人でも十分こなせるのですが、業務知識がないために任せきれない。
業務知識を持っているほとんどの人は、話をした瞬間にループのイメージができていて、優秀な人ほどそのイメージが完璧なので簡単には崩れない。
ですからこそ、業務知識を完璧に持っていて、今までコーディング経験がない顧客自身がコーディングする内製化に向いています。
SQLは本当に簡単なのです。

生島勘富
