- Top
- Case Examples
- ソフトウェア開発システムデザイン事例
ソフトウェア開発システムデザイン
ある家電メーカでの製品開発の例を紹介する。競合他社は多くはないが、他社に先駆けて新規機能を搭載した新製品を市場に出すことが重要な製品を開発している組織である。追加する機能の数や複雑度に関わらず開発には 15 ヶ月程度かかることが多く、開発期間短縮が最大の課題であった。また、成熟商品であるため製品のバリエーションを増やすことでビジネス拡大を狙っていたのだが、ほとんどの技術者が同時に複数の開発に関係しており、また、多残業が定常化しているために製品開発を増やすこともできないというジレンマに陥っていた。
作って動かしてみないと仕様確認できない
アセスメントを実施したところ、次のことがわかった。
- 実際に動作させてみないと仕様の確認ができないため、仕様が確定するまでにかなりの時間がかかっている(結果として仕様設計に開発期間全体の 1/3 程度使っている)。
- 仕様確認のための試作機開発が開発上の重要なマイルストーンとなっているが、バラック作りの延長で実製品に近いものを作っているため動作させるために多大な時間がかかっており、技術者は大変な思いをしている。
- 大まかな分担を決めた後は担当者個人で開発作業は進められ、何人かに関係するような仕様決定は早い者勝ち、声の大きいもの勝ちというような決まり方をしている。
- 個人中心の(勝手な)開発の進め方であるため、ソフトウェアの場合プロジェクト全体で見ると詳細設計,コーディング,テストが渾然一体と進むことになり、動作させては不具合の修正を繰り返すというカット&トライ(手戻りばかりということ)で完成度を上げている。
- ハードとソフトを結合してからしかソフトウェアの出来がわからず、それがソフトウェアの開発期間が延びてしまう大きな原因となっている。
あるプロジェクトでの開発工程を図(システムデザインの効果:開発期間)のシステムデザイン実施前に示す。実際には、この図のように各工程が明確に区別できる状態ではないが、上記で述べた問題が生じていることはよくわかるのではないだろうか。
システムデザイン担当へのプレッシャー軽減
以上のような現状の問題を認識してもらい、その対策としてシステムデザインを導入した。具体的には次のようなことを実施した。
- セミナー(集合教育:1日)
- ワークショップ(担当者に対する演習を含むトレーニング:3日)
- システムデザイン共同実施(プロジェクトでの実施:2週間)
- 実施レビュー(週1回のレビュー:2ヶ月間)
- 実施後フォロー(月2回のレビュー:6ヶ月)
実施の上で特に注意が必要だったことは、システムデザインの担当者はこれまで実施したことのない未知の作業や役割を課せられる上に、システムデザインが開発の成否を左右する重要な仕事であることから生まれる大きなプレッシャーへの対応である。特に、システムデザインの担当となった技術者は責任感が強く、また、100 % の完成度を狙うためそのプレッシャーは相当なものであった。担当者のこのプレッシャーを軽減するために、システムデザインを実施する際には次のようなことを担当者に伝えた。
- システムデザインの完成度は 100% を狙うのでなく 60% 程度でいい
- システムデザインは順序だった作業ではなく繰り返し作業であり、その繰り返しで完成度を上げるものである(最初から完成度の高いものはできないのだから心配しなくて良い)
- やり直しや繰り返しを嫌うことなく、積極的に対応することが大切
- 自分だけで完成させるのではなく、文書化することで有識者からのコメントをもらうようにする
実施効果
上記のような活動を繰り返すことにより、図の実施後の例として示しているように1年後には平均的な開発期間をそれまでの 16 ヶ月から 11 ヶ月に短縮できた。同時に以下のような変化が起きた。
- システムデザインの段階で仕様の実現妥当性についての議論ができるようになり、結果として仕様確定までの期間が短くなった。
- 試作機開発の期間と目的が明確になり、試作機が動作しないという失敗が少なくなった。
- 担当者間での調整ややり直しが減り、詳細設計やコーディングの手戻りが少なくなった。
- テストケースが減りテスト時間そのものが短くなった。
当初の目的であった開発期間の短縮(約 30 % の期間短縮)の他に、図(システムデザインの効果:開発工数)に示すように開発工数についても 約 50 % もの削減が実現できた。これは、単純に考えても従来の2倍以上の新製品開発に取り組めることを意味する。現実には2倍にまではなっていないが、従来は手を出せていなかった顧客層への新製品を開発することが可能となったことでトップマネジメントも含めて満足のいく結果となった。