組み込みソフトはチームでの開発が主となっているが、その際に問題となるのが、メンバー間のスキル差だ。「静的解析ツールが開発チームを活性化する」そう紹介するJVCケンウッドの阿部博己氏が語る、組み込み設計改革とは。
「静的解析ツールの導入が、組み込みソフトの開発チームを活性化する」
一見すると相関性の薄そうな両者の結び付きを成果として紹介したのが、JVCケンウッドで業務用の放送機器や音響機器、非常放送システムを開発するプロオーディオ技術部に所属する阿部博己氏だ。
テクマトリックスが2016年2月10日に開催した組み込みソフトウェアの品質管理に関するセミナー、『開発現場の意識が変わる!品質向上を実感する「仕組み」作りとは?事例に学ぶ成功するテスト運用術と実践的品質管理』では、JVCケンウッドの阿部博己氏(業務用システム事業統括部 プロオーディオ事業部 ソフトグループ)が「品質向上に結果を出す静的解析のチーム運用術」と題して、静的解析ツール導入による組み込みソフトウェアの開発チーム活性化について語った。
動作ミスの許されない放送用機器などのソフトウェア開発を行う阿部氏のチームではこれまで、ソフトウェア開発に前倒し(フロントローディング)の手法を導入することで、さまざまな事象に対応していた。この導入によって仕様に関する問題は解決できていたが、バグ検出など実装面の問題は解決しきれなかった。
この実装面の問題解決のため阿部氏は静的解析ツールの導入を検討し、ファイルをまたいだバグ検出が行えるなど、検出能力が高いテクマトリックス「C++test」の選択に至った。バグの網羅的検出を目的とすればツール導入は即効性があり、その効果は高いといえるが、ソフトウェア開発は、ツール導入だけで全ての問題が解決するほど甘いものではない。
そこで阿部氏がたどり着いた答えは「人的問題」だった。ソフトウェア開発現場の多分にもれず阿部氏のチームもメンバーのスキルにバラツキがあり、全体としてのスキルレベルアップが諸問題の解決に欠かせない状況にあった。
また、チーム内にスキル差があればどうしても個人レベルの解決に依存することになりがちであり、「チームとしての機能」も十分とは言いにくい状態にあった。つまり、ツール導入によって、「メンバーの育成」と「開発チームの活性化」という2つの人的問題が浮き彫りにされたのだ。
スキルレベルアップを図るための教育と言っても、その方法はさまざまだ。代表的なものは研修やセミナー受講といったOffJTと実務を通じてのOJTで、教育の成果を業務に直結させるという視点で見るとOJTが効果的だ。しかし、OJTでは体系だった教育が難しく、また、指導者が指導のプロではないため、トレーニングにおいても個人のスキルに依存するという問題が内包される。
C++test導入を導入したことでさらなる問題に直面してしまった阿部氏だが、次の問題解決もヒントはC++testにあった。C++testの解析結果をコードレビューに導入したのだ。C++testの解析結果は問題点の見やすさや分かりやすさに秀でており、コードレビューに導入することで、レビューポイントの明確化がなされ、結果としてコードレビューに十分な時間をかけることが可能となり、それがチームメンバーの教育に大きな効果を発揮したのだという。
「“ツールを使ってレビュー時間を短縮”というのは高レベルなメンバーがそろっている場合のみ有効な手段で、教育しながらの開発をしなくてはならない場合、レビュー時間を長くとることが重要になる。コードレビューを間違い発見の場ではなく、教育の場とすることが大切」(阿部氏)
Copyright © ITmedia, Inc. All Rights Reserved.