業界を慢性的に悩ませている人材不足。これに対する取り組みの1つが、“スキルの可視化”を目指す組込みスキル標準である
組み込みソフトウェア搭載製品は、競合製品との差別化を図るために多機能化と高機能化を進めてきました。こうした競争の結果、組み込みソフトウェアの開発量と複雑性が増しました。
経済産業省が2005年に公開した組込みソフトウェア産業実態調査によると、組み込み製品に搭載されるソフトウェアの総コード数(ミドルウェアやプラットフォームなどのパッケージ部分も含む)は、約99万ステップです(グラフ1)。
新規に作成するソフトウェアコードだけでも平均31万ステップになっています(グラフ2)。
また、実態調査によれば、80%以上のプロジェクトの開発期間が1年未満であることが読み取れます(グラフ3)。規模が増大しているにもかかわらず、期間は短いままです。結果として、プロジェクトに投入される技術者が増え、最近では数百人規模の開発体制もそれほど珍しい話ではなくなりました。
ここで、仮想のプロジェクトを想定して、それがどのようなものであるかを試算してみましょう。開発するソフトウェアは、開発規模の平均値である約31万ステップとします。これを半年程度で開発するとどうなるでしょうか。
投入するソフトウェア開発技術者の生産性を仮に1.0Kstep/人月とすると、全体の作業工数見積もりは約310人月となります。これを開発期間(6カ月)で単純に割り算すると、常に50人以上の技術者を配することになります。実際は、要件定義や設計などの上流工程フェイズよりも、実装やテストといった下流工程フェイズに多くの技術者が投入されるため、ピーク時は概算値の50人よりもはるかに多くなります。体制が大きくなれば、管理や各種支援などの専任業務要員が必要になる一方で、コミュニケーションロスの発生などによる生産性の低下が生じ、全体の工数はさらに増加します。
従来の組み込みソフトウェアの開発体制といえば、数名から十数名程度の気心の知れた者同士で行え、いわゆる“擦り合わせ”による仕様決めや設計、製造、課題解決も可能でした。しかし、“擦り合わせ”を実現するには、要員間の形式知と濃密なコミュニケーションが必要です。数百人規模の開発プロジェクトで行うのは、非現実的です。
関連リンク: | |
---|---|
⇒ | 独立行政法人 情報処理推進機構 |
⇒ | ソフトウェア・エンジニアリング・センター |
⇒ | 2005年版組込みソフトウェア産業実態調査報告書 |
このような背景を裏付けるように、組込みソフトウェア産業実態調査の「製品の開発資源・環境で課題として感じていること」の問いに対しての回答は、1位が「人が足りない」、2位が「メンバーのスキルが不足している」であり、慢性的な人材不足が浮き彫りになっています(グラフ4)。
人材不足は、「時間外作業」などの形で技術者にしわ寄せが来ています。1カ月当たりの作業時間に関する調査の結果から、約60%以上の技術者が1カ月当たり40時間以上の時間外作業を行っていることが分かりました(グラフ5)。つまり、現場にいる技術者の「頑張り」によって辛うじて持ちこたえているのが現状です。しかし、その頑張りは限界となりつつあります。
組み込みソフトウェア開発分野における「人材」や「スキル」不足の要因として、「技術者の能力を生かし切れていない」こと、「人材を適切に育成できていない」ことが考えられます。
技術者の能力を十分に生かし切れていない理由として、開発プロジェクトへ要員を投入する選定基準が大ざっぱであり、適切な要員配置が行われていないことが考えられます。
現状では、プロジェクト管理者が業務経験年数や技術者の印象などを基に、身近な人材を招集するやり方が一般的になってしまっています。また、現状では人材の配置が適切か否かを客観的に判定する手段がほとんどありません。このため選定者の主観が入りやすくプロジェクト管理者個人の知識や能力が、人材配置の適切さを大きく左右してしまいます。
過去の開発プロジェクトと酷似したプロジェクトを繰り返すだけであれば、経験則だけで妥当に運用することも可能でした。しかしながら、近年の組み込みソフトウェアで扱われる技術の更新周期は大変短く、何らかの未経験技術を次々に投入し続けることが求められています。経験則に依存しない判定手段がない現状では、未経験技術については管理者の勘に頼るしかありません。
企業や組織全体として見た場合、不適切な人材配置は生産性や人材育成といった面で大きな損失を生じさせているといえます。また、客観的な判定手段の欠如は、配置した人材のスキルで「最後まで開発できるのか?」あるいは「どれくらい不足しているのか?」を定量的に分析することを不可能にします。ある程度作業が進まなければ人材の配置が適切か否か分からないため、開発プロジェクトは大きなリスクを抱えることになります。
人材やスキルの不足を補うために外部委託を行う際にも、同様の問題があります。そもそも、プロジェクトの状況があいまいな状態であるため、管理者の勘や経験などを加味して、「設計ができる人5名」「C言語のプログラマ10名」といった、非常にあいまいな表現で依頼を出すことになります。依頼内容があいまいだと、人材を供給する協力企業側で独自の解釈が追加され、さらに誤差が広がります。その誤差の広がりによって、局所的には合意がなされているのに、結果としては「スキルのアンマッチ」という形で、技術者本人にとっても投入先のプロジェクトにとっても不幸な状況に陥ります。
組み込みソフトウェア開発に関する技術項目が多種多様であり、開発手法や管理技法などについてはチームリーダーが属人的に運営していたことなどから、体系的な教育プログラムを持たない企業がほとんどでした。技術的なスキル不足は、現場における実務を通じての習得や技術者個人の自己研さんに頼っていました。
ところが、開発の大規模化による人材不足が作業時間を増加させました。「組み込みソフトウェア開発における人材育成の課題」に関する組込みソフトウェア産業実態調査で最も多かった回答は、「技術者の時間が取れない」でした。これでは、体系的な教育プログラムが存在したとしても、研修を受講させることができません。
また、開発が小規模であった時代は、徒弟制度のように現場の先輩社員が後輩を指導していました。当時は、個人でも開発の全体を見渡すことが可能でした。ところが、大規模・複雑化に伴って担当個所や工程が細分化され、技術者個人が見渡せる範囲は相対的に狭くなってしまいました。プロジェクトで実務をこなしているだけでは、ソフトウェア開発に関する体系的な技術を習得するのは難しいのが現状です。
「人材は不足している」が「人材育成をする時間もない」という状況を打開するには、これまでの無計画な人材育成を改め、わずかな時間で最も効果が得られるように計画し、実行しなければなりません。そのためには、技術者の現状の能力を的確に把握したうえで、組織やプロジェクトの目標と合致させ、極力ムダを排除する必要があります。このような人材育成計画を立案するには、組み込みソフトウェア開発に関する知識や技能レベルを客観的に定量化できる指標が必要なのです。
Copyright © ITmedia, Inc. All Rights Reserved.