ソフトウェア工学やQAに関する様々な角度からの研究について、研究者の方にお話を伺う『QA最前線!』。デジタルトランスフォーメーション時代といわれ、品質向上・QAの重要性が高まる現代において、QAに関してどのような研究が行われているのか、研究・教育の現場がどのようになっているのか、注目されている方も多いのではないでしょうか? そのような視点から、本記事では最前線で活躍されている研究者にインタビューをして皆さまにお伝えします。今回は、千葉工業大学 社会システム科学部の小笠原 秀人 教授にお話をいただきます。
今回インタビューを受けてくださった方
- 小笠原 秀人 教授
千葉工業大学 社会システム科学部 プロジェクトマネジメント学科
千葉工業大学 社会システム科学研究科 マネジメント工学専攻
1990年4月、株式会社東芝に入社。入社以来、ソフトウェア生産技術(メトリクス活用、不具合管理、静的解析、テスト設計/管理、プロセス改善など)に関する研究・開発およびそれらの技術の推進・展開活動に従事。東芝に在籍中の2011年12月に、電気通信大学情報システム学研究科 社会知能情報学専攻 博士課程 を修了し、博士(工学)を取得。2018年3月に東芝を退社し、4月から千葉工業大学 社会システム科学部 プロジェクトマネジメント学科に教授として着任。
- プロセスをしっかり定着させないと新しい技術は入っていかない
- ビジネスとアカデミズムの間にギャップはない
- システムやソフトウェアの品質はプロセスの品質に左右される
- 現場にいるエンジニアは"幅の広さ"を持っておく
- "Heaven helps those who help themselves" (天は自ら助くる者を助く)
プロセスをしっかり定着させないと新しい技術は入っていかない
――これまでのQA業務や研究に関するご経歴をお教えください。
1990年に大学を修士卒業して東芝に入社し、ソフト技術センターというソフトウェア工学を中心に研究開発する組織に入りました。それから約28年、現場に寄り添った研究開発をしています。
最初の10年間は、不具合管理や構成管理、メトリックスに取り組みましたが、なかなか定着せず「どうしてなのか?」と悩んでいました。そんな時期にプロセス改善に出会いました。プロセスをしっかり定着させないと新しい技術が入っていかないと分かり、その後はソフトウェア技術とプロセス改善の二本柱で研究を進めています。そして、4年前に千葉工業大学の教員になりました。
――最初に不具合管理等の研究をされた「きっかけ」は何だったのでしょうか?
当時、携帯電話の開発が爆発的に広まっていて、バグが山ほど出ていました。そのバグをどうやって管理するかが課題になっていたのです。ツールもなかったので、まず、不具合管理プロセスを整備することにしました。最初に帳票を作り、その帳票の回覧方法を定義して運用しました。しかし、やはり手作業でやるのは無理だということになり、そのころ登場したWeb技術を使って、Webベースのシステムを作って社内で展開することにしたのです。面白かったですね。
――そのとき、どのようなことに「面白さ」を感じられたのでしょうか?
ソフトウェア開発は、結局、「人」だということでした。人と人でいろいろな会話をすることや、人の動きをしっかり考慮した上でツールを作ったり、それを皆に説明したりするといった事がすごく面白いと感じられました。製品開発の現場をサポートした際も、皆でモノを作り、節目のタイミングで打ち上げなどをするうちに、この仕事に入り込み、楽しくなっていった感じですね。
――楽しさの中で苦労されたことはありましたか?
先ほども話した点ですが、いろいろ良い技術や新しいツールを導入しても、なかなか定着しないことに悩みました。バージョンアップしていくシリーズ製品の開発など、既存の制約が多くある中に新しい技術を入れていくのは、現場の人々に納得してもらいながら進めていかないと上手くいきません。そういった点が難しく苦労したのですが、見方を変えると面白いところだった気もします。
――不具合管理やプロセス改善について研究されてきて、今後、どのように発展させていかれますか?
ソフトウェア開発プロセスの改善への取り組みは日本だけではなく、世界でも広がっていて、事例を共有・発表する場が増えてきています。日本SPIコンソーシアムや日本科学技術連盟で開催されているシンポウムなどにも改善事例は多く積み上がっています。これらを今まで以上に上手く活用できるようにしていきたいです。
また、現在、ソフトウェアの規模は大きくなり、複雑さも増していて、テストが大変になってきていますから、テストの自動化、とくにシステムテスト寄りの自動化には、今後、注力していきたいと考えています。
ビジネスとアカデミズムの間にギャップはない
――ソフトウェアについて大学で研究されていることと企業での研究とで違いはありますか?
アカデミズムの社会では、まさに「研究らしい研究」をしている先生方がいらっしゃって、私も「どんな形で役に立つのだろう?」と感じることもありますが、実はそこも大事です。そういった基礎的で地道な研究がないと現場に持っていけるものが出てこないからです。現場だけで解決しようとしてもできないことが多いと思いますので、上手く融合していくのが一番いいですね。理論も実践も大事だと考えています。
――教授は様々な学会などで活躍されておられますが、どのような経緯で参加されていったのでしょうか?
書籍だけで勉強していては分からないことが多いです。外に出て人の話を聞くと様々な情報がズバズバと入ってきます。そこで初めて「試してみようかな」と思えますから、多くの人の話を聞くことが大事だと思っています。
そういった場に顔を出したり、呼んでいただいたりするうちに世界が広がっていきました。役立つ「ネタ」は外から得てくるものの方が圧倒的に多かったと感じています。所属していた組織もそういった対外活動を認めてくれていて良かったと思います。
現在、外部からの受託研究を持っていますが、そこから入ってくる情報は新鮮です。そういった情報を持っていることで、学生に自信を持って今のソフトウェア開発の現状やあるべき姿などを教えることができていると思います。
――ビジネスとアカデミズムの違いを実感されることはありますか?
実際にはあまりギャップがないですね。私のいる学部が社会システム科学部プロジェクトマネジメント学科ということもあって、学生は『PMBOK(プロジェクトマネジメント知識体系ガイド)』などのモデルについて勉強し、実習や演習などで実践しています。「そういうことは勉強するより実際の現場に行くのが一番だ」とよくいわれます。そのとおりだと思いますが、会社に入ってしまうと基礎的な事を学ぶ機会は思ったより少ないのが実状です。学生の頃、『PMBOK』などの基礎を学んでおくと、現場に出たときに大きく役立つことが多いと感じています。
若い時代から知識体系(BOK)をしっかり学んでおくことは価値があります。実際、これを学んだ学生は就職活動でも、コミュニケーションワークなどが上手にできることが多いですね。
システムやソフトウェアの品質はプロセスの品質に左右される
――ご研究されていることは、今後、実務や品質保証にどのような影響を与えますか?
研究はソフトウェア開発におけるプロセス改善をどう進めていくかといった視点が中心になっています。簡単に概略を説明できるよう図を用意しました。
(参考:艸薙匠,もう一度改めてSPI活動を見直してみよう ~SPIって、クリエイティブなんだよねぇ~,SPIトワイライトフォーラム,2015.http://www.jaspic.org/event/2015/twilight/0424/JASPIC_20150424.pdf)
プロセスがソフトウェアの品質を作り込んでいきます。つまり、システムやソフトウェアの品質は、プロセスの品質に左右されるというのが基本的な考え方になっています。
プロセスは「人」と「手順と手法」、そして「ツール」の3つで構成されています。改善活動では、この3つを常に意識することが大切です。つまり、プロセスを改善すると言っても、さまざまな視点があるということです。
プロセスは「人」と「手順と手法」、そして「ツール」の3つで構成されています。改善活動では、この3つを常に意識することが大切です。つまり、プロセスを改善すると言っても、さまざまな視点があるということです。
(参考:小笠原秀人,SPIの動向と発表事例の概要紹介,WOCS(クリティカル・ソフトウエア・ワークショップ)2010.https://www.ipa.go.jp/files/000005330.pdf)
プロセス改善を進めるためには「SEPG(Software Engineering Process Group)」、つまり永続的なプロセス改善活動を実行・推進する役割を持つチーム(機能)を組織の中に作る必要があります。
兼任であってもこのような機能を持った組織がプロセス面の運用、保守、改善をうまく進めていくことができます。このような機能を持たせるための教育方法や推進方法を研究し、この考え方を広めていきたいと考えています。
(参考:小笠原秀人,東芝におけるソフトウェアプロセス改善活動の推進方法10年目のSPI~推進結果と今後の展望~,ソフトウェアシンポジウム2010.http://www.sea.or.jp/Events/symposium/ss2010/wg6/SS2010-SPI_Working_Toshiba.pdf)
このようなソフトウェアプロセス改善活動(SPI:Software Process Improvement)等によって、高品質なソフトウェア開発を実現する文化を創り、その土台を固めていくことに貢献したいと考えています。現在、いくつかの企業とプロセス改善を推進する共同研究を進めているところです。
苦しい開発が続いて終わって、また、苦しい開発が続いて終わって......という負のスパイラルが回っていると、新しいことを取り入れたり、やり方を変えてみたりしようというマインドは持てません。プロセス改善によって、この負のスパイラルを無くしていけたら本当に良いと考えています。
――プロセス改善にコストを掛けたくない企業もまだまだ多いと聞きます。
実際、そうだと思います。プロセス改善はコストがかかるので「効果はどうなんだ?」とか「今期の目標として、どれだけ改善の数値を出すんだ?」といわれることは当然あります。マネージャーからするとどうしても聞きたい点ですが、例えば、不具合率が劇的に変わるわけではありません。むしろ劇的に変わりすぎるのも問題があるわけですが、コストがかけられないからと活動を止めていては、いっこうに改善が回らないわけです。ここを理解できるかどうかが、大きなポイントになっていくと考えています。
――第三者検証の必要性についてどのようにお考えになっておられますか?
大事だと思っています。今、テストの範囲は本当に広がってきています。限られた時間の中でテストを実施するために、テスト戦略は最も大切で、ここを"誰か"がやる必要があります。実際に開発現場だけで考えると視野が狭くなりがちなので、第三者検証の専門家が入りその部分を一緒に担うのは大きな武器になると思います。
私が東芝にいた最後の7~8年間はテスト自動化の研究開発や普及をしていましたが、シリーズ製品開発のように開発案件が継続的に進んでいる現場で上流の設計から変えようとか、新しい手法を適用してみようといっても難しい面があると実感しました。逆にいえば、テスト結果をはじめとする状況をいろいろな観点から分析することで見えてくることも多いです。その分析結果を利用して、まず、設計のここだけでも変えようといった方が話はしやすいはずです。
テストの分析結果から、テスト工程だけではなく設計も変えていくロードマップを作って回していくというアプローチが良いと思います。今後、このようなロードマップを作り、その実践をサポートするということが第三者検証の大きな役割のひとつになるのではないかという気がしています。
現場にいるエンジニアは"幅の広さ"を持っておく
――大学教授として日々どのようなことを心がけておられますか?
基本的には学生とじっくり対話や議論をすることを日々心がけています。学生もいろいろ考えてレポート等を書いてきたり発表したりしてくれるので、さらに丁寧に議論するようにしています。
授業では、頭の中だけで考えるのではなく、手を動かして、実際に体感できるように工夫していますね。テキストを読んで説明するだけでは聞く方もつまらないため、ツールを使って問題を解くようにしています。去年からいろいろやってきて手応えを感じています。例えば、品質管理のマネジメントの講義では「R」を使ってちゃんと分析できるようにしています。
また、プログラミングを実践してもらうためにいろいろ試しています。例えば、「コンピュータサイエンス入門」という1年生の講義の中で、昨年はWeでプログラミングを学習できるサイトを利用してみました。しかし、理解や興味に関する個人のばらつきが大きく、このような環境を利用して進めるのはなかなか難しいという実感がありました。今年度は、日本語プログラミングを使い、プログラムの基本を理解してもらうという取り組みをしています。日本語でアルゴリズムを書いた方がしっかり理解してくれるという感触を得ています。
――現場にいるエンジニアはどのようにして学び、スキルアップ等をしていくと良いとお考えですか?
現場の方々は、本当に苦労しながら工夫しながらやっておられるので、そのまま伸ばしてもらえればいいと思っています。あまり心配していませんが、"幅の広さ"をもう少し持っているといいのかなと感じています。そういう意味ですと、PMBOKやSQuBOKといった知識体系に触れてみたり、資格試験に挑戦したりするのが良いのではないでしょうか。
私は、将来は大学に行きたいと思い博士課程に行きましたが、そこは人それぞれなので、何かを見つけて、そこに向かって自由に取り組んでいくのが良いと思いますね。
"Heaven helps those who help themselves"(天は自ら助くる者を助く)
(恩師である菅野文友氏から頂いた直筆サインをお見せいただきました。)
――小笠原教授の「座右の銘」は何でしょうか?
私の大学時代の恩師が著書『ソフトウェア・エンジニアリング』(菅野文友/日科技連出版社)の表紙に記してくださった「Heaven helps those who help themselves(天は自ら助くる者を助く)」が好きな言葉です。きちんとがんばっていれば、それはいつか何かに繋がるということです。
――今後、達成したいことや「夢」がございましたらお教えください。
良い学生を育て、社会にきちんと送り出していきたいです。それと、今、学会活動も一生懸命やっているので、学会にも貢献したいと考えています。今、来年日本で国際会議を開催するために海外の方々とも定期的にミーティングを開催しています。海外とのネットワークを広げて裾野を広げていけたらいいかなと思っているところです。
――最後にQbook読者にメッセージをお願いいたします。
QAに関するいろいろな技術を身に付けた上で、継続的にプロセス改善を推進していくことをぜひ心がけてほしいと思っています。それはやはり、システム・ソフトウェアの品質は、それを開発・維持するプロセスの品質に左右されるからです。継続的なプロセス改善を目指して、一緒にがんばっていきましょう!
――本日はいろいろお話をしてくださり、ありがとうございました。