2005年11月25日

プログラム=アルゴリズム+データ構造+インターフェース?

Rogue Engineer's Diary / やさぐれ日記より「「アルゴリズム+データ構造=プログラム」? 本当に?」。

面白いネタなので、メモ代わりリンク。

オブジェクト指向がパラダイム変換を伴っていたのは間違いないけど、それを端的に表すシンボルになるかも知れません。
デザインパターンのように、もやもやとした理解や共有知識に名前が与えられることで、我々が明確に知覚できるようになる効果も大きいです。

一方で、「アルゴリズム+データ構造=プログラム」という言葉が、現状に沿わなくなっているにも関わらず、1つの定理であるかのように今もプログラマの間で伝えられていることも注目に値します。

面白い。
posted by 市井賢児 at 2005年11月25日 00:47
| Comment(0) | TrackBack(0) | プログラミング


2005年11月24日

SE の方言

 中国人エンジニアと会話していて、気づいた面白い点があります。

 日本人の中でも、SE だけが使う特異な言い回し、表現の類です。
 我々は違和感なくスルーしてしまうのですが、彼らが引っかかることでヘンだと気づきました。

 例えば「データを全部舐めて確認する」。
 一件づつ漏らさずに確認することを指して「舐める」と言っていますが、変な言葉づかいですよね。
 他にも「つっこむ」「ひっこ抜く」「叩く」など、話し言葉だとどうも頭の悪そうな言葉が出てきます。

 あるいは「ループを回す」というのもありますね。
 While 文や Loop 文は「繰り返し」たり「反復」したりしてるのであって、「回転」しているわけではないです。
 ましてや、あたかも使役形かのように「回す」というのはヘンです。
 他にも、「関数を見に行く」と、処理が他に「遷移」しているにも関わらず、観察するかのような表現を使ったりします。


 口頭では意識せずに出てきてしまう言葉です。
 設計書などには書かないけれど、QA 票などにはつい書いてしまいそうです。

 面白いモンで、フォーマルな教育の場や市販書籍ではまず聞かない言葉なのに、どこのエンジニアに話しても必ず通用しちゃう表現ですね。

  NG ワード一覧としてまとめ、意識に上るようにすれば改善できるかな。
posted by 市井賢児 at 2005年11月24日 00:43
| Comment(2) | TrackBack(0) | SI業界


2005年11月14日

中国人エンジニアとの会話

 最近、オフショア開発にどっぷり関わっています。

 中国人エンジニアとやりとりをうまく回す、いくつかのポイントが見えてきました。

 1つ目は、よく聞くこと。
 コミュニケーションの基礎として、まず相手を理解すること、少なくとも理解する努力を相手に見せることは重要です。
 よく会話はキャッチボールに例えられますが、「うまく投げること」を重視する人と、「うまく受け止めること」を重視する人の2種類がいるように思えます。一般に日本人は受ける側、欧米人は投げる側ですね。中国人も投げる側に分類できると思います。ですから、話を聞くだけだと相手はドンドンしゃべり続けます。こちらから適宜質問を投げたり、相手の言っていることを言葉を変えて表現してみたりして、話の軌道修正をかけながら、じっくり聞きます。

 2つ目は、言いたいことを整理しシンプルにすること。
 大量の言葉を浴びせると、たまたま聞き取れたところだけ理解して全体を理解したつもりになりかねません。なので、ここだけは外してはいけない、というポイントを一言にまとめ、それを繰り返します。周辺や背景の話をしても、必ずそのポイントに話を戻してから会話をしめます。
 コツは、(表現上日本語で長くなっても)英単語2個程度で表現できるようポイントを練ることですかね。 5W1H+α か、Yes/No くらいまで絞り込めると確実に伝わります。

 3つ目は、必要なら言葉以外の手段を使うこと。
 一般に技術用語は英語ですので、用語レベルで苦労することはないでしょう。(稀に通訳がその言葉を知らないために、「実体同士の関係を表した一覧表が欲しい」なんて言われたりもします。ER図の事です)
 同様に、ベン図やカルノー図などはコンピュータサイエンスを学ぶ過程で彼らも身に付けています。これを使わない手はありません。システムやプログラムを表現するためだけでなく、仕事のプライオリティや責任範囲など抽象的な概念を表現する手助けにもなります。

 4つ目は、具体的に話すこと。
 一般則で伝えると、誤解や誤認識が発生しがちです。
 例えば、「工数に照らして、実施困難な条件はテストしなくても構わない」は伝わりませんでした。多くの日本人エンジニアは「ああいうパターンだよな」と頭に浮かぶのですが、外国人エンジニアには伝わらないことがあります。クライアント数など物理的に困難なケースや確率論的にしか発生しないケースなど、具体例を挙げると笑って「それは無理ですね」と理解したようでした。
 一般則的な表現の方が楽なのですが、イメージが湧き易いように具体例を添えないと伝わらないケースがあります。


 およそ1ヶ月間、中国人エンジニアとやりとりしていて気づいたポイントは以上です。

 まだ 10 人程度と話した範囲での私の感想レベルなので自信はないのですがもしかしたら中国人は帰納的な思考の方が得意なのではないかという仮説があります。
 受け取る時だけでなく話す時も例ばかり挙げてきて、私が「つまりこういう事ですか?」と聞くと首を縦に振る、ということが何度もありました。
 単純に言葉の壁と奮闘する中での「もがき」の1つかも知れませんが、もしかしたら有用なヒントになるかも知れません。
posted by 市井賢児 at 2005年11月14日 11:58
| Comment(0) | TrackBack(0) | ビジネススキル


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。