SoftPIT - ソフトウェア開発の状況を鳥瞰しようとする試み -
分散開発等で状況がわかりにくい場合の可視性を上げることを目的としたテーマを検討する国際ワークショップに参加した(正式名称はMeasurement-based Cockpits for Distributed Software and Systems Engineering Projectsである。SoftPITと呼ぶそうだ)。比較的少人数のワークショップで、米国、ドイツ、オーストリア、イスラエル、日本からの参加があった。
SoftPITはソフトウェア開発のCockpitという造語で、ソフトウェア開発の状況をいろいろな側面から把握するための運用や仕組みやツールのことである。ドイツのフラウンホッファのエンピリカルソフトウェア工学研究所のプロジェクトの名前としても使われており、SoftPITについて議論を重ねるためのワークショップの名前でもある。
Fraunhofer, IBM,Siemensの方々を含め、開発状況が簡単にみえたり(いわゆる見える化)、意思決定のプロセスが明快ですぐに理解可能であるためには、どのような情報を集め、それをみんなが了解する形で意思決定の基準とすべきかという話が出た。
// 理想的にはメトリクスをもとに一定手順を使って誰がやっても同じ結果となるtransparentな意思決定をする
日本国内でのディスカッションと共通点は多い。たとえば、開発メンバに有用となるようなデータを収集しないと継続しない、トップダウンな目的指向の収集が必要、フレームワークや運用が大まかに決まれば、その後は自動化のために支援ツールが必要というあたりである。
分散開発の定義についても語られていて、同じビルでもフロアが異なれば分散開発といえる、拠点の間の移動時間が数時間を越えるようになるとまた状況がかわる、さらに時差があるような拠点間になれば時差が問題の要因になることがある、等である。
KPI(key performance indicator)を利用したリスク予測やメトリクスをもとにしたリスク予測について、赤、黄、青のような信号として表現して、リスクをシンプルに表現した事例についても報告されていた。しかしながら、たとえば定例の議題としてこの信号が赤い話が3回続くともうそのリスクについては誰もまともに考えなくなりはじめるというような議論もあった。
我々もコックピットとして自動収集されたログと事前に定義されたプロセスモデルからログ収集の品質やプロセス実行の品質を推定することを目的としたテーマについて発表した。スライドはこちら。詳細はこちら。元のアイディアは奈良先端大の飯田教授のものであり、実データへの適用やプロセスモデルの選定を私が担当している。これを使えば、分散開発やアウトソース時に、手順レベルのプロセスのうち誤った実行によるリスクの高い部分と自動収集するログを付き合わせることで、リスクの高いプロセスが正しく実行できているかどうかを監視することができる。