よる成果物の品質確保」をテーマにした第5回勉強会(補足)では、海外へのオフショア開発によるコスト削減や、確保が難しくなってきているエンジニアの補充、社内での付加価値の高い開発を目指して、今後、ますます実施される可能性が高い“外部委託でのソフトウェア開発”に関してディスカッションを行いました。補足:本連載は、横河ディジタルコンピュータ主催「組込みソフト開発現場が抱える課題の解決を考える勉強会」での議論を基に、組み込みソフトウェア開発現場で抱える課題やその解決策のヒント、気付きを読者の皆さんと共有することを目的にしています。第5回勉強会に参加した皆さんは、すでにソフトウェア開発の外部委託を実施していて、いろいろな課題を抱えていました。外部委託のプロセスの品質向上は、企業、組織が生き残るために、最も重要な課題の1つになります。現状のソフトウェア開発の外部委託における問題点はいろいろとありますが、問題は委託先側にある場合も多いかと思います。当勉強会ではプロセス改善をテーマにしているので、「自分たち(委託元)が改善しなければならない問題点、被害を最小限に抑えるために取り組まなければならない点を整理して、それらの問題・課題を少しでも取り除き、有効な外部委託を実現するためのヒント」を深掘りしました。ソフトウェア開発の外部委託の現状と問題点まず、参加者の皆さんが抱えている、ソフトウェア開発の外部委託における問題点に関して整理してみたいと思います。問題点は大きく3つあります。その中でも最も大きな問題となっているのが、「委託する部分の仕様」に関するものです。委託先に明確な仕様を提示することが困難である海外の委託先と仕様に関する意思疎通がうまく行えない。その結果、作業の遅延が発生してしまう納期に対する遅延が発生した場合の作業に対して、仕様の提示に問題がある場合があり、あまり強く主張できず追加費用を支払っているこれらの問題は、設計・実装部分を外部に委託する際、主に委託する側が提示する仕様の内容に問題がある場合がほとんどです。一般的に開発工程の上流である仕様に不具合がある場合は、大きな手戻りが発生し、プロジェクトのスケジュール、コストに対して大きな影響を与えます。2つ目は「品質」に関する問題点です。成果物の品質が低く、以降のテストで委託部分の不具合が頻発する再作業が頻発し、納期を守れなくなる場合がよくある海外の委託先のスキルレベルが低い委託する側が仕様を明確に提示しているのであれば、本来、これらは委託先側で改善しなければならないものですが、最終的に被害を受けるのは自分たち(委託元)です。委託する側は開発工程の上流から委託先の作業状況、品質を監視して、品質を作り込むことが重要になります。最後の3つ目は「委託先の監視方法」です。監視方法が適切でないと、結果として何らかの問題が発生してしまいます。委託先の作業内容と状況が把握できていない進捗(しんちょく)状況の報告ルールがなく状況がよく分からない委託先との情報の共有など、適切なコミュニケーションができていない外部委託において問題の発生をできる限り抑えるために、まずは“状況を見えるようにすること”が重要になります。これらの問題点を少しでも回避していくには、外部委託の開始時に委託作業全体をさまざまな角度から深く考えて計画を策定し、委託先と合意することが重要になります。通常のプロジェクトでも精度の高い計画は重要ですが、会社対会社の取り決めで、変更することが簡単ではない外部委託でのソフトウェア開発では、“初期の計画策定”と“各種の合意”が大きな意味を持つことになります。組織やプロジェクトにマッチした適切な委託先の選定ソフトウェア開発の外部委託を行うに当たって、まず重要なことは適切な委託先を選定することです。ほとんどの場合、個々のプロジェクトが直接外部委託先を選定することはないと思います。会社全体としてすでに何社かの候補があり、その中から今回はどこに委託するのかを検討するのが一般的でしょう。参加者の皆さんがどのような判断基準で委託先を選定しているか、見てみたいと思います。・デバイスの提供を受けている会社にソフトウェアも依頼する上記は一例ですが、組織によりいろいろな選定基準があるようです。選定を定量的に行っている組織はどうも少ないようです。どちらの組織でも、判断基準の中で一番重点を置いていることは、“過去の開発実績”のようです。開発実績といっても以下のようないろいろな要素があります。日程の順守の程度これらの要素に関して、上司や社内の有識者に相談し、プロジェクトマネージャやリーダーが選定を行っているようです。できれば、各項目をもう1段くらい詳細化し、プロジェクトごとに記録を取ってデータとして蓄積してみてください。次の委託時、それら蓄積データを基に評価して選定を行えたら、さらに厳密な委託先管理につながります。その際、上記の項目に併せて、プロジェクトの特性と紐(ひも)付けてデータを蓄積してください。しないと、「今回のプロジェクトの特性は○○なので、選定基準を評価し××の委託先を選定しました」という、論理的なつながりがなくなってしまいます。コストの面では“低減”が最大の目標として挙げられていますが、金額の安さだけで判断を行っているわけではないようです。納品成果物の数とその規模や作業範囲(委託工程、役割)を考慮するのは当然ですが、委託先内部での作業プロセス、進捗や問題点などの報告内容や頻度などを見渡し、金額の妥当性を判断してください。金額の妥当性を確認するためには、委託する側もそれなりに精度が高い見積もりを実施することが求められます。感覚だけで「ちょっと高いな」と判断するのではなく、過去の内部プロジェクト、委託プロジェクトの実績データの蓄積から、精度の高い見積もりを行い、委託先との納得感のある交渉を行ってみてください。次に参加者の皆さんが、選定の基準の上位に挙げていたのは、「委託先とのコミュニケーション」です。この部分では以下のような意見がありました。比較的融通が利き、伝えたいことがちゃんと伝わる仕様面、管理面でコミュニケーションがしっかり取れるか不明点をしっかりと質問してくる委託先は品質も高い昔から付き合いのある日本の委託先は、比較的融通が利き、委託する部分の仕様の“行間”を読んでくれるので、委託している場合が多いようです。選定の際に委託先のマネージャやリーダーなどに会って判断し、作業の委託が決まったら、実際の担当者と会ってコミュニケーションを少しでも円滑にしようと努めているようです。このようにして、いろいろな切り口で委託先を評価し、適切な委託先を選定することが重要です。限られた委託先候補の中から選び出すことになりますが、外部委託を少しでも成功に近づけるために、選定の基準を深く考えてみてください。プロセスエリアでは、“委託先を評価する基準を確立し、それに従い委託先を選定しなさい”とあります。その際、「決定分析と解決」プロセスエリアに基づき、論理的に選定することを勧めています。選択をする際にもう1つ考慮してほしいことは、「外部委託の目的をしっかりと意識すること」です。外部委託には、組織としての大きな目的があるはずです。最初にお伝えした、コストの削減や事業規模の拡大によるエンジニアの不足、付加価値の高い内部開発など、いろいろな目的があるのではないでしょうか。プロジェクトはその目的を意識して、委託範囲を切り出し、委託先を選定しなければなりません。個々のプロジェクトはプロジェクトリーダーなどが外部委託の管理を行うと思いますが、上位の目的を十分に考慮し、判断を行ってください。SNSFacebookXITmediaはアイティメディア株式会社の登録商標です。