TOP>企業情報>ユーザ交流会>ソリューション研究会>情報交流会>ソフトウェア開発の新潮流 ~PSP、TSP~

ソリューション研究会

ソフトウェア開発の新潮流 ~PSP、TSP~

アシストは去る4月、ソリューション研究会 情報交流会を東京で開催し、日本SPIコンソーシアムの岩見好博様、宮脇祥子様を講師にお招きし、ソフトウェア開発のための演習方法である「パーソナル・ソフトウェア・プロセス(PSP)およびチーム・ソフトウェア・プロセス(TSP)」についてご講演を賜りました。本稿はその概略を編集部でまとめたものです。

講師:オリンパス株式会社 情報システム部 要素技術グループ 課長 岩見 好博 氏
   株式会社日本科学技術研修所 エンジニアリングアプリケーション部 次長 宮脇 祥子 氏


海外での新しい動き


PSPという言葉はまだ日本では馴染みがない。ソフトウェア品質の重要性がますます高まる中、岩見氏、宮脇氏が紹介したのが米国などで着手され始めたパーソナル・ソフトウェア・プロセス(以下、PSP)という手法である。アジアにおいても、台湾や韓国で国家的取り組みがなされ始めているにも関らず、日本国内で採用している企業はまだ少数だという。

ソフトウェアの品質を高めるというが、どのようにそれを実現するのか。ソフトウェアの開発はまだ自動化されていないため必ず人の手を介して作られ、作り方が悪いと出来の悪いソフトウェアができてしまう。テストでバグ出しをすればよいという考え方もあるが、そのようにして作られたソフトウェアはテスト段階で大量のバグに悩まされる。それを回避するためには、根本的に仕事のやり方を変えるしかないと岩見氏は説明し、そこで求められるのがソフトウェア開発へのエンジニアリング手法の導入だという。製造業では生産技術を高めなければ品質の安定やコスト削減を実現できない。ソフトウェア開発にもそれは当てはまる、と岩見氏は語る。そしてそれらの問題に対処するために、米国で開発され世界に広まり始めたのがPSPおよびチーム・ソフトウェア・プロセス(以下、TSP)なのである。

米国ではソフトウェアのオフショア開発が進み、多くの開発がインドなどへ流出するという状態にある。ソフトウェア技術者のスキルアップや大学でのソフトウェア技術者教育をターゲットとしたのがPSP、それを基にしたソフトウェア開発チームとリーダーの育成ガイドがTSPであり、ソフトウェア産業の空洞化を防ぐために国内でソフトウェアを作ろうという考え方が元になって推進されているという。

PSPとTSP


PSPはその名の通り個人のスキルアップを目的としている。ソフトウェアの品質はその構成要素の品質によって決まり、それを開発するのは個人である。このため個々の開発者のスキル、コミットメントそしてパーソナル・プロセスの規律を向上することが高品質の鍵となる。

TSPは企業でのプロジェクト向きで、PSPを受講した人がチームを組むことが前提である。チームはメンバーが互いに協力しサポートし合うと最もよく機能する。また全員がよく定義されたプロセスを使うと高品質の製品を作ることが可能になるという考え方である。

PSP、TSPは米国で作られたものだが日本の感覚と近い。なぜなら20年前の日本のソフトウェア開発現場のベスト・プラクティスが元になっており、これが今米国で盛んに行われ、逆輸入されているのだと岩見氏は言う。米国ではすでにボーイング社、マイクロソフト社、NASAなどで導入され、効果を挙げている。

取り組みの効果


改善事例として、岩見氏はボーイング社を例に説明した。同社は品質が悪かったことから外注をやめてすべて内製化した。その結果、現行機種であるボーイング777では7年かかっていたソフトウェア開発期間が、787では1年に短縮され、それにも関らずソフトウェア規模は約40倍に拡大したという。これはPSP、TSPを採用していなかった777の開発期間の多くをテストが占めていたためである。航空機用のソフトウェアはバグがあれば載せることはできず、このため膨大な開発期間を要した。それならば根本的にバグのない開発を、ということでPSP、TSPを採用し、ボーイング787のソフトウェア開発を短期間に完成させたという。

もう1つの事例としてマイクロソフト社を挙げた。社内システムの開発でテスト・フェーズに入ると残存欠陥数を推定できなくなるため、複数メンバーで設計レビュー、コード・レビューを行って欠陥数を推定する標本再捕法を採用している。これには全レビュアーが全体をレビューすること、欠陥発見数がそれなりに多く、レビュアーの欠陥摘出率が70%以上であることといった前提条件があるが、同社ではほぼこの通りの数字になっているという。

PSPとは


ソフトウェアの品質を大幅に向上させるPSPとは、簡単にいうと1から10までのプログラム課題演習を行う間にスキルが身に付くものであるという。各ステップに対する作業手順やテンプレートが定義されており、便利なサポート・ツールも提供されている。そのプロセス通りに課題の設計、プログラミングを行い、見積り、実績時間や欠陥などのデータを記録していく。そして個人のレビュー・チェックリストを作ることでプロセスを自分で改善、あるいは作成できるようになるという。そして、PSPを使うとほとんどの開発者は欠陥の80%以上をコンパイル前に自分で除去できるようになる。実際に、JASPIC PSP/TSP分科会で昨年8名がこれを体験し、体験者のお一人である宮脇氏が、ソフトウェア技術者がどのように変わったかについて発表した。

宮脇氏はPSPを実際に体験し、この演習はソフトウェア開発者として、自らが能力を高めていく方法であり、ソフトウェア開発者としていかに仕事に臨むかという姿勢を身に付けるものだと語った。演習を通して、見積りがあたらないと見積り/実績を合わせたくなる、少しでも欠陥を減らしたくなる、との改善の芽が芽生えてくる。その開発者の姿勢がソフトウェアの品質を左右する最大のポイントであり、それらを外から押し付けられるのでなく、演習を通じて自ら身に付けていくことの素晴らしさについて、実際に演習で使用したツールなども提示しながら宮脇氏は説明した。

TSPとは


PSPが個人のソフトウェア開発プロセスの体験であるなら、TSPは名の通りチームでの、プロセスに従った開発をガイドする。共通のチーム目標を持つこと、各メンバーが各々役割を持つこと、計画を全員で立て、品質と進捗を測定することで、まとまりのある生産性の高いソフトウェア開発チームを構築、リードできるというものである。これにより顧客やマネジメントとの要件交渉がうまくできるようになり、PSPによってわずか20%に減った全体のバグも、さらにこのTSPを行うことでテスト前にほぼ完全に除去できるようになり、生産性が倍以上に上がる効果があるという。ソフトウェア開発には様々な問題があり、中でも開発者のスキルアップは急務であると言える。その課題解決として米国から世界へ広まりつつあるこのPSPとTSPについて、講演後はソリューション研究会会員から活発に質問が寄せられた。

仕事の進め方(プロセス)を変えることで開発者のスキルアップを図り、またそれをチームで行うことで品質の高いソフトウェアを作る。日本の品質管理活動がデミング経営哲学によって世界に広がったのと同じような経緯を経て日本に紹介されたPSP、TSPが今後日本でも広まるのは時間の問題のようである。

※In the U.S., PSP & TSP are a service mark of Carnegie Mellon University.

ページの先頭へ戻る