中国オフショア開発の失敗を減らす組織的対策とは?

 前回は、オフショア開発の重要なテーマである「品質管理」に関する話題を取り上げ、開発コーディネータが果たすべき主要な役割について、プロジェクトマネジメントの話題を中心にして解説しましたが、今回は組織的なプロジェクトの推進機能について言及します。

-

プロジェクト推進力の欠如

 今回も前回に引き続き、飲食店とオフショア開発プロジェクトを対比させながら話を進めます。飲食店(オフショア開発プロジェクト)では、お客さまに出される料理の味(品質)に責任を持つのは、その店の料理長(プロジェクトマネージャ)です。ところで、飲食店では皿洗いの基準まで料理長(プロジェクトマネージャ)が定めるべきでしょうか。

 独立した小さな中華料理店であれば、店主が1人で店の隅々にまで目を光らせておけるでしょう。つまり、答えは「Yes」です。ところが、フランチャイズ展開(FC)する飲食店であれば、店舗ごとに皿洗いの品質が異なるなんてことは許されません。この場合の答えは「No」です。通常は、FCに加盟するすべての店舗に共通する品質基準が定められていることでしょう。品質基準はFC本部の専門家によって定義されます。

- PR - 

 

 オフショア開発でも同じような考え方が成立します。インド企業とは異なり、開発プロセスが十分に発達していない中国企業とのオフショア開発では、日本側が主体となって開発標準を定めて各プロジェクトに周知させます。その役割を担うのは、やはり開発コーディネータです。

 ところが、オフショア開発の理想と現実の間には、なかなか克服できない大きなギャップがあります。最近、筆者が中国オフショア開発を実施している企業を取材したところ、プロジェクトが成功しない企業に共通する特徴として、「プロジェクトマネジメントの欠如」ならぬ、「プロジェクト推進力の欠如」があるという分析結果がでました。

 つまり、オフショア開発ではプロジェクトマネージャの裁量を超える事象が数多く発生しますが、組織的に解決に当たる土壌が育っていないということを意味します。

-

中国オフショア開発における品質管理の難しさ
-評価するモノサシがない

 先日、あるソフトウェアハウスにお邪魔して、苦戦が続く中国オフショア開発の実態を取材しました。全国数カ所に拠点を持つこの会社は、国内の分散開発ではそれなりの実績を残しているのですが、中国企業との共同開発は今回が初めてだそうです。さまざまな工夫を凝らして慎重に進めているものの、なかなか思うようにはかどらない様子がうかがえます。以下、取材先のプロジェクトマネージャとのやりとりを再現します。聞き手は筆者(幸地)です。

上海での筆者の昼食。12元(156円)

──どのような開発体制ですか?

取材先のプロジェクトマネージャ(以下、PM日本側6名、中国側4名、総勢10名の開発チームを組んでいます。中国オフショア開発の下準備という位置付けなので、現在は4名の中国人技術者をすべて社内に常駐させています。

──中国ベンダに委託した開発工程は?

PM当初は、詳細設計から結合テストまでやってもらうつもりでした。ところが、こちらが期待するレベルのモノが出来上がってこないんです。残念ながら、いまは計画を変更して、製造工程からやってもらうことにしました。

──具体的にはどのような問題が発生したのですか?

PM本来、詳細設計で作成すべき資料を100点満点に例えると、60点、いや、それ以下のモノしか作ることができません。彼らの意識では、このレベルで合格だと思っているのでしょう。本当に参っています。

──日本が期待するレベルを定量的に評価する基準はありますか?例えば、この段階なら80点、ここまでできたら100点満点など、明確で分かりやすい判断のよりどころとなる「モノサシ」はなんでしょうか

-

中国オフショア開発における品質管理の難しさ
-オフショア開発は新規事業

PM(取材先のプロジェクトマネージャ):おっしゃることはよく分かります。口頭ではよく説明したはずですが、残念ながら、中国側と共有できるような判断の「モノサシ」は準備していませんでした。逆にお尋ねしますが、具体的にはどのような基準を用意すればよいのでしょうか。

──ポイントは3つあります。

  1. 全工程の成果物を漏れなく定義する

  2. 成果物のサンプルと合格基準(品質基準)を事前に提示する

  3. サンプルをお手本として、中国側に水平展開させる

 中国オフショア開発では、最終成果物をチェックすればよいという考え方は通用しません。たとえ、日本から正確な仕様書を提示したとしても、途中の開発プロセスが正しく実施されているかどうかまで、根気強くフォローしなくてはいけません。

PMはい。先日実施されたレビュー報告書をご覧ください。

 詳細設計からコーディング初期に実施されたレビュー報告書の一部抜粋。

  • 検索機能の仕様がまったく理解されていないような気がします

  • 「分かりました」「できます」といったのに、全くNGです!

  • 何度も同じ説明を繰り返したのに、全く対処されていません

──かなり辛らつな言葉が並べられていますね(汗)。この報告書を書いた(日本人の)担当者は、かなり感情的になっていますね。

PMそうなんです。実は、中国側との連絡窓口は経験の浅い若手社員が担当しています。いや、もちろん、技術的にはそこそこできるのですが、いろいろ事情がありまして……。何とかしたいとは思っているのですが。

──どこの会社さんも、そうおっしゃられます。私が毎日発行するオフショア開発メールマガジンでも触れていますが、中国ベンダとの連絡窓口は、やはり経験の豊富な方が適しています。社内事情があるのはお察しいたしますが、中国オフショア開発は一種の新規事業ですから。

PM……(苦笑)。中国オフショア開発は新規事業ですか。確かにそうかもしれません。短期的には絶対に原価削減効果は表れないので、長期的な視点で取り組む必要がありそうです。

──おっしゃるとおりです。ところで、中国オフショア開発の設計からコーディング中に発生するトラブルの要因は大きく2つに大別されます。

  1. 中国側の仕様理解不足、あるいは考慮不足による設計差し戻し

  2. 日本側の仕様提示ミス、説明不足、設計不足による手戻り

 前出のレビュー内容から察するに、中国側の作業が滞った原因は2の割合が大きいような気がします。64、ないしは73の割合で、日本側に改善の余地があると判断します。

上海にある筆者の知人が経営する人材教育会社のオフィス

PM確かにそういう見方もあると思います。もちろん、開発標準などは、当方から事前にちゃんと提示しています。それでも、設計の考慮漏れやコーディング規約違反が大量に発生します。こうなると、さすがに当社の担当者も頭にきて、先ほどのように、報告書で厳しいコメントを書いてしまうのです。

──ところで、レビュー報告書には、担当者の愚痴も多く見られますね。担当者間で不満をいい合うのは、オフショア開発の負けパターンにはまっています。

PMでは、どうすればいいでしょうか。

──担当者の愚痴や不満を吸い上げるのは、大切なことです。特に、今回は若手社員に負荷が掛かっているようなので、マネージャや管理部門の方が親身になって話を聞いてあげてください。そのうえで、中国ベンダに伝えるべきことがあれば、担当者からではなく会社幹部が直接中国ベンダの総経理にぶつけてください。

 御社の例では、現場レベルの対策ではなく、会社間の問題として扱うべきでしょう。風通しの良いコミュニケーションを実現させることを優先させてください。

-

中国オフショア開発における品質管理の難しさ
-次回の対応では効き目なし

- PR - 

 

PM(取材先のプロジェクトマネージャ):そうですね。場合によっては、中国側現場リーダーの変更もあり得ます。実は、委託先の中国ベンダには、ほかにも数名の優秀な中国人マネージャがいます。次のプロジェクトからは、最低1人は直接現場をマネジメントするように要求を出したいと思います。

──いい考えですね。可能なら「次回の対応ではなく、即時対応」を要求してください。

PM次回の対応ではなく、即時対応ですか。

──そうです。次回の対応ではせっかくの努力が水の泡になってしまう恐れがあります。中国オフショア開発では、間髪を入れずトップダウン的なアプローチで交渉すると効果的です。リーダーが代われば、プロジェクトの様相は一変します。ぜひ、会社上層部を巻き込んで組織的な解決を目指してください。

PMはい。ありがとうございます。

教訓

中国オフショア開発は新規事業だという視点を持とう。プロジェクトマネジメントの限界を見極めて、会社として組織的に解決に当たる土壌を作るべし。

 

-

開発コーディネータとワンランク上のPMの役割

 プロジェクトマネージャ養成に熱意を傾ける有限会社プロジェクトマネジメントオフィス代表取締役の好川哲人氏は、自律的に行動できるプロジェクトマネージャに求められるスキルセットについて次のように提言しています。

 ワンランク上のプロジェクトマネージャを目指すには、かなり、明らかにプロジェクマネジメントスキルだけでは不十分である。そこには、ビジネスを創り上げ、そのビジネス上のニーズに従って自分のスキルを常に向上させる「スキル」が必要である。つまり、PMOに求められる下記のスキルが必要である。

  • ビジネスアライメント

  • ビジネスシステムの構築

  • アセスメントとパフォーマンス向上

  • リカバリー

  • リソースマネジメント

(プロジェクトマネージャ養成マガジン~プロジェクトマネージャへの道(No.29)より)

 好川氏の主張する「ワンランク上のプロジェクトマネージャ」像は、オフショア開発時代に求められる「開発コーディネータ」と期せずして重なります。特に中国オフショア開発では、これまで蓄積してきた日本企業の標準ノウハウが通用しない場面が少なくありませんが、オフショア開発という「新規事業」を創造するには、従来のプロジェクトマネジメントのスキル体系では到底間に合いません。

 ところが、多くの日本企業では組織的な解決手段に乏しいため、プロジェクトマネージャが孤立無援の状態となってしまいます。そこで、開発コーディネータには、従来のプロジェクトマネジメントでは対応し切れない「空白領域」を埋める大事な役割が期待されます。

 

要約
前回は、オフショア開発の重要なテーマである「品質管理」に関する話題を取り上げ、開発コーディネータが果たすべき主要な役割について、プロジェクトマネジメントの話題を中心にして解説した。今回は、組織的なプロジェクトの推進機能について説明する。

筆者が中国オフショア開発を実施している企業を取材したところ、プロジェクトが成功しない企業に共通する特徴として、「プロジェクトマネジメントの欠如」ならぬ、「プロジェクト推進力の欠如」があることが判明した。つまり、オフショア開発ではプロジェクトマネージャの裁量を超える事象が数多く発生するのに、組織的に解決する土壌が育っていないのだ。

特に中国オフショア開発では、これまで蓄積してきた日本企業の標準ノウハウが通用しない。さらにオフショア開発という「新規事業」を創造するには、従来のプロジェクトマネジメントのスキル体系では到底間に合わない。そこで、開発コーディネータには、従来のプロジェクトマネジメントでは対応し切れない「空白領域」を埋める大事な役割が期待される。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值