中国のソフトウェア開発現場はこんなにスゴイ:The Rational Edge(2/2 ページ)
The Rational Edgeより:ソフトウェア開発のアウトソーシング契約をめぐり、中国が欧米の強力なライバルになろうとしている。本稿は、中国政府(および同国の大学や企業)がどのように専門家を養成し、中国国内におけるソフトウェア開発手法の改善を進めているのかについて報告する。
◆ 第三者の目
Liu教授の説明を聞いた筆者はコンピュータに向かい、現代中国のソフトウェアエンジニアリング手法を解き明かすほかの指標を探した。すると、筆者の手に余るほどの参考資料が見つかったが、これらを見ていくと、明確な目標を持ち、それを達成するための計画も用意している様子が浮かび上がってきた。
中国政府の5カ年包括計画(ソフトウェア以外の業界も多数含まれる)に組み込まれているプログラムは、豊富な財源援助と支援を受けることができる。現行の5カ年計画(一連のものの中で10期目の計画となる)は今年中に終了するが、主に以下のような目標が掲げられている[注6]。
- 比較的速いスピードを維持しながら経済発展を遂げ、経済改革も進めるとともに、経済の成長、質、そして効率性を高める。これらはどれもが、2010年にGDPを2000年の2倍にする目標の達成に向けた堅牢な土台を築く
- 国営企業で現代的な企業システムを構築し、健全な社会保障システムを確立する
- 環境保護を強化しつつ、雇用機会を拡大し、都市および郊外の生活水準を改善する
- 科学、技術、および教育の発達を促進し、人々の生活水準をさらに高める
この計画は情報技術にも大きく力を入れており、計画の概要にはそのことを示す次のような文章がある。
- 21世紀初めの5〜10年間は、中国経済と社会発展にとって重要な時期だった。さらに、IT業界の急速な発展にも重要な時期だった。国際IT業界や情報技術の急速な発展および厳しい市場競争は、中国のIT業界に貴重な機会をもたらさせる一方で難問も生み出す。
- 中国共産党第15期中央委員会第5回本会議は、高度産業化、工業化、および近代化のカギを握るのが情報化であることを明確に指摘している。よって、中国経済と社会の情報化は最優先すべきである。中国経済と社会の情報化に取り組むことは、近代化構築計画全体の実現に向けた戦略的行動で、情報化による工業化の推進と生産性の迅速な発展の実現を目指している。
- 中国共産党中央委員会が情報化をここまで高く戦略的に位置付けることは今回が全く初めてである。これは、時代の最前線に立つわが国の中央委員会の戦略的に非常に優れた判断である。この判断には、歴史的にも、現実指向としても、深く重要な意味がある。それ故、中国のIT製造業界、通信業界、そしてソフトウェア業界を育成し、中国の経済と社会の情報化を進めることは最優先事項であり、「第10期5カ年計画」における中国信息産業部の重要な使命である。[注7]
筆者がWebで検索をすると、中国のソフトウェアエンジニアリング手法向上を目的とした課程が各大学ですでにどんどん用意されていることが確認できた。あとは、これを可能な限り早急に業界に取り入れることが課題だ。
2001年末、中国の大学システムはソフトウェア工学修士課程(MSE)を設けた。現在、この課程を設けている51の大学は競争が激化しており、各校とも訓練されたソフトウェアエンジニアを業界にどんどん輩出している。2002年には、北京大学だけで1000人以上の学生が同課程に入学している。
これらの課程の効果は次期5カ年計画中に表れるはずだ。簡単に計算すると、少なくとも毎年3万人の中国人大卒者がMSEを取得してソフトウェア業界に入ってくることになる。これには、学士号取得者や職業学校などの専門課程で学んだ多数のプログラマは含まれていない。これらも合わせると、訓練を受けた新入社員の数は10万以上にもなる。2002年の中国は情報技術関連従事者が約25万人足らずだったので、先の数字から計算すると、数年後にはその数が5〜10倍に達することになる。
中国政府はMSEプログラムを次のように説明している。
……ソフトウェア工学修士課程は、大半の大学に設けられているコンピュータやソフトウェアの課程とは異なり、ソフトウェア教育の国際モデルに従った上級ソフトウェアエンジニアの教育を目的としている。各科目は、ソフトウェア関連企業の需要を満たし、能力で勝り、実践的で、複合的な要素が求められ、国際的にも通用する上級ソフトウェア開発者/マネージャを育成する実践教育と技術力に重点を置いている。ソフトウェア工学修士号取得者は、ソフトウェアの設計や開発ができるだけでなく、プロジェクトの編成や管理を行う能力を持ち、外国語に堪能で、国際競争力も身に付けている[注8]。
中国がアウトソーシング先として確固たる地位を築くには自国のソフトウェア専門家が顧客と同じ言葉を話す必要がある、ということは中国当局も明らかに認識している。インドがアウトソーシング業界で傑出した背景にはこの能力があった。インドのソフトウェアエンジニアは、しっかりした技術教育を受け、規律正しいことに加え、英語についても広範囲の訓練を受けている。中国は、英語力に関してはまだそこまでのレベルに到達していない。彼らにとっては、ここが唯一の弱点になるかもしれない。
もちろん、中国のIT業界を進展させる要因は教育だけではない。OJTの経験、機器の向上、より効率的な商慣習をはじめ、成功するためにはさまざまな要因が重要になっていく。筆者は、中国がこれらの障害を克服し、世界中のIT業界で主力パートナーになることを確信している。そうなれば他国の企業も、存続と反映のために変わらざるを得なくなっていくだろう。
筆者に今後のことは分からないが、国際IT業界では全員にメリットのある機会が多数待ち受けている。国や文化にかかわらず、それぞれが核となる能力を身に付け、協力し、発展していく方法を見つけ出していくだろう。われわれは一緒にソフトウェアの危機を乗り越えていく。中国のソフトウェアエンジニアリング構想が打ち出した教育課程、国際協力、革新的なツール、そしてプロセス改善といった支援を業界が得られる限り、われわれは今後も興味深い時代を生きていけるだろう。
<著者について>
Gary Pollice
Gary Polliceはマサチューセッツ州ウスターにあるワーチェスター工芸研究所の実践学教授。ソフトウェアエンジニアリング、デザイン、テスト、およびコンピュータサイエンスの各種課程を教えており、学生のプロジェクトも指導している。教職に就く前は、業務アプリケーションからコンパイラやツールまで、各種ソフトウェアの開発に35年以上も携わってきた。この業界で最後の仕事となったのがIBM Rationalソフトウェアで、「RUP Curmudgeon(RUP翁)」として有名になり、Rational Suiteチーム発足時のメンバーでもあった。Addison-Wesleyが2004年に出版した「Software Development for Small Teams: A RUP-Centric Approach(小規模チームのためのソフトウェア開発:RUPを中心にしたアプローチ)」は同氏が中心となって執筆された。数学の学士号とコンピュータサイエンスの修士号を持つ。
- トランザクション管理の複雑性を克服する(パート1)
- アジャイルとシステムテストの新たな関係(後編)
- アジャイルとシステムテストの新たな関係(前編)
- アジャイル開発の広範な普及を目指して
- 見積もりの精度 Accuracy of Estimation
- 複雑性を理解する(後編):ソフトウェアの複雑性を手なずける
- 複雑性を理解する(前編):ソフトウェアが複雑なのは仕方がない?
- 鈍重な開発チームは鈍重なシステムを作る?/パート3:役割とポリシー(後編)
- 人事評価と開発者のモチベーション/パート3:役割とポリシー(中編)
- 自己管理型チームの利点と弱点/パート3:役割とポリシー(前編)
- プロセスはチャンスが訪れるたびに改善する/パート2:プロセスと基準(後編)
- 開発プロセス導入のアンチパターン/パート2:プロセスと基準(中編)
- 反復開発の「ここはぜひカバーしたいポイント」/パート2:プロセスと基準(前編)
- 開発プロジェクト「統治」のピンポイント解説/パート1:原則と組織(後編)
- 開発プロジェクトを「統治」するベストプラクティス/パート1:原則と組織(前編)
- 初歩の「Perl」「Python」「Ruby」
- ビルドが全滅する原因/プロジェクトの状態を評価する:パート2(後編)
- 不完全なコードは推敲フェイズで潰しておきたい/プロジェクトの状態を評価する:パート2(前編)
- UMLを使ったビジネスモデリング(後編):そうだったのか! システムユースケース
- UMLを使ったビジネスモデリング(前編):なるほど! ビジネスユースケース
- 「この開発プロジェクトは中止!」の基準/プロジェクトの状態を評価する:パート1(後編)
- プロジェクトのはじめに計画を立てるのは無謀/プロジェクトの状態を評価する:パート1(前編)
- 専門家に聞くモデル駆動開発のメカニズム
- 「設計」や「構築」よりも重宝されるスキル
- キミのコードが汚い理由
- 汎用グラフィカルモデリング言語「SysML」 パート2:グラフィカルなモデル言語で製品構造を記述
- 汎用グラフィカルモデリング言語「SysML」 パート1: 要件、ユースケース、およびテストケースのモデリング
- ウォーターフォールから反復型への移行手順
- ソフトウェアアーキテクティングのメリット
- ソフトウェアアーキテクティングのプロセス
- ソフトウェアアーキテクトの役割
- ソフトウェアアーキテクチャって何なの?(後編)
- ソフトウェアアーキテクチャって何なの?(前編)
- ITプロジェクトを見える化する
- ユーザー要件を引出すテクニック: ユースケースかストーリーボードか
- オブジェクト指向を超えて
- ルネサンスの巨匠たちに学ぶエンジニアリングの技
- ソフトウェア開発の「いま」と「近未来」の話
- 中国のソフトウェア開発現場はこんなにスゴイ
- 隣のテストチームが優秀ないくつかの理由(後編)
- 隣のテストチームが優秀ないくつかの理由(前編)
Copyright © ITmedia, Inc. All Rights Reserved.