株式会社ジーワンシステムの代表取締役。 新しいものを生み出して世の中をあっといわせたい。イノベーションってやつ起こせたらいいな。

上流の皆さんへ

»

 (まぁ、わたしも上流かもしれないけどもね……)

 わたしは意地でやってますので、誰に何を言われようと簡単には変わらないし、結局、ずーっと言ってることは、「上流はSQLを分かっている必要がある」(下流からのボトムアップは効かない)ということです。

 一般に言われている、コーディングレベルでのSQLを使うかどうかの話をしているつもりはありません。

 上流の技術者たちは言うのですよ。業務(理解)が大事だ、顧客に何を提案できるかが大事だ、言語なんてどうでもいいってね。

 ごもっともです。えぇ、わたしもそう思っとります!

 ところが、SQLは違うのです。SQLを知らないと顧客に対して話す内容が変わり、提案するソリューションが変わるから、上流技術者がSQLを高いレベルで習得するべきと繰り返しています。理由は前回書いたとおりです

 上流は本当にあらゆる選択肢を持つべきで、「君ら肝心な選択肢を持ってないよ!」ってそれだけを言い続けているのです。

 わたしはPOA、DOA、OOAの全部で考えています。なぜかというと、現実のプロジェクトには、どのパターンで考える人も混在しているからです。

 どれか1つで考えると噛み合わない。ですから、「この人はPOAで考えたイメージ(最終形)をもって話しているな~」と思えばそのイメージを徐々に軌道修正していかねばなりません。

 全部で考えて、相手に合わせながら、自分の考えた最終形に近づけるように交渉するわけですが、前回も書いたけれど、どのパターンで考えていても、初期の初期は同じですから、顧客に話す内容に大差はない。差があったら世の中のプロジェクトは終わるわけがないと思う(最上流はほとんどCOBOLerで、POAかDOAですよ)。

 この軌道修正は時間を掛けられるのです。わたしはどれがベストって決めれないと思っていますので、ゴールを「顧客に対して何を提供するか」に設定して、それぞれがいろんなアプローチで考えることは決して間違ってないと思いますし、この交渉は時間がかかるけれど、あってよいと考えています。

 しかし、一瞬で決まって後からどうしようもないのが、「SQL」と「WEBシステムにするか」なのです(他にもあるけれど、一般的なものね)。「WEBシステムにするか」は莫大な金を掛けてフレームワークを作ったとか、いろいろと政治的なことで決め打ちされていることも多いから、仕方がない状況もありますけれどね。

 セキュリティやインフラなどなどはスキルが足りてないことを認識しやすいし、専門家に振れます。しかし、SQLは業務ロジックそのもので、いわゆる上流の技術者と呼ばれる人たちは、自分は業務分析(業務ロジック)だけは一流のプロフェッショナルと思っているから、結果的に足りてないスキルで判断してしまうのです。

 上流は誰からも指導されないから、自分たちの基準が最高値で、それ以上はないのです。つまりは、わたしが話している内容は、今まで、検討も検証もされてない内容で、上流と呼ばれている人たちが、散々つぶし続けてきた内容です。

 守秘義務もあっていちいち実例は挙げれないけれど、これぐらいの演習問題ができなければ、本当に上流の重要な一瞬で、あらぬ方向の話をしている。演習問題ができないのなら、今まで気づいてないだけで、大きなミスを絶対にやってます(反論待ってますよ!)。ミスかどうかも上流が決めているので、正確にはミスではないとも言えますけどね。

 現実のプロジェクトで、わたしが思っているレベルでSQLができる人は、DBの専門家として存在して、火が吹いてから呼ばれるというおかしな状況にある。その専門家は、1から作り直しても数分の1の工数でやってしまうのですけど、それを見ても、自分もできるようになろうとは思わないのかねぇ~。

 でね、費用対効果の問題なのです。これぐらいのスキルをつけるのは簡単なことです。あれも、これも必要って議論ではぐらかされるのは、毎度のことながら困ったものです。

 わたしはSQLは必須(必要条件)と言ってるわけで、十分条件とはいってない。当然、他に必要なスキルは数多くありますよ。他のことは、また、別で考えたらよいのでしょうけれど、顧客に対する便益に大変な影響があるものを放置して、なぜ、他のものがそれほど気になるのか、わたしには分からない。

 少なくとも、赤点を指摘されて、他の科目が……って言ってるのと同じです。まず、赤点があったら失格じゃないですか。「VB6と.NET」にしてもそうでしたが、小さいことを気にしすぎ、まず、大きいところから正そうよ。

 みんな、よっぽどSQLが嫌いなのか、過去の自分を否定したくないのか、効果はないと思われているのか、思考力がレンジアウトしているのか……。まぁ、WEB系で本当にSQLの部分が単純なシステムでは関係ないこともあるけどね。

 なぜ変われないのか分からないので、「こんなのできなくても俺様は上流だ!」という反論をぜひ聞きたい。

 それはともかく、幸か不幸か、現在は大変な不況ですから、上流を担ってきた大企業も、下請けでやってきた中小企業も変革が求められています。

 中小企業にとっては下克上の大チャンスなわけで、「自分たちは、もしかして騙されてきたのではないか?」と思うユーザの皆様の目に届けばいいな、とゲリラをやっているわけです。

 こう言ってはなんですが、お客様が詐欺師に大金を払うから、業界がいつまでたってもアホなままなのです。

 ……素直になれば、COBOLerがSQLを覚えたら、本当に最強の戦士になります。

 内部・外部と分けて、COBOLerがSQLを覚えて内部を担当し、「SQLなんて」という人に外部を担当してもらえばいいのですよ。内部処理と外部処理(UI)の間にインピーダンスミスマッチがあるのはハッキリしてるのですから担当を分けりゃいいのに、なんで上流と呼ばれる人が内部も外部も設計しようと、下流と呼ばれる人が内部も外部も実装するのでしょうね。

 ちなみに、演習問題が会話のペースで、「ここを副問合せにして、ああして、こうして…… A4で1枚弱(4、50行)か……」って打合せの最中にできるようになるとです。オブジェクト指向でもCOBOLでも何でもよいけれど、他の人が考えていることも、通ってきた道だから当然分かります。

 その後の打合せがどれだけ苦痛か、「耐震偽装とどこが違うのか」って身内を潰しにいくか、我慢するかの決断を一瞬でやらないといけないのです。

 我慢するときは、大概苦痛なので、後の工程は誰かに振るけど、レビューしてくださいって言われても、腹立って見てられないし……。

 それじゃ、ダメなんですけどね……。

◇    ◇    ◇    ◇

 急ですが、東京でセミナーをやることになりました。わたしは、そんなに怖い人じゃないですよ(笑)。

 日程は7月16、17日、7月18、19日の2日コース2回です。

 内容は、文法の細かな説明ではなく、これはSQLで処理できるかどうか、パフォーマンスはどれぐらいになるか、といったことが会話のペースで理解できることを目標にしています。後はリファレンスを見たら書けるでしょう。

 PCのあるセミナールームを使おうと考えていたのですが、貸し会議室でSQLServer 2005 Express Edition以上をノートPCをご持参いただく形にしました。(レンタルは2台まで可能です) 

 大阪では、数人で弊社の小汚い事務所で土日に開催します。7月11日12日は開催確定です。

 価格は、次回から個人で受けられる方と、会社から受けられる方(領収書の宛名が個人か法人かで)と分けたいと思います。わたしが神なら、神の価格になるので普通人より安い今がチャンスです(笑)。詳しくはメールにて info@g1sys.co.jp

Comment(28)

コメント

MR.CBR

いつも楽しく読んでます。
私の関心事を直球で表現して頂いているので至る所で共感しています。
セミナーいきたいですが、東京は無理そうです…。残念!

ちなみに私は現在、中小企業診断士という資格の勉強をしているのですが、
その教科の中に「経営情報システム」があります。そこでも毎年必ずSQLの
問題が出題されています。あまりに簡単なので得点源ですが(笑)。

私の仕事(社内SE)で扱う大半はSQL(PL/SQL込み)、Excel、VBです。
SQLは超重要であり、現場の要望を聞きながらSQLをイメージして、工数
を見積もっています。(生島様と一緒です)
あと、私の中では開発言語やPOA、OOAはあまり重要ではなく、
データとSQLが超重要です。なぜかというと、データは現場で使えますが、
オブジェクトは現場では使えないからです。
(BIを使って現場の方が作っているクエリー群を見ると壮観ですよ(笑)。)

最後に私はあまり上流の方と接する機会はないのですが、そんなにSQLを
把握されていない方ばかりなのでしょうか?

SQLerさん、ども。

東京の方ですか、なかなか最小催行人員がそろいそうもないのですが……。

MR.CBRさん、ども。

中小企業診断士ですか、あれはなかなか難しいですね。
何人も知ってますけれど、資格を転職の材料などに使っている人ではなく、それを仕事にしている人は、人脈を持っているか、書籍やその他の権威付けのある仕事をしているか、というのがその後の成功を決めますね。

士業は、肉食系(狩猟民族)と草食系(農耕民族)がいて、顧問料を取れる草食系の典型は税理士や社労士、肉食系は行政書士とか、弁理士。
ハイブリッドタイプが弁護士とか……。

中小企業診断士は、顧問料は取れるのですけれど契約期間が半年~数年ですから、弁護士よりも肉食系かな。

ですから、資格だけ(合格するだけ)ではなかなかうまくいかないので、取ってからでもいいのですけど人脈を広げてください。(商工会議所とかの催しに参加するとか案外お勧めです)

何の話や(笑)

上流は、SQLを知らない人もたくさんいますよ。
そういう人が、まかり間違って実装の方まで来ると「サブクエリ禁止」ぐらいではなく、「JOIN禁止」とか言い出すからな~。そういう奴は(中年のオヤジ)ホンマに泣くまで責めますけどね(笑)

まぁ、ピンキリです。

oumi

「そんなにSQLを把握されていない方ばかりなのでしょうか?」
「上流は、SQLを知らない人もたくさんいますよ。」
「サブクエリ禁止」「JOIN禁止」は言わないけど、トリガとプロシジャ禁止はした事がある orz


はっ!?


自分のSQL文の知識・・・
SQL Server の BooksOnline をかろうじて読める程度 orz
ミックさんのページ見ないと複雑なSQL組めない・・
RDBMSとなるとちとうるさいつもり。
一応今は、超上流~上流~下流の技術者のつもり。
社長はやったことないですけど、常務として8年くらいの経験はあるかな。(今は役員を降りてますが。)

SQL文みても雰囲気でまずそうとか、臭いがなんか変だとか、テーブル読む量おおくねぇか?とか、コストがなんかおかしいとか、I/O回数変だとか、メモリあやしいとか、やる事のわりに長さすげぇなとか、そんなことでしか、SQL文のヘボさが判りません・・・
SQLは出来る人に書いてもらってばかり・・・
自分はア-キテクチャとソリューションにしか興味ないかな(^^;

こんな私はSQLヘボなので上流技術者失格です orz
今まで、えらそうにコメントして、ごめん(TT)


PS.MRCBR さんの話は生生しくて良いですね。

oumiさん、ども。

トリガーは微妙ですね。
ログ取り、タイムスタンプにはいいと思うけれど……。
後、テーブル構造が滅茶苦茶まずいときに、次のリプレースまでのしのぎに入れたりはします。

派手に書いてはいるけれど、現場で上流を叩き斬ってばっかりいたら仕事にならないから適当には折れているのですけどね。
歳取るごとに我慢がなくなってきたのは、器の小ささの証明ですな。

私はソリューションに影響が出るからSQLにこだわるだけで、OOPってソリューションに影響でない下流の出来事という認識なのでたいして気にならないのね。上流はSQLで出来るかどうかを判断して、「やれ!」って言えればいいわけで、後は若い人に書いてもらったらいいのでは。

パフォーマンスって、要はスキャンする量(&JOINの仕方)と出力量(ソート)で決まるので、そこが分かれば後は無視していい……。予想なのですから、想像したパフォーマンスの2、3倍で話すし。
上流は骨格の部分で把握すればよいのですけどね。

余談ですが、数年前、とあるプロジェクトで少しSQLを書いたのですけれど、正確なマシンスペックを把握してなかったから、予想したパフォーマンスの2、3倍で話ししたら10倍速かった。

1分ぐらいかかるつもりでクリックしたら……、よそ見している間に終わって、余りの速さに腰を抜かしそうになった。

当時、考え得る最高のマシンの構成だったみたいだけど、「こんなマシンで開発したい」ってつくづく思ったのですが……、今は中小企業でもあのクラスのマシンを扱ってるのです。

そろそろパフォーマンスの問題なんて、なくなってもいいはずなんだけれど、まだ、問題になるところがあるからね。

インドリ

>、OOPってソリューションに影響でない下流の出来事という認識なのでたいして気にならないのね。

これはちょっと・・・
オブジェクト指向分析の存在を忘れていませんか?
あと、パフォーマンスについても、WANにおけるオブジェクト構成はパフォーマンスに多大な影響を与えます。
SQL以外にもパフォーマンスに関する事は多々あります。
ちょっと、SQLを贔屓し過ぎなのでは?

にゃん太郎

はじめまして、生島さん。いつも楽しく(コメントを)拝見させています(笑)

 私は某ソフトハウスで担当製品の最上流をやってます。数年前までは生島さんと同じ経営者でした。そういう意味でいつも「そうだよねぇ」なんて思いながら読んでいます。

 私はそれこそアセンブラからスタートしていろいろな技術や言語を経験しました。当然SQLも。元々はマイコンボードの設計技術者でしたが、負けず嫌いで「出来ません」と言うのが駆け出しの頃から嫌でとにかく新しい事も知らない事も(おい)何とか勉強しながらやって来ました。

 SQLに関しては上流は言うに及ばず、下流の人でも「もっと勉強しろよ」と思う人が多いと感じます(私の周りだけですかね?)どう考えてもSQLをただのデータベース読み書き言語としてしか捉えていないような人が「俺はSQLが出来るんだぁー」って顔してるのを見ると後ろから蹴りたくなります(実際、1回だけあります。もちろん本気ではないですが。だって3万件に満たないデータから条件設定して200件程度を抽出、表示するだけで30秒近く掛かっていたので、つい)

 上流の場合、確かに言語や技術よりは顧客の要望をいかにロジックに落とすかを考えるので生島さんのおっしゃる通り、VB6でも何でも良いと思います。顧客の要望が強ければそれでシステムを作るのもまたプロの仕事だと思います。ボランティアならともかくお金をもらうのですから顧客満足度も大事です。でも、技術の幅が狭いとその判断の基準が少なくなるわけで、そうなると一番不幸なのは顧客と言う事になります。だってマズい仕様に対して反論出来なくて(気づかなくて)結果的に高い費用が掛かるとか、費用だけならまだしも使えないシステムになってしまったりします。

 ただ、危険なのは技術に凝り固まりすぎると全体が見えなくなる危険性もあると思います。費用、メンバー(人数やスキル)、期間、ハード、OS、言語、DBなど、何でも最新、最高であること自体まれで、実際はいろんな制約の中での契約ですから、そこは目をつぶってトレードオフしながらうまく進めて行けるのが上流工程での一番の仕事だと思います(だって、収入無いと生きて行けないし)だからあんまり技術を知らなくてもやっていけるのかも知れません。技術以上にコミュニケーションスキルの方が大事かな、と実感しています。

 人月単位での仕事だと今のような構造になってしまうのは仕方ないかも知れません。単価は安く、高くて技術のある人は最終的にどうにもならなくなってから。会社だって技術あろうがなかろうがお客さん受けが良くて利益が上がるように仕事してくれる人が良いですから。技術が売りでも実は技術は二の次です。

 商売は儲けてなんぼ、です(めっちゃ本音)

oumi

もう全体的に、その通りと思います。(><)b

インドリ

普通商売は「より上を目指して」儲けるのが本懐だと思います。
ですから、技術は本来修得していて当たり前。
料理が出来ない料理人が居ますか?
それにもかかわらず、この業界は「自分の鍛錬不足を棚に置き、お客様を騙して」儲けるので問題だと思います。
これは商売ではなく一種の詐欺です。
エンドユーザはきっとプロだと思って相談しています。
その期待を裏切り、知らない人が対応しているとなれば詐欺としか言いようがありません。
儲ければ何をしてもいいというのは犯罪者の考え方です。
ヒューマンスキルといえば聞こえはいいですが、技術力がなければ口車でエンドユーザを騙しているのと同じです。

saki1208

saki1208です。

まあ、料理なんてのは人類が誕生したときからある訳で...

もちろん、私自身は進んで勉強しているつもりではありますし、やらない人
を擁護するつもりもありませんが、この業界は日々新しいことが生まれます
し、どんどん進んでいます。

それは他の分野に対して歴史が浅いからであり、決まった正解がない(確立さ
れていない)からですよね。今日の正解が明日には間違っているかもしれない
し、今日の間違いは明日正解になっているかもしれない。
これは、相手が変われば同じことが言えます。
# 基本的なことはどこに行っても七割くらいは正解だと思いますが...
# もちろん詐欺まがいは許せませんけど。

ただ、お客様のために現状で何が出来るのか、どうすれば最適解に近づくの
か、より良い品質で少しでも早くニーズにあった物が作れるのか、考えるこ
とを放棄した時点でエンジニアとしての人生が終わるのかなと...

にゃん太郎さん、ども。

おっしゃるとおりなんで、なんというか、人月ビジネスはずーと否定され続けてきたわけで、それが諸悪の根源と言えなくはないけれど……。
人月でやってる人が工数削減に目が向かないのは当たり前ですけどね。

しかし、上流って、一括で請けてることが多いじゃないですか。
彼らは工数が減った方が得なはずで、変わってくれないかなと。

その上で、ホンモノが、ホンモノらしく生き残る業界にしたいなと思っています。

にゃん太郎

にゃん太郎です。

 私もエンジニアなら上流・下流問わず常に上を目指して研鑽すべきだと思いますしそれが当たり前だと思います。ただ、やはりレベルの差(個人差かな)があると思います。誰しも仕事している以上、自分のやってる事にプライドもあるでしょうし、それこそベストを尽くしてるとは思います(いや、思いたい)

 料理に例えるのもどうかと思いますが(料理人に限らず、いい大人なら自分が食べるものぐらい「料理」できるでしょうし)どんな仕事でも詐欺ならば訴えられますし、ダメなら(料理に例えるなら不味いとか)淘汰されて行きます。

 エンジニアの技術至上主義は自分が基準の自己満足でしかなく、本来はステークホルダーが納得する仕事を提供するのがプロのエンジニアだと思います。口先だけなのは確かにどうかと思いますが、普通の顧客(特に力を持った人)を納得させるには技術論だけでは無理があります。技術を分かりやすく理解させ自分たちに有利な方向でプロジェクトを進める事は技術と同じぐらいぐらい大切なスキルです。それが分からないと苦労するのは下流のエンジニアです。上流・下流問わず本当のエンジニアとは決められた制約の中で自分のスキルとパフォーマンスを最大限発揮できる人であり、技術の新しい・古い、どの言語や技術が優れているかのうんちくを垂れる事では決してないと思います。だからパフォーマンスの向上に重要なSQLをもっと学ぶべきというのはその通りだと思いますし、そういう意味ではJavaだろうがPHPだろうがASP.NETだろうがそんな事は些細な事だと思います。

 経営側に近づけば近づくほどこの仕事は矛盾だらけです。会社を維持するだけの費用を考えたりすると溜息ばかりです(特に零細企業は)どんなプロジェクトも1人では行えません。そう考えると顧客、メンバー両方がなるべく幸せになるように全員で努力する事がまぁ、理想だと思います。若造の頃に一度、上司を理詰めで追い詰めてうつ病で入院させた事があるのですが(今なら傷害罪ものでしょうか)技術だけではお客様は喜びませんしメンバーもどんどん離脱します。例え正論でも言い過ぎるとそれはプロジェクトから見たら「障害」以外何物でもありません。それを詐欺と言うなら詐欺だらけですわ。

 エンジニアなら上流だろうが下流だろうが自分に与えられた環境の中で最大限の努力をする事が本懐だと思いますし、少なくとも私はそうしてきたつもりです。

 どうしても技術論で顧客を幸せに出来ると思うならボランティアでやって下さい。キレイ事だけではプロジェクトも仕事も進みません。

 いや、技術を習得する事は大切ですし勉強する事は当たり前だと思います。それが顧客に対しても最良の提案が出来る近道なのは間違いないですから。でも、コミュニケーションスキルもおろそかにするならそれは社会人としてはどうかと。キツい言い方すればエンジニアとしては優秀でもプロジェクトメンバーとしてはそこまでかなと思います。

 そういう意味では(私個人の感想ですが)saki1208さんの意見は正論でインドリさんはキレイごと言い過ぎです(悪い事ではないですよ、念のため)

(だから、技術もコミュニケーションスキルも私は同じぐらい大事だと思います。少し趣旨がそれた気もしますが)

大体、皆さんがおっしゃるとおりで、OOPは上流に関係ないでしょう。
上流でそんなことにこだわってたら見誤ります。

POAで考えても7割は合ってますよ。
で、上流の担当する部分は7割もないので、ほとんど変わりないのです。
誰しも完璧じゃないから、3割間違っているところは、下流からのボトムアップで直せばいいじゃないですか。

で、私が言ってるのは「ボトムアップの余地を潰すのは勘弁してよ」ってことで、SQLをざっくりでも分からないというのは、SQLは他と違いすぎるので芽を潰してしまう。

それは進化を止めちゃうでしょってことだけなんです。
7割合ってるのに、下流で止めれないのは、下流も悪いですよ。

分かってないのに下流にまで口出す上流が居るなら、それも悪いけどね。

で、上流下流という分け方を変えたいというのもあるのですけどね……

にゃん太郎

生島さん、どうもです。

 すいません、基本的に長いものに巻かれています(苦笑)ただ、ソフトハウスは市場調査→計画なのでSIerとは事情が異なりますよね。私の場合、どんな言語だろうといくらで売ろうとどんな機能を実装しようと権限がありますが、その分、売れなかったりクレームが多いと責任を取らされます。そういう意味では技術がないとつらい立場とも言えます。

 この業界を変えるのはたやすくないでしょうが、頑張って下さい。私も頑張ります。

にゃん太郎さん、こんばんは。

おっしゃるとおりで、多少、耳が痛いかな(苦笑)

私の場合、自分を抑えて80点を取ることは可能なのに、誰と衝突しようと100点を目指すために社長になったわけで、それで衝突した結果、80点以上を取れているかというと取れていません。

だったら、衝突しないで80点を取る道を選ぶ方が圧倒的に賢いのです。
ここでアホなことを書く必要もない。

でも、衝突することを恐れる人ばかりでは、何事も楽な方にいきますしね。

まぁ、私は討ち死にするけれど、死に様をみんな見やがれ!って感じですかね(笑)

にゃん太郎さん

ちょっとテレコになったみたいですけど(笑)同じ時間に書いてたのね。

業界が変わるわけがないのですが、がんばります。

インドリ

生島さんによると上流技術者がやっている事はSQLなどの技術から逃げて、コミュニケーション(口)を磨くという事なのです。
ですから綺麗事ではなくて本当に詐欺師だと思います。
鍛錬するのが嫌ならこの業界から去ればいいのです。
しかし、どの業界も鍛錬が要求されます。
この業界の人はいいわけばかりしていますが、他業種でそんな事言えば笑われます。
自分の腕を磨かず、口を磨く人は詐欺師としか言いようがないでしょ?

にゃん太郎

インドリさんの意見は多少言い過ぎと言うか過激とは思いますが至極当たり前というか、その通りだと思います。いや、掛け値無しで本当に。ただ、間違えていけないと常々思っているのは我々は顧客に対して技術を売っているのではなく、ソリューション(サービス)を売っているのだと思っています。

 ちょっと前に三菱東京UFJ銀行がシステム統合を行いましたが、これを旧東京三菱のシステムか旧UFJのシステムのどちらに片寄せするかで最終的にトップの決断で旧UFJのシステムより劣っていると言われた旧東京三菱のシステムに片寄せしました。この記事はいろいろなところで目にしましたし、私も昔旧UFJのシステム開発に参加していた事もあったのでいろいろ考えさせられましたが、顧客にとっては技術の優劣だけが問題ではないという良い例だと思います。

 SQLに限らないとは思いますが、生島さんは少なくても後からどうにもならない部分だけはしっかりスキルを磨いて初めから最良の提案をしようよ、とおっしゃってるだけだと私は解釈してます。最初の段階から細かい技術的な事まで言い出すとキリがないですし、そもそも重要なステークホルダーはそこを重要視してません。むしろ「そんな細かい事はどうでもいい」と言われてしまい、単なる自分のスキルの押し売りになってしまいます。そういう意味で私は技術もコミュニケーションスキルもバランス良く磨くのがエンジニアの理想だと思っています。

 ですから口先だけが良いとは決して言いませんが、技術だけを追求してもそれは自己満足以外の何者でもないのかなと思います。「顧客満足=最新技術」ではありませんから。くどいようですが、顧客は最新技術を求めているのではなく、使い勝手、パフォーマンス、そしてこれが一番大事と思いますが完成後の運用・メンテナンスまでトータルで自分たちが望むシステムが欲しいと願っています。技術はそのための最大公約数であって、絶対ではないのです。そもそも基盤システムも含めて何が最良かは決してひとつではないと思います。これを言い訳と捉えるならそれはそれはあまりに自分よがりの考えでしかないと思います。


> 上流技術者がやっている事はSQLなどの技術から逃げて、コミュニケーション(口)を
> 磨くという事なのです。

 これはマズと思いますが、生島さんは(私も)そうは一言も言ってませんよ。上流でスキルがあればあるほど悩む人が多いのもまた事実で、プロジェクトって基本的に顧客に対してベストなソリューションを提供するためにあるはずなので、上流の人はメンバーでスキルがある人、足りなさそうな人、顧客のシステム担当者のレベルなどを勘案しながら進めて行かなければならないので、いろいろ技術以外で悩む事ってたくさんあります(本当に)技術だけを突き詰めても研究者やボランティアならともかく、仕事なら与えられた環境下で最大のパフォーマンスを発揮してこそ本物のプロだと思います。

 いや、ここまで言っておいてなんですが、インドリさんの意見を真っ向から否定する気はないですよ、本当に。ただ、コミュニケーションスキル「だけ」を磨くのは言語同断でしょうが、コミュニケーションスキル「も」磨くのは大事だと思います。社会人と言うか、人として。

 あれ、本題からそれてないかい?(悪いのは私ですが...すんません)

にゃん太郎さん、ありがとうございます。

基本的に上流って口だけと取られるかもしれませんが、現実問題、何を話すか、どう調整するかが一番重要なのです。だから、「口だけ」とか言われてもこまるわな~。

ただ、SQLでちゃんとやったら速いというのは昔から言われているけれど、最初からSQLを視野に入れる人は少ない。

やって見て遅かったら、そのときに考え直そう、専門家呼んで直してもらおう。
という考え方が多い。

これって、例えば、Cとアセンブラの関係と同じかというと違うんです。

Cとアセンブラで工数が逆転することはないので、工数とパフォーマンスでトレードオフがあるけれど、SQLと他ではトレードオフしているのは技術者の好き嫌いしかない。だったら、時間がかかっても変わる方向で考えましょうということです。

現場では、最終的に折れなくては仕方がないので、こんなところで愚痴っているわけです(苦笑)

インドリ

私は全工程担当する事が多いので、コミュニケーション技術が必要なのは知っていますし、ソリューションを提供してきていますのでそこも把握しています。
というか、ソリューションを提供できない技術なんて机上の空論と同じレベルです。
その上で、「無知なのは言語道断」だといっています。
お客様にとってSQLなどの諸技術は知っていて当たり前なのです。
料理屋の看板があったら料理人が利用理を知らないとは思わないのと同じ原理です。
しかし、上流は○○なんて必要ないと逃げ言葉が目立ちます。
コミュニケーションは言うまでもなく当然の事、技術修得も当然の事です。
なんというか、上を目指すのではなく、下を目指す詐欺師的行為が許せないのです。
生涯その職業に身をささげる気がない人はさっさと業界を去って欲しいものです。
それに私の姿勢は温故知新です。
アセンブラ時代の技術から最新技術まで学んでいます。
それは職業人として当たり前の事です。
そもそも、年齢と共に技術力UPしない技術者なんて経営者にとってもお客様にとっても要らないはずです。
あまりに甘すぎます。
さぼりつつお金が欲しいなんて発想が既に犯罪者です。
無知なのと知っていて選択するのとでは大違いです。

インドリ

済みません誤字がありました。

誤:利用理を知らないとは思わないのと同じ原理です。
正:料理を知らないとは思わないのと同じ原理です。

にゃん太郎

(なんか、爆弾を落としてる気はしますが...)

> そもそも、年齢と共に技術力UPしない技術者なんて経営者にとってもお客様にとって
> も要らないはずです。

 本音を言えば、お客様は自分たちが希望するもの(対費用効果が高いもの、かな?)が出来上がるレベルがあればそれでよく、経営者に至ってはプロジェクトをスムーズに進めて利益を出してくれればそれでよしです。そりゃ、自己研鑽してレベルアップを望むでしょうが、企業規模が大きくなればなるほど技術力アップだよりも管理するスキルの向上を求めてきます。

 私が生島さんとは違うなと思うのは私は大勢が「これでいいんじゃない?」と言えば例えそれが「それよりはこっちの方がいいんじゃね?」と思ってもあまり言わない事です。もちろん、自分のポジションにもよりますが特にステークホルダーが納得すればまずそれに従います。無論、いつまでも「こっちの方が...」なんて思わずすぱっと切り替えます(その場合、自分にかなり責任があるときはさすがに反論しますが)理由は単純で細かい事に目くじら立てても仕方ないと思っているからです。これはおそらく生島さんの言う賢いやり方であり、インドリさんの言う詐欺的なエンジニアだと思われます。

 業界の構造が人月、そして2次請け、3次請けが当たり前の構造で(今はどうかな?)そのしわ寄せが下請けに行けば行くほど顕著になる構造です。個人請けならともかく、会社だと最低でもエンジニアに払う給料の倍は単価がないとやっていけません。折からの不況で予算も厳しくなり、仕事を取るには将来も見据えて低価格に抑えざるを得ないケースもあると思います。そういう中で出来るだけ利益を確保するにはどうしても単価の安い経験の浅いエンジニアを送り込む必要が出てきます。この構造じゃいかんとは思いますがどうにもならない現実でもあります。増税しても国の借金は減らないのと同じで、工数減らしたからと言って価格や単価が上がる事もないのです(悲しいですが)

> なんというか、上を目指すのではなく、下を目指す詐欺師的行為が許せないのです。
> 生涯その職業に身をささげる気がない人はさっさと業界を去って欲しいものです。

 経営者(だった)の立場から言えばこう言えるインドリさんは幸せかなと思います。私はとてもじゃないですが「許せない」とまでは言い切れません(なんとかしようよ、とは思いますが)他のコメントでも書きましたが業界にいる人の大勢は職業としてこの業界を選び(上流にいればいるほどそう感じます)技術的なスキルアップも自分に関係ある分野にとどまっています。インドリさん流に言えば生涯その職業に身までささげる気なんて無い人がほとんどでしょう(実は私も)そう言う中で仕事をしていく訳ですから上を目指していないであろうエンジニアもなんとか使えるように考えながら進めるのはある意味仕方ないと思います。

 大企業になればなるほど年齢や在籍年数が高くなれば「リーダー研修」だの「○長研修」だのいわいる管理職的なスキルを求められます。そういう人が上流にいるとそりゃ技術よりもヒューマンスキルの方が大事なんでしょうね、きっと。私は嫌ですが。

 私はいろんな技術を学ぶのは大好きですが、仕事とそれは切り離しています。前にも言いましたが、押し売りはする気はないのでその場の空気で最大公約数を常に求めていくようにしてます。顧客をないがしろにする事は絶対ないですが、メンバーに対しても最大限の配慮をします。仕事は知識ではなく知恵ですから(知識があっての話ですが)だから昔から顧客からの指名やリピーターが多いと思っています(転職した今でも昔のお客様の仕事を抱えています)

 何度も言いますが、技術的に上を目指すのはどの工程であれ当たり前だと思います。何一つ間違っていません。ただ、仕事の上においては個人的にそれに固執してすべての技術者がそうあるべきと言う事には賛成しません。適正も個性も育ちも考え方も違う人たちと仕事をする訳ですからやはり顧客にとって一番最良のものが提供できればそれは二の次だと思います。許せなければ1人で営業して請け負って作業し、納品すれば良いだけの事であり、さっさと業界を去って欲しいというのは奢り以外何者でもないと思います。インドリさんだってどんな技術も100%完璧に知り尽くしてる訳ではないでしょう?そう考えると同じ案件でも考えた人の数だけ方法があり、どれが一番なのかは技術が基準ではなく、どれが一番顧客のニーズ(希望)に合うかだけなんですよ。

 業界の構造も問題ですが、上流は下流を見下して下流は上流に技術が足りないとバカにする風潮がある事も問題に思います。どの工程もそれなりの悩みはあり自分の考えとどう折り合い付けて作業を行うかだと思います。スキルの高い・低いはあっても今よりも向上したいと思う人はたくさんいると思います。やる気と状況(いろいろな作業で忙殺されるなど)が伴わないだけですから。

 私はスキルが低い人や経験の浅いエンジニアがメンバーにいる場合、いかにして上のレベルまで引き上げてやるかをまず考えます。さすがに広く浅くは無理なので業務に特化した狭い部分ですが。やる気がなければ業界を去れと言う(思う)のはかんたんで、人間ですからやる気を起こさせてレベルを引き上げる事を考えるのは先輩エンジニアとしての責務だと思います。ぶっちゃけて言えばそうすれば自分もラクになるので(さぼりたい訳ではないですよ、マジで)

 こういうスタンスでやってきて感謝されても詐欺師とは言われた事はないです。何回かは怒らせた事はありますけど。だからインドリさんの言わんとする事は分かりますが違和感は感じます。

 私は下を目指したりスキルアップを望んでいないエンジニアはいないと思ってます。誰しも上を目指し自分の責任を果たそうと頑張っていると思います。それが多少方向がズレたSQLをあまり理解していない上流メンバーであってもです。断罪するのはラクですが、スキルが足りないと思えば上がるようにうまい事もって行くのが結果的に自分も含めてみんな幸せになる近道かなと思うのですが。

 あとついでに...

 私のコメント、誤字脱字など多々あって恥ずかしいですが意味は分かってもらえると(勝手に)信じているのでよろしくお願いします(チェックは一応してますけど)こういう所がいかんのかねぇ。ま、本筋さえ外さなければそれで良いと考える詐欺的なエンジニアだからかも知れませんのでご容赦を。

にゃん太郎さん、ども。

弊社は、現状で正社員は7名。
いわゆる人月で出てるのは2名、1名はエンドユーザ直で弊社が作ったシステムの保守でネクストを狙っています。1名は大手の2次請で戻したいのですが、顧客に気に入られすぎて離してくれない。

あとは受託でやってます。
大手の下請けも当然やりますけれど、サブシステム単位でお願いすることにしている。経営状態はご想像が付くと思うけれど、大失敗してから、ずーと苦しいけれどボチボチ取り戻し、年々マシにはなってきています。

何がいいたいかというと、ちゃんとスキルをつけて生産性が上がれば中小企業であっても、人月でやったら損なのです。

という当たり前の状況は、努力次第で作れるのです。

世の中に出回っている案件のPG単価なんて、50万どころか40万切ってる。
このまま人月でやってたら、弊社より大きく安定していた会社でも、弊社より厳しい状態になるところも出てくるかも。

変わるなら、今、チャンスなんですけどね。

インドリ

みんなの言う事も一理あると思いますが、生島さんの記事を読んでいるとSQLすら出来ない人が多いとの事。
DOAをしているのにSQLを全く知らないなんて酷いレベルです。
私は全てを一人で極めろと言ってるのではありません。
上流は大勢要るにも関わらず、SQLを知らない人の方が圧倒的に多いということに憤りを感じます。
※大勢要るのですから分担して学ぶ事は出来るはずです。
データベースを知らないでDOA?余りにも酷すぎる・・・
大規模開発の為にOOAが考え出されたのにも関わらず、相変わらずPOAとDOAを死守し、おまけにSQLすら知らないと来れば仕事しているのか疑問です。
私が言っているのは「あまりに酷くない?本当に仕事しているの?丸投げしているんじゃないの?」という事です。
経営者もお客もお金を騙し取られているのでは?
まともな人は一刻も早くさっさとSQLを学ぶべきですね。
そして、早くOOAが出来るようになって欲しいです。
そうしないとデスマーチは永遠になくならないでしょう。

oumi

まぁ、インドリさんの言う事は正論だし、技術者ならそうあってしかるべきってことで問題ないのだけど。
現実に照らし合わせると「田舎の凄腕の商売下手な職人」って感じなんだわ。

例えば、
>私は全工程担当する事が多いので、コミュニケーション技術が必要なのは知っていますし、ソリューションを提供してきていますのでそこも把握しています。

これはとても大事なこと。自信も持っていい。そういう経験できない人の方が多いので、これは幸せな、ある意味恵まれている。
でも反面、その程度の経験って思われる事もあるんだ。その程度のシステム?とかね。ようするに井の中の蛙だろ?なんて思われるのね。
なので、賢い人は、あまりこういったことを公の場では言わないのですよ。

全てそういう感じなんだな。わかるかなぁ・・・
わかると大人なんだけどなぁ・・・「大人になりたくなぃとかいわなぁぃの」(姫風に)
私の目の前で、デスマがOOA知らないせいだなんて言う人いたらけちょんけちょんにするのに・・・
あっ、よかったら Tech Ed 2009 で会って盛り上がりますか?
なんか、メント向かって話したら、みなさんがどんな人なのか興味がわいてきました。

にゃん太郎

生島さん、こんにちわ。

あんまり長いのでここでは最後にします。

 なんか自分のコメント読んでると「別にスキルなんか無くてもいいじゃん。お客様さえ納得してれば(させれば)」と読めますね。うーん、明らかにズレてるわ。これじゃほんまに詐欺でんがな。そうじゃなくてただ自分と比較してスキルが無いのはある意味仕方ないかなと。その分自分が頑張ればいいだけと考えてますが、実際問題そういう奴が自分よりたくさんの給料(報酬)もらっていたと分かったらそれこそ鬼のように詰めてやります。

 人月作業は結局いろいろいちゃもんつけられて単価が上がらないですよね。SEですらPGとそう変わらないですし。我慢比べになってると思います。以前在籍した会社では受託という名目の派遣でしたが(良くて2次、だいたい4次程度)2ヶ月待機(派遣先がない)すると給与を半分にされました。しかも社員なのに給与は末締め翌月25日払い。つまり新入社員は4月1日に入社すると初月給は5月25日になります。それこそ個人請けですがな。ボーナスは10万に満たなかったけどあるだけマシかな。今はどうなっているかわかりませんが、辞める時は社員の半数近くが待機でした(長い人は半年ぐらい)こういう環境だと転職か他の業種に移った方が良いように思います。

 私の会社の方は残った役員に会社をまかせ(ソフトウェア関係の仕事はもうしてませんが)借金を整理、折半する事で合意。あと4年半ぐらいあります(涙)そういう意味では生島さんはすごいと尊敬します。

 インドリさんに関しても嫌いじゃなくて(自分のコメント読んでると明らかにそう思える)むしろこれだけ技術的にまっすぐきちんと考えているので冗談抜きで尊敬してます。表現は「過激やなぁ」と思いますが、さすがに実際の職場でこういう事を言ってるとは思ってないので逆にこういう場ではそれぐらいがいいかも知れません。

 まぁ、この仕事に身をささげる覚悟まではあまりなく今よりラクで儲かる仕事があればこの仕事は好きですが未練はあまりないです。優先順位が職種よりは収入の方が上ですから。ただ、何でもいい訳ではありません。例えば私は電気工事の資格も持っているのでそういう仕事でも儲かれば...なんて思います(実際、サーバー導入時にお客様からサーバー室作るから電気屋紹介してと言われて自分でやった事があります)それこそジャンボ宝くじやtotoとかで何億って当たったら速攻で辞めそうです(笑)ま、好きなのもまた事実なのでそう言う時は趣味かな。なんにせよ家族を養う必要もあるので今は努力して頑張るのみです。

 こういう話題は議論したらキリがないですね。

インドリ

いやぁ、済みません。ちょっと表現がオーバー過ぎたかな?
私は数億円規模までのプロジェクトしかやった事ありません。
そんな私が言うのもなんですが、兎に角、SQLは覚えておこうよって事ですね。
そして、なるべくOOAもやって欲しいな。
下請けする方としては大変なんですよ。
実装言語はオブジェクト指向言語なんですからね。
オブジェクト指向分析、オブジェクト指向設計、オブジェクト指向プログラミングは三位一体だから、ちゃんと分析してくれないと・・・
おまけにSQL思考抜きのDOAなんていったらもぅ・・・
ソフトウェア工学を学んでいれば大規模ほどOOAが有効なのは知っていると思います。
そうでなければソフトウェア工学の進歩って何なのってことになります。
兎に角、上流ほど勉強して欲しいです。
司令官がしっかりしてくれないとこちらとしてはどうすることも出来ません。
という事で本当にきりがないのでお終いにします。

コメントを投稿する