【 ここから本文 】

ナレッジ・マネジメント

ソーシャルブックマークに登録 : Yahoo!ブックマークに登録 はてなブックマークに登録 del.icio.usに登録 newsing it!に登録 Buzzurlにブックマーク livedoorクリップに登録 Slashdotにタレコむ イザ!ブックマークに登録 Twitterでつぶやく
print 印刷用ページの表示


【連載】
新時代のITキャリア【システム開発編】

第6回 「上流プログラマー」

(2007年06月01日)

IT業界では常に新しい技術が誕生している。そしてそれに伴いさまざまな職種や役職が誕生している。本連載では、IT業界の職種を取り上げ、その仕事内容や必要とされる能力、労働条件や待遇といったものを紹介していくことにしたい。今回は前回から一歩進んで「上流プログラマー」を取り上げる。前回の「下流プログラマー」と何が違うのか、しっかりと把握してほしい。

横山哲也
グローバル ナレッジ ネットワーク、マイクロソフトMVP

【職務概要】

 前回も触れたとおり、IT業界ではコンピュータのハードウェアに近い方を「下流」、ビジネスに近い方を「上流」と呼ぶ。そして、上流工程で作成される仕様書は、「ビジネス要求を指定した文書」という意味で「要求仕様書」と呼ばれている。

 上流プログラマーの仕事は、要求仕様書で要求された機能をどうやって実現するかを考え、どのような技術を使って実装するかを考えることである。

 その結果は「詳細仕様書」としてまとめられ、下流プログラマーに渡される。つまり、上流プログラマーは、ビジネス要件をまとめた仕様書と、実際に動作するプログラムの“ギャップ”を埋めるのが主な職務である。詳細仕様は次回取り上げるシステム・エンジニア(SE)が作成することもあるが、その場合でも上流プログラマーの協力は不可欠だ。

【存在意義】

 上流プログラマーは、下流プログラマーに比べて仕事の自由度が高い。上流プログラマーの判断次第でプロジェクトの成否が決まることも珍しくない。

 上流プログラマーに渡される要求仕様書は、ビジネスを実現するものである。そのため、IT技術に関する具体的な内容や、利用可能なハードウェア要件などは指定されていないのが普通だ。

 上流プログラマーは、要求仕様書に従って最適な手法や技術を選択しなければならない。そこが“腕の見せ所”となるのだ。不適切なデータ構造やアルゴリズムを選択してしまうと10倍から100倍の性能差が出ることも珍しくない。いくらコンピュータの性能が向上したとはいえ、100倍の差を埋めるのは難しい。

 例えば、データの並べ替え(ソート)を行う必要があるとしよう。ソートは与えられたデータの性質によって、最適なアルゴリズムが異なる。例えば、クイックソートは高速で広く使われているが、すでにソート済みのデータに対して再ソートを行えば、他のソート・アルゴリズムよりも遅くなってしまう。よく考えず、何にでもクイックソートを使うようでは上流プログラマー失格である。

【必要な経験/スキル】

 上流プログラマーは、複数の技術の中から最適なものを選択することが求められる。そのため、下流プログラマーのスキルを持つことは不可欠だ。ただし、現在では上流と下流の区別があいまいになっており、「(自分には)下流プログラマーのスキルはありません」と言う上流プログラマーは皆無と言ってよい。

 上流プログラマーはIT技術全般に広く精通しているだけでなく、以下のようなスキルや知識も必要だ。

  • 古典的なIT技術の知識 1970年代には多くのアルゴリズムが提案され、今でも広く使われているものが多い。メモリやディスク容量が潤沢に使える現代では適切とは言えない技術もあるが、知識としては知っておくべきである。
  • 最新のIT技術の知識 Webサービスやグリッド・コンピューティングなどの新しい技術についても概要を理解し、その動向を知っておく必要がある。
  • 論理的思考能力 要求仕様書を読んで理解する能力は、下流プログラマー以上に重要である。
  • 読解力と文章力 要求仕様書を読み取り、詳細仕様書に落とし込むのはSEと上流プログラマーの仕事である。

【適した人材】

 下流プログラマーと同様、第1に論理的な思考ができる人材。特に自分の考えを文章で表現できる能力は不可欠である。また、下流プログラマーとSEの中間に位置するため、上下関係を含むコミュニケーション能力も重要な要素となる。

【雇用側が求めるべき能力】

 適切な技術を正しく選択し、高いコスト意識を持てる人材。CPUの速度もディスク容量も有限である。技術的な優位性だけではなく、コストを意識し、システムの規模に見合ったプログラムを作成する能力も必要となる。

【採用の決め手となる“究極の質問”】

 「自分でゲーム(またはパズル)を解くプログラムを作ったことがありますか、または作ろうとしたことがありますか」

 気に入ったゲームがあったときに、それを解くプログラムを作ってみようと思う人は上流プログラマー向きである。三目並べでも、クロスワード・パズルでも、何でもいい。単なるじゃんけんゲームでも構わない。

 また、下流プログラマーで紹介した「数独」であれば、「自分で数独を解くプログラムを作ったことが(または作ろうとしたことが)ありますか」という質問でもいいだろう。「数独が好き」というレベルの人は下流プログラマー、さらに一歩踏み込んで「数独を自動的に解くプログラムを作ってみよう」と思うレベルの人は上流プログラマー向きである。

 ただし、チェスや将棋となると、実際に作るのはかなり難しい。完成させなくてもかまわない。作ってみたいと思ったかどうかが重要なのだ。

【年収】

 下流プログラマーよりは上だが、それほど高くない。高い年収を目指すなら、さらに上流工程のエンジニアへの転身を図りたい。ただし、下流プログラマーよりも長く仕事を続けられるので、技術者気質の人はこのレベルにとどまることも多い。

【謝辞】本稿を記述するにあたり、元プログラマーの鈴木和久氏(グローバル ナレッジ ネットワーク)に協力をいただいた。



関連記事

▲ページの先頭へ戻る


注目のリポート/ホワイトペーパー

フレームワーク化されたサプライ・チェーン・プロセスを導入すれば、ビジネス・パフォーマンスはさらに向上する

フレームワーク化されたサプライ・チェーン・プロセスを導入すれば、ビジネス・パフォーマンスはさらに向上する

企業の持続的な成長のためには、サプライ・チェーンの最適化が不可欠

調達から支払いまでのプロセスを“見える化”し、財務サプライチェーンを合理化する

調達から支払いまでのプロセスを“見える化”し、財務サプライチェーンを合理化する

現在のプロセス状況を可視化し、改善ポイントを見つけることがカギ

分散環境におけるファイル管理をいかに効率化するか

分散環境におけるファイル管理をいかに効率化するか

ファイル仮想化、レプリケーションで実現。統合されたデータ管理基盤の構築方法とは?

Windows Server 2008 対応製品(ソフトウェア関連)

SOA/BPM 関連製品

注目のトピック

ワークスタイル革新[New]
業務生産性の向上とワーク・ライフ・バランスの実現を目指して
事業継続マネジメント(BCM/DR)[Update]
万全のBC/DR基盤を構築し企業の信頼を高める
マルチコア・コンピューティング[Update]
ITインフラを最適化しパワーを最大限に生かす
グリーンITの戦略的価値
“環境マネジメント”の視点でITを最適化する
仮想化の“真実”
IT革命を支えるテクノロジー
データセンター革新
次世代ITインフラをいかに構築すべきか
ビジネス・インテリジェンス最新事情
組織と“個”の知的生産性を高める
セキュリティ・マネジメント[戦略と実践]
内外の脅威から企業を守る
Windows Server 2008 World
新世代プラットフォームの実力を探る
コンプライアンス総点検
法令順守の実態を把握し、万全の対策を!
SOAがITを変える
企業はどう備えるべきか
ITIL活用最前線
ITILでビジネスとITを変える
データ・マネジメント
新時代の情報/データ管理基盤を構築するために

Weekly Ranking

集計期間:11/15〜11/21


トピック一覧

ニュース特集

セキュリティ

ソフトウェア&サービス

経営/業務改革

ITマネジメント

データ・マネジメント

プラットフォーム

IT基盤技術

ハードウェア

ネットワーキング

トレンド

IT業界動向


Computerworld Global
米国
英国
中国
ドイツ
オーストラリア
シンガポール
その他の国